Figure Eight Job Status API

Control job status.

Operations 6

GET /jobs/{job_id}.json Get job attributes #
POST /jobs/{job_id}/orders.json Launch a job #
GET /jobs/{job_id}/pause.json Pause a job #
GET /jobs/{job_id}/resume.json Resume a job #
GET /jobs/{job_id}/cancel.json Cancel a job #
GET /jobs/{job_id}/ping.json Get the status of a job #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/figure-eight-job-status-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

figure-eight-job-status-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Appen Platform Job Status 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: Job Status
  description: Control job status.
  externalDocs:
    url: https://success.appen.com/hc/en-us/articles/202703435-Jobs-Resource-Attributes
paths:
  /jobs/{job_id}.json:
    get:
      tags:
      - Job Status
      summary: Get job attributes
      description: 'Gets the .json of the Job identified by the job_id parameter of the

        request. This includes the total cost and job state.'
      parameters:
      - $ref: '#/components/parameters/job_id'
      - $ref: '#/components/parameters/api_key'
      responses:
        '200':
          description: JSON representation of Job
      x-code-samples:
      - lang: Shell
        label: cURL
        source: 'curl -X GET \

          "https://api.appen.com/v1/jobs/{job_id}.json" \

          -H "Authorization: Token token={api_key}" \

          '
      operationId: getJobs{jobId}Json
      x-operation-id-source: derived
  /jobs/{job_id}/orders.json:
    post:
      tags:
      - Job Status
      summary: Launch a job
      description: Launch a job.
      parameters:
      - $ref: '#/components/parameters/job_id'
      - $ref: '#/components/parameters/api_key'
      - $ref: '#/components/parameters/channel_id'
      - in: query
        name: debit[units_count]
        required: true
        description: The number of rows to be launched
        schema:
          type: integer
      responses:
        '200':
          description: 'JSON object, including credit balance, starting and ending Unit id''s,

            etc.

            '
      x-code-samples:
      - lang: Shell
        label: cURL - On Demand Channel
        source: 'curl -X POST \

          "https://api.appen.com/v1/jobs/{job_id}/orders.json" \

          --data-urlencode "channels[0]=on_demand" \

          --data-urlencode "debit[units_count]=100" \

          -H "Authorization: Token token={api_key}"

          '
      - lang: Shell
        label: cURL - Internal Channel
        source: 'curl -X POST \

          "https://api.appen.com/v1/jobs/{job_id}/orders.json" \

          --data-urlencode "channels[0]=cf_internal" \

          --data-urlencode "debit[units_count]=100" \

          -H "Authorization: Token token={api_key}"

          '
      - lang: Shell
        label: cURL - Two Channels
        source: "curl -X POST \\\n\"https://api.appen.com/v1/jobs/{job_id}/orders.json\" \\\n--data-urlencode \"channels[0]=on_demand\" \\\n--data-urlencode \"channels[1]=cf_internal\" \\ \n--data-urlencode \"debit[units_count]=100\" \\\n-H \"Authorization: Token token={api_key}\" \\\n"
      operationId: postJobsByJobIdOrdersJson
      x-operation-id-source: derived
  /jobs/{job_id}/pause.json:
    get:
      tags:
      - Job Status
      summary: Pause a job
      description: Pause a Job that is currently running.
      parameters:
      - $ref: '#/components/parameters/job_id'
      - $ref: '#/components/parameters/api_key'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: string
                    example: Your job is being paused.
      x-code-samples:
      - lang: Shell
        label: cURL
        source: 'curl -X GET \

          "https://api.appen.com/v1/jobs/{job_id}/pause.json" \

          -H "Authorization: Token token={api_key}" \

          '
      operationId: getJobsByJobIdPauseJson
      x-operation-id-source: derived
  /jobs/{job_id}/resume.json:
    get:
      tags:
      - Job Status
      summary: Resume a job
      description: Resume a job that had been paused.
      parameters:
      - $ref: '#/components/parameters/job_id'
      - $ref: '#/components/parameters/api_key'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: string
                    example: Your job is being resumed.
      x-code-samples:
      - lang: Shell
        label: cURL
        source: 'curl -X GET \

          "https://api.appen.com/v1/jobs/{job_id}/resume.json" \

          -H "Authorization: Token token={api_key}" \

          '
      operationId: getJobsByJobIdResumeJson
      x-operation-id-source: derived
  /jobs/{job_id}/cancel.json:
    get:
      tags:
      - Job Status
      summary: Cancel a job
      description: Cancels a job.
      parameters:
      - $ref: '#/components/parameters/job_id'
      - $ref: '#/components/parameters/api_key'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: string
                    example: Your job is being canceled.
      x-code-samples:
      - lang: Shell
        label: cURL
        source: 'curl -X GET \

          "https://api.appen.com/v1/jobs/{job_id}/cancel.json" \

          -H "Authorization: Token token={api_key}" \

          '
      operationId: getJobsByJobIdCancelJson
      x-operation-id-source: derived
  /jobs/{job_id}/ping.json:
    get:
      tags:
      - Job Status
      summary: Get the status of a job
      description: Get the Status of a Job (includes Unit and Judgment counts).
      parameters:
      - $ref: '#/components/parameters/job_id'
      - $ref: '#/components/parameters/api_key'
      responses:
        '200':
          description: OK - JSON payload comprising judgment and row counts.
          content:
            application/json:
              schema:
                type: object
                properties:
                  golden_units:
                    type: integer
                    example: 22
                  all_units:
                    type: integer
                    example: 220
                  ordered_units:
                    type: integer
                    example: 100
                  completed_units_estimate:
                    type: integer
                    example: 88
                  needed_jugdments:
                    type: integer
                    example: 36
                  all_judgments:
                    type: integer
                    example: 264
                  tainted_judgments:
                    type: integer
                    example: 0
                  completed_gold_estimate:
                    type: integer
                    example: 11
                  completed_non_gold_estimate:
                    type: integer
                    example: 77
      x-code-samples:
      - lang: Shell
        label: cURL
        source: 'curl -X GET \

          "https://api.appen.com/v1/jobs/{job_id}/ping.json" \

          -H "Authorization: Token token={api_key}" \

          '
      operationId: getJobsByJobIdPingJson
      x-operation-id-source: derived
components:
  schemas:
    new_job_id:
      description: Integer identifier of the requested resource (Job, Unit, Workflow) used in API request paths and response bodies.
      type: integer
      format: int64
      readOnly: true
      minimum: 1
      maximum: 9223372036854776000
      example: 1234567
  parameters:
    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
    channel_id:
      in: query
      name: channel_id
      description: "A unique identifier for a group of contributors. Variable name: `{channel_id}`. \n"
      required: true
      schema:
        type: string
    job_id:
      in: path
      name: job_id
      description: "A unique identifier for a job or task that is distributed to contributors. Variable name: `{job_id}`. \n"
      required: true
      schema:
        $ref: '#/components/schemas/new_job_id'