Figure Eight Job Ontology API

Read and Update the Ontology for a job

Operations 4

GET /jobs/{job_id}/ontology Get Job Ontology #
PUT /jobs/{job_id}/ontology Update Job Ontology #
GET /jobs/{job_id}/ontology.csv Get Job Ontology (CSV) #
PUT /jobs/{job_id}/ontology.csv Update Job Ontology (CSV) #

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-ontology-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-ontology-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Appen Platform Job Ontology 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 Ontology
  description: Read and Update the Ontology for a job
  externalDocs:
    url: https://success.appen.com/hc/en-us/articles/360015150252-Guide-To-Ontology-Manager
paths:
  /jobs/{job_id}/ontology:
    get:
      servers:
      - url: https://api-proxy.appen.com/v1
        description: Production Server
      tags:
      - Job Ontology
      summary: Get Job Ontology
      description: Get the Ontology from a Job in JSON format.
      parameters:
      - $ref: '#/components/parameters/job_id'
      - $ref: '#/components/parameters/api_key'
      responses:
        '200':
          description: JSON Array describing the Ontology
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ontology'
      x-code-samples:
      - lang: Shell
        label: cURL
        source: 'curl -X GET \

          "https://api-proxy.appen.com/v1/jobs/{job_id}/ontology"

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

          '
      operationId: getJobsByJobIdOntology
      x-operation-id-source: derived
    put:
      servers:
      - url: https://api-proxy.appen.com/v1
        description: Production Server
      tags:
      - Job Ontology
      summary: Update Job Ontology
      description: 'Update the Ontology for a Job. If the Ontology doesn''t exist then a new Ontology

        is created. (Note: Not all Job types accept a JSON formatted Ontology, please

        refer to the documentation

        for more information).'
      parameters:
      - $ref: '#/components/parameters/job_id'
      - $ref: '#/components/parameters/api_key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ontology'
      responses:
        '200':
          description: OK - The Ontology was updated.
      x-code-samples:
      - lang: Shell
        label: cURL
        source: "curl -X PUT \\\n\"https://api-proxy.appen.com/v1/jobs/{job_id}/ontology\"\\\n-H \"Authorization: Token token={api_key}\" \\\n--data-raw '[\n  {\n    \"description\": \"Ego vehicle, parking, static objects (trash bins), dynamic (garbage on sidewalk), bridge... etc. (see job description if unsure)\",\n    \"class_name\": \"void\",\n    \"display_color\": \"#000000\",\n    \"children\": [\n            {\n                \"description\": \"Children of the void class\",\n                \"class_name\": \"children\",\n                \"display_color\": \"#ca03fc\"\n            }\n        ]\n  }\n]'\n"
      operationId: putJobsByJobIdOntology
      x-operation-id-source: derived
  /jobs/{job_id}/ontology.csv:
    get:
      servers:
      - url: https://api-proxy.appen.com/v1
        description: Production Server
      tags:
      - Job Ontology
      summary: Get Job Ontology (CSV)
      description: Get the Ontology from a Job in CSV format.
      parameters:
      - $ref: '#/components/parameters/job_id'
      - $ref: '#/components/parameters/api_key'
      responses:
        '200':
          description: The Ontology data formated in CSV.
          content:
            text/plain:
              schema:
                type: string
                example: 'description,class_name,display_color,

                  "NOT Ego vehicle, parking, static objects (trash bins), dynamic (garbage on sidewalk), bridge... etc. (see job description if unsure)",not_void,#000000

                  '
      x-code-samples:
      - lang: Shell
        label: cURL
        source: 'curl -X GET \

          "https://api-proxy.appen.com/v1/jobs/{job_id}/ontology.csv"

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

          '
      operationId: getJobsByJobIdOntologyCsv
      x-operation-id-source: derived
    put:
      servers:
      - url: https://api-proxy.appen.com/v1
        description: Production Server
      tags:
      - Job Ontology
      summary: Update Job Ontology (CSV)
      description: 'Update the Ontology for a Job. If the Ontology doesn''t exist then a new Ontology

        is created. (Note: Not all Job types accept a CSV formatted Ontology, please

        refer to the documentation

        for more information).'
      parameters:
      - $ref: '#/components/parameters/job_id'
      - $ref: '#/components/parameters/api_key'
      requestBody:
        description: 'A **CSV** formatted file of the Ontology to upload to the Job.

          '
        content:
          multipart/form-data:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: OK - The Ontology was updated.
      x-code-samples:
      - lang: Shell
        label: cURL
        source: 'curl -X PUT \

          "https://api-proxy.appen.com/v1/jobs/{job_id}/ontology"\

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

          --form ''file=@{path_to_csv}''

          '
      operationId: putJobsByJobIdOntologyCsv
      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
    ontology:
      description: A JSON array representing the Ontology.
      type: array
      items:
        type: object
        properties:
          class_name:
            type: string
          display_color:
            description: Must be a hex color string e.g. (#F42069)
            type: string
          description:
            type: string
        required:
        - class_name
  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
    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'