Data Machine REST API

Complete REST API reference for Data Machine

Overview

Base URL: /wp-json/datamachine/v1/

Authentication: WordPress application password or cookie authentication

Permissions: Most endpoints require manage_options capability

Implementation: All endpoints are implemented in data-machine/inc/Api/. The project is migrating business logic to the WordPress 6.9 Abilities API; REST handlers should prefer calling abilities (via wp_get_ability() / wp_ability_execute) where available. Service managers may still be instantiated as a transitional implementation during migration.

Endpoint Categories

Workflow Execution

Pipeline & Flow Management

Content & Data

AI & Chat

Configuration

Monitoring

Common Patterns

Authentication

Data Machine supports two authentication methods:

  1. Application Password (Recommended for external integrations)
  2. Cookie Authentication (WordPress admin sessions)

See Authentication.

Error Handling

All endpoints return standardized error responses following WordPress REST API conventions. Common error codes include:

  • rest_forbidden (403) – Insufficient permissions
  • rest_invalid_param (400) – Invalid parameters
  • Resource-specific errors (404, 500)

See Error Handling Reference for complete error code documentation.

Pagination

Endpoints returning lists support pagination parameters:

  • per_page – Number of items per page
  • offset or page – Pagination offset

Implementation Guide

All endpoints are implemented in data-machine/inc/Api/ using the services layer architecture for direct method calls, with automatic registration via rest_api_init:

// Example endpoint registration using services layer
register_rest_route('datamachine/v1', '/pipelines', [
    'methods' => 'GET',
    'callback' => [Pipelines::class, 'get_pipelines'],
    'permission_callback' => [Pipelines::class, 'check_permission']
]);

// Services layer usage in endpoint callbacks
public function create_pipeline($request) {
    // Prefer abilities when available:
    // $ability = wp_get_ability('datamachine/create-pipeline');
    // return $ability->execute(['pipeline_name' => $request['name'], 'options' => $request['options'] ?? []]);

    // Transitional: service manager usage supported until full migration completes
    $pipeline_manager = new DataMachineServicesPipelineManager();
    return $pipeline_manager->create($request['name'], $request['options'] ?? []);
}

For detailed implementation patterns, see the Development section for hooks and extension guides.

Related Documentation


API Version: v1
Last Updated: 2026-01-18