Figure Eight Workflows API
Copy, launch, pause and resume workflows, check status and configuration values
Copy, launch, pause and resume workflows, check status and configuration values
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/figure-eight-workflows-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Appen Platform Workflows API
version: 1.0.0
description: '# Introduction
Hello, and welcome to Appen, the leading data annotation platform for Machine Learning.'
license:
name: Licensed under Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
termsOfService: https://www.appen.com/privacy-statement/
contact:
email: help@appen.com
servers:
- url: https://api.appen.com/v1
description: Production Server
tags:
- name: Workflows
description: Copy, launch, pause and resume workflows, check status and configuration values
paths:
/workflows:
post:
tags:
- Workflows
summary: Create a new workflow
description: Create a Workflow for processing data via jobs in the core platform or models via the Model Gateway Services.
requestBody:
content:
application/json:
schema:
properties:
name:
type: string
example: Data Parser Workflow
description:
type: string
example: An optional description for this workflow
user_id:
type: string
format: uuid
example: 00000000-0000-0000-0000-000000000001
responses:
'201':
$ref: '#/components/responses/NewWorkflowResponse'
'400':
description: invalid input, object invalid due to missing team_id, user_id or name.
'422':
description: Unprocessable Entity. A request parameter was malformed or missing.
content:
application/json:
schema:
properties:
name:
type: string
example: must be present
operationId: postWorkflows
x-operation-id-source: derived
/workflows/{workflow_id}/launch:
servers:
- url: https://api-beta.appen.com/v2
description: Production Server - Latest API
post:
tags:
- Workflows
summary: Launch a Workflow
description: Launches the Workflow to contributors, models to predict and/or scripts.
parameters:
- $ref: '#/components/parameters/workflow_id_param'
- $ref: '#/components/parameters/launch_rows_query'
- $ref: '#/components/parameters/api_key'
responses:
'202':
description: Accepted, i.e. row launch action was triggered and workflow data ingestion is being kicked off.
content:
application/json:
schema:
$ref: '#/components/schemas/Workflow'
'400':
description: Bad Request. You failed to pass one or more required parameters.
content:
application/json:
schema:
properties:
message:
type: string
example: The request was invalid
'404':
$ref: '#/components/responses/404'
'422':
description: Unprocessable Entity. A request parameter was malformed or missing.
content:
application/json:
schema:
properties:
errors:
type: array
example:
- Workflow has only 1000 rows to order
x-code-samples:
- lang: Shell
label: cURL
source: 'curl -X POST \
"https://api-beta.appen.com/v2/workflows/{workflow_id}/launch?&rows={num_rows_to_launch}"
-H "Authorization: Token token={api_key}" \
'
operationId: postWorkflowsByWorkflowIdLaunch
x-operation-id-source: derived
/workflows/{workflow_id}/pause:
servers:
- url: https://api-beta.appen.com/v2
description: Production Server - Latest API
post:
tags:
- Workflows
summary: Pause a Workflow
description: Pauses a Running state Workflow only.
parameters:
- $ref: '#/components/parameters/workflow_id_param'
- $ref: '#/components/parameters/api_key'
responses:
'202':
description: Accepted, i.e. action was triggered via AASM event or other method.
content:
application/json:
schema:
$ref: '#/components/schemas/Workflow'
'404':
$ref: '#/components/responses/404'
'422':
description: Unprocessable Entity. A request parameter was malformed or missing.
content:
application/json:
schema:
properties:
errors:
type: array
example:
- Error while configuring action 'pause' for step 1234. Make sure the job 1234567 exists and you own it.
x-code-samples:
- lang: Shell
label: cURL
source: "curl -X POST \\\n\"https://api-beta.appen.com/v2/workflows/{workflow_id}/pause\" \\\n-H \"Authorization: Token token={api_key}\" \n"
operationId: postWorkflowsByWorkflowIdPause
x-operation-id-source: derived
/workflows/{workflow_id}/resume:
servers:
- url: https://api-beta.appen.com/v2
description: Production Server - Latest API
post:
tags:
- Workflows
summary: Resume a paused Workflow
description: Resumes a Paused state Workflow only.
parameters:
- $ref: '#/components/parameters/workflow_id_param'
- $ref: '#/components/parameters/api_key'
responses:
'202':
description: Accepted, i.e. action was triggered via AASM event or other method.
content:
application/json:
schema:
$ref: '#/components/schemas/Workflow'
'404':
$ref: '#/components/responses/404'
'422':
description: Unprocessable Entity. A request parameter was malformed or missing.
content:
application/json:
schema:
properties:
errors:
type: array
example:
- The workflow is already running
x-code-samples:
- lang: Shell
label: cURL
source: "curl -X POST \\\n\"https://api-beta.appen.com/v2/workflows/{workflow_id}/resume\"\n-H \"Authorization: Token token={api_key}\" \n"
operationId: postWorkflowsByWorkflowIdResume
x-operation-id-source: derived
/workflows/{workflow_id}/copy:
servers:
- url: https://api-beta.appen.com/v2
description: Production Server - Latest API
post:
tags:
- Workflows
summary: Copy an existing Workflow
description: Copy a new, paused or finished Workflow.
parameters:
- $ref: '#/components/parameters/workflow_id_param'
- $ref: '#/components/parameters/api_key'
requestBody:
content:
application/json:
schema:
properties:
name:
type: string
example: new workflow
responses:
'201':
description: Copy service was able to copy workflow configuration successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Workflow'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'422':
description: Unprocessable Entity. A request parameter was malformed or missing.
content:
application/json:
schema:
properties:
errors:
type: array
example:
- Workflow cannot be copied
x-code-samples:
- lang: Shell
label: cURL
source: "curl -X POST \\\n\"https://api-beta.appen.com/v2/workflows/{workflow_id}/copy\"\n-H \"Authorization: Token token={api_key}\" \n"
operationId: postWorkflowsByWorkflowIdCopy
x-operation-id-source: derived
/workflows/{workflow_id}/poll:
servers:
- url: https://api-beta.appen.com/v2
description: Production Server - Latest API
get:
tags:
- Workflows
summary: Poll the current state and metadata for a workflow
parameters:
- $ref: '#/components/parameters/workflow_id_param'
- $ref: '#/components/parameters/api_key'
responses:
'200':
description: Workflow JSON
content:
application/json:
schema:
$ref: '#/components/schemas/WorkflowCompact'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
x-code-samples:
- lang: Shell
label: cURL
source: 'curl -X GET \
"https://api-beta.appen.com/v2/workflows/{workflow_id}/poll"
-H "Authorization: Token token={api_key}"
'
operationId: getWorkflowsByWorkflowIdPoll
x-operation-id-source: derived
/workflows/{workflow_id}:
servers:
- url: https://api-beta.appen.com/v2
description: Production Server - Latest API
get:
tags:
- Workflows
summary: Get current workflow config
parameters:
- $ref: '#/components/parameters/workflow_id_param'
- $ref: '#/components/parameters/api_key'
responses:
'200':
description: Workflow JSON
content:
application/json:
schema:
$ref: '#/components/schemas/Workflow'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'422':
$ref: '#/components/responses/422'
x-code-samples:
- lang: Shell
label: cURL
source: 'curl -X GET \
"https://api-beta.appen.com/v2/workflows/{workflow_id}" \
-H "Authorization: Token token={api_key}"
'
operationId: getWorkflowsByWorkflowId
x-operation-id-source: derived
patch:
tags:
- Workflows
summary: Partially update a Workflow
description: Update specific attributes of a given workflow, such as name or description.
parameters:
- $ref: '#/components/parameters/workflow_id_param'
requestBody:
content:
application/json:
schema:
properties:
name:
type: string
example: Data Parser Workflow
description:
type: string
example: An optional description for this workflow
user_id:
type: string
format: uuid
example: 00000000-0000-0000-0000-000000000001
responses:
'200':
$ref: '#/components/responses/NewWorkflowResponse'
'400':
description: invalid input, object invalid due to missing team_id, user_id or name.
'422':
description: Unprocessable Entity. A request parameter was malformed or missing.
content:
application/json:
schema:
properties:
name:
type: string
example: must be present
operationId: patchWorkflowsByWorkflowId
x-operation-id-source: derived
delete:
tags:
- Workflows
summary: Deletes a workflow
description: Workflow deletion works only before first launch.
parameters:
- $ref: '#/components/parameters/workflow_id_param'
responses:
'200':
description: Workflow successfully deleted
'403':
description: Delete Forbidden
content:
application/json:
schema:
properties:
errors:
type: array
example:
- Workflows cannot be deleted once they have been launched
operationId: deleteWorkflowsByWorkflowId
x-operation-id-source: derived
components:
parameters:
launch_rows_query:
in: query
name: rows
required: true
schema:
type: integer
description: The number of rows to launch through the specified workflow
workflow_id_param:
in: path
name: workflow_id
required: true
schema:
type: integer
description: The `id` of a **Workflow** belonging to the **Requestor** or accessible to the **Admin**.
example: 123
api_key:
name: key
in: query
required: true
description: "Your personal Appen API key; used to access the Appen platform. Can be found in your [account settings](https://client.appen.com/account/api). Variable name: `{api_key}`. \n"
schema:
type: string
schemas:
WorkflowStep:
type: object
required:
- workflow_id
- data_processor_type
- data_processor_id
properties:
id:
type: integer
example: 79
readOnly: true
data_processor_id:
type: string
example: '1234567'
data_processor_type:
type: string
readOnly: true
example: Builder::Job
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
step_options:
type: object
example: {}
routes:
type: array
items:
$ref: '#/components/schemas/StepRoute'
FilterRule:
type: object
required:
- comparison_field
- comparison_value
- comparison_operation
- rule_connector
properties:
id:
type: integer
example: 956
readOnly: true
comparison_field:
type: string
example: img_is_cat
comparison_operation:
type: string
enum:
- ==
- <
- '>'
- '!='
- =~
- <=
- '>='
example: ==
comparison_value:
type: string
example: 'true'
rule_connector:
type: string
enum:
- all
- and
- or
- rnd
- csp
- els
example: and
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
WorkflowCompact:
type: object
required:
- name
- team_id
- user_id
properties:
id:
type: integer
example: 79
team_id:
type: string
format: uuid
example: 4ff9bd89-4cc4-4324-a533-d8466d6596fe
user_id:
type: string
format: uuid
example: ec006e04-86d6-40d6-aaed-5d717a1be778
name:
type: string
example: Three step image categorization and rating 001
description:
type: string
example: Route cat images routed by categories (inferred by a model) to people to for rating cuteness.
status:
type: string
example: running
status_description:
type: string
example: null
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
Workflow:
type: object
required:
- name
- team_id
- user_id
properties:
id:
type: integer
example: 79
workflow_id:
type: integer
format: string
deprecated: true
team_id:
type: string
format: uuid
example: 4ff9bd89-4cc4-4324-a533-d8466d6596fe
user_id:
type: string
format: uuid
example: ec006e04-86d6-40d6-aaed-5d717a1be778
name:
type: string
example: Three step image categorization and rating 001
description:
type: string
example: Route cat images routed by categories (inferred by a model) to people to for rating cuteness.
status:
type: string
example: paused
status_description:
type: string
example: Paused by admin
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
steps:
type: array
items:
$ref: '#/components/schemas/WorkflowStep'
StepRoute:
type: object
required:
- workflow_step_id
- destination_step_id
properties:
id:
type: integer
example: 197
readOnly: true
workflow_step_id:
type: integer
example: 79
destination_step_id:
type: integer
example: 80
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
filter_rules:
type: array
items:
$ref: '#/components/schemas/FilterRule'
responses:
'404':
description: 'Not Found. The resource you are referencing does not exist, or you don''''t own it.
'
NewWorkflowResponse:
description: The response of a new workflow
content:
application/json:
schema:
type: object
properties:
id:
type: integer
example: 1234
name:
type: string
example: Data Parser Workflow
description:
type: string
example: A sample description for this workflow
status:
type: string
example: new
status_description:
type: string
example: null
team_id:
type: string
format: uuid
example: 00000000-0000-0000-0000-000000000002
orderer_rows:
type: integer
example: 0
created_at:
description: Timestamp of when the workflow was created
type: string
format: date-time
readOnly: true
updated_at:
description: Timestamp of the last User or API action that changed a workflow state or setting
type: string
format: date-time
readOnly: true
workflow_id:
type: integer
example: 1234
steps:
type: array
items:
type: object
example: []
url:
type: string
example: https://api-beta.appen.com/v2/workflows/1234
'403':
description: 'Access Denied. You do not have permission to access the resource you are referencing.
'
'422':
description: 'Unprocessable Entity. A request parameter was malformed or missing.
'