Figure Eight Workflow Data Upload/Download API

Upload data to run through a Workflow. Download reports.

Operations 2

POST /workflows/{workflow_id}/upload Upload data for the workflow #
GET /workflows/{workflow_id}/report/download Download Full or Source data workflow report #

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-workflow-data-upload-download-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-workflow-data-upload-download-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Appen Platform Workflow Data Upload/Download 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: Workflow Data Upload/Download
  description: Upload data to run through a Workflow. Download reports.
paths:
  /workflows/{workflow_id}/upload:
    servers:
    - url: https://api-beta.appen.com/v2
      description: Production Server - Latest API
    post:
      tags:
      - Workflow Data Upload/Download
      summary: Upload data for the workflow
      description: 'Archive the file to the cloud, verify the structure is compatible with the workflow input step, and make the rows available to launch. Available file formats: CSV, TSV, JSON, JSONL, XLS, XLSX, ODS.'
      parameters:
      - $ref: '#/components/parameters/workflow_id_param'
      - $ref: '#/components/parameters/api_key'
      responses:
        '201':
          description: Data uploaded successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataOrder'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  description: The file to upload.
                  type: string
                  format: binary
              required:
              - file
      x-code-samples:
      - lang: Shell
        label: cURL
        source: 'curl -X POST \

          "https://api-beta.appen.com/v2/workflows/{workflow_id}/upload" \

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

          -F file=@"./path/to/data/file.csv"

          '
      operationId: postWorkflowsByWorkflowIdUpload
      x-operation-id-source: derived
  /workflows/{workflow_id}/report/download:
    servers:
    - url: https://api-beta.appen.com/v2
      description: Production Server - Latest API
    get:
      tags:
      - Workflow Data Upload/Download
      summary: Download Full or Source data workflow report
      description: Generated workflow in Zip archive if report link is present and report file exists. Full report is in CSV format and contains data from each Workflow Step. Source report contains original uploaded files in Zip archive.
      parameters:
      - $ref: '#/components/parameters/workflow_id_param'
      - name: type
        in: query
        required: true
        description: Report type. can be 'full' or 'source'
        schema:
          type: string
          example: full
      responses:
        '404':
          description: No report link to download
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: 'Error: No TYPE report generated for workflow ID'
        '204':
          description: Generation is in progress
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: TYPE report for workflow ID is being generated
        '200':
          description: Report ready for download,  zipped report contents in body
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
      x-code-samples:
      - lang: Shell
        label: cURL
        source: 'curl -vOJ \

          "https://api-beta.appen.com/v2/workflows/{workflow_id}/report/download" \

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

          2&>1 | grep -e HTTP -e filename

          '
      operationId: getWorkflowsByWorkflowIdReportDownload
      x-operation-id-source: derived
components:
  parameters:
    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
  responses:
    '404':
      description: 'Not Found. The resource you are referencing does not exist, or you don''''t own it.

        '
    '422':
      description: 'Unprocessable Entity. A request parameter was malformed or missing.

        '
  schemas:
    DataOrder:
      type: object
      properties:
        id:
          type: integer
          example: 72
          readOnly: true
        data_upload_id:
          type: integer
          example: 1
          readOnly: true
        workflow_id:
          type: integer
          example: 47
          readOnly: true
        state:
          type: string
          example: Some name or description or title, etc...
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true