Send AI API

Send AI API as documented publicly: 17 operations. Contract generated from the documentation by API Evangelist (2026-10-29); not the provider's own document.

Operations 17

POST /api/v1/uploads POST /api/v1/uploads #
GET /task/{taskId} Check individual task details and status. #
POST /task/{taskId}/complete Mark a task as complete. #
POST /task/{taskId}/discard Discard a task. #
POST /upload Submit files for processing. #
GET /upload/{id} Check status and view all tasks. #
PUT /upload/{id}/move Change project or organization. #
POST /v2/team_123456/project/proj_123456/upload/upld_123456468/move/folder_789012 POST /v2/team_123456/project/proj_123456/upload/upld_123456468/move/folder_789012 #
GET /v2/{teamId}/project/{projectId}/task/{taskId} Retrieve detailed information about a specific task, including its current status, processing step, and metadata. #
POST /v2/{teamId}/project/{projectId}/task/{taskId}/approve Approve a task to flag it for AI model learning. #
POST /v2/{teamId}/project/{projectId}/task/{taskId}/complete Mark a task as complete and proceed to the next step in the processing pipeline. #
POST /v2/{teamId}/project/{projectId}/task/{taskId}/disapprove Disapprove a task to remove it from AI model learning. #
POST /v2/{teamId}/project/{projectId}/task/{taskId}/discard Remove a task from the processing pipeline by marking it as discarded. #
POST /v2/{teamId}/project/{projectId}/task/{taskId}/report Report an issue with a task, such as poor document quality or processing errors. #
POST /v2/{teamId}/project/{projectId}/task/{taskId}/unlock Unlock a completed task to allow editing. #
POST /v2/{teamId}/project/{projectId}/upload This endpoint allows you to create a new upload in the system. #
GET /v2/{teamId}/project/{projectId}/upload/{uploadId} Retrieve details for a specific upload. #

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/send-ai:send-ai-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

send-ai-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Send AI API
  version: '2026-10-29'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-29: 17 operation(s) read from 12 public documentation page(s) (each
    operation names its page in x-source). This is not the provider''s published contract; Send AI has published no machine-readable contract
    that the pipeline could find. Engine: anthropic.'
  x-evidence-tiers:
    code-example: 11
    documentation: 6
    pages-with-code: 10
    pages-read: 12
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-29'
  x-generator: generate-contract-from-docs.py
  x-engine: anthropic
  x-sources:
  - https://docs.send.ai/api/v2/uploads/overview
  - https://docs.send.ai/api/v2/tasks/overview
  - https://docs.send.ai/api/v2/uploads/upload.create
  - https://docs.send.ai/api/v2/uploads/upload.get
  - https://docs.send.ai/api/v2/uploads/upload.move
  - https://docs.send.ai/api/v2/tasks/task.get
  - https://docs.send.ai/api/v2/tasks/task.unlock
  - https://docs.send.ai/api/v2/tasks/task.complete
  - https://docs.send.ai/api/v2/tasks/task.discard
  - https://docs.send.ai/api/v2/tasks/task.approve
  - https://docs.send.ai/api/v2/tasks/task.disapprove
  - https://docs.send.ai/api/v2/tasks/task.report
servers:
- url: https://api.send.ai
paths:
  /api/v1/uploads:
    post:
      operationId: post_api_v1_uploads
      tags:
      - Api
      summary: POST /api/v1/uploads
      x-source: https://docs.send.ai/api/v2/uploads/upload.create
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1UploadsResponse'
      x-evidence:
        kind: code-example
        language: javascript
        snippet: 'fetch ( ''https://api.send.ai/api/v1/uploads'' , { method : ''POST'' , headers : { ''Authorization'' : ''Bearer YOUR_API_KEY''
          } , body : formData } )'
  /task/{taskId}:
    get:
      operationId: get_task_taskId
      tags:
      - Task
      summary: Check individual task details and status.
      x-source: https://docs.send.ai/api/v2/uploads/overview
      parameters:
      - name: taskId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /task/{taskId}/complete:
    post:
      operationId: post_task_taskId_complete
      tags:
      - Task
      summary: Mark a task as complete.
      x-source: https://docs.send.ai/api/v2/uploads/overview
      parameters:
      - name: taskId
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /task/{taskId}/discard:
    post:
      operationId: post_task_taskId_discard
      tags:
      - Task
      summary: Discard a task.
      x-source: https://docs.send.ai/api/v2/uploads/overview
      parameters:
      - name: taskId
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /upload:
    post:
      operationId: post_upload
      tags:
      - Upload
      summary: Submit files for processing.
      x-source: https://docs.send.ai/api/v2/uploads/overview
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /upload/{id}:
    get:
      operationId: get_upload_id
      tags:
      - Upload
      summary: Check status and view all tasks.
      x-source: https://docs.send.ai/api/v2/uploads/overview
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /upload/{id}/move:
    put:
      operationId: put_upload_id_move
      tags:
      - Upload
      summary: Change project or organization.
      x-source: https://docs.send.ai/api/v2/uploads/overview
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v2/team_123456/project/proj_123456/upload/upld_123456468/move/folder_789012:
    post:
      operationId: post_v2_team_123456_project_proj_123456_upload_upld_123456468_move_folder_789012
      tags:
      - Team 123456
      summary: POST /v2/team_123456/project/proj_123456/upload/upld_123456468/move/folder_789012
      x-source: https://docs.send.ai/api/v2/uploads/upload.move
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV2Team123456ProjectProj123456UploadUpld123456468MoveFold'
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl Typescript Python C# curl -X POST \ ''https://api.send.ai/v2/team_123456/project/proj_123456/upload/upld_123456468/move/folder_789012''
          \ -H ''Authorization: Bearer YOUR_API_KEY'' \ -H ''Content-Type: application/json'' const moveUpload = async ( teamId : string , projectId
          : string , folderId : string , uploadId : string ) : Promise < any > => { const response = await fetch ( ` https://api.send.ai'
  /v2/{teamId}/project/{projectId}/task/{taskId}:
    get:
      operationId: get_v2_teamId_project_projectId_task_taskId
      tags:
      - Project
      summary: Retrieve detailed information about a specific task, including its current status, processing step, and metadata.
      x-source: https://docs.send.ai/api/v2/tasks/overview
      parameters:
      - name: teamId
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV2TeamidProjectProjectidTaskTaskidResponse'
      x-evidence:
        kind: documentation
  /v2/{teamId}/project/{projectId}/task/{taskId}/approve:
    post:
      operationId: post_v2_teamId_project_projectId_task_taskId_approve
      tags:
      - Project
      summary: Approve a task to flag it for AI model learning.
      x-source: https://docs.send.ai/api/v2/tasks/task.approve
      parameters:
      - name: teamId
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV2TeamidProjectProjectidTaskTaskidApproveResponse'
      x-evidence:
        kind: documentation
  /v2/{teamId}/project/{projectId}/task/{taskId}/complete:
    post:
      operationId: post_v2_teamId_project_projectId_task_taskId_complete
      tags:
      - Project
      summary: Mark a task as complete and proceed to the next step in the processing pipeline.
      x-source: https://docs.send.ai/api/v2/tasks/overview
      parameters:
      - name: teamId
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v2/{teamId}/project/{projectId}/task/{taskId}/disapprove:
    post:
      operationId: post_v2_teamId_project_projectId_task_taskId_disapprove
      tags:
      - Project
      summary: Disapprove a task to remove it from AI model learning.
      x-source: https://docs.send.ai/api/v2/tasks/task.disapprove
      parameters:
      - name: teamId
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV2TeamidProjectProjectidTaskTaskidDisapproveResponse'
      x-evidence:
        kind: documentation
  /v2/{teamId}/project/{projectId}/task/{taskId}/discard:
    post:
      operationId: post_v2_teamId_project_projectId_task_taskId_discard
      tags:
      - Project
      summary: Remove a task from the processing pipeline by marking it as discarded.
      x-source: https://docs.send.ai/api/v2/tasks/overview
      parameters:
      - name: teamId
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v2/{teamId}/project/{projectId}/task/{taskId}/report:
    post:
      operationId: post_v2_teamId_project_projectId_task_taskId_report
      tags:
      - Project
      summary: Report an issue with a task, such as poor document quality or processing errors.
      x-source: https://docs.send.ai/api/v2/tasks/overview
      parameters:
      - name: teamId
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v2/{teamId}/project/{projectId}/task/{taskId}/unlock:
    post:
      operationId: post_v2_teamId_project_projectId_task_taskId_unlock
      tags:
      - Project
      summary: Unlock a completed task to allow editing.
      x-source: https://docs.send.ai/api/v2/tasks/overview
      parameters:
      - name: teamId
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v2/{teamId}/project/{projectId}/upload:
    post:
      operationId: post_v2_teamId_project_projectId_upload
      tags:
      - Project
      summary: This endpoint allows you to create a new upload in the system.
      x-source: https://docs.send.ai/api/v2/uploads/upload.create
      parameters:
      - name: teamId
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV2TeamidProjectProjectidUploadRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV2TeamidProjectProjectidUploadResponse'
      x-evidence:
        kind: documentation
  /v2/{teamId}/project/{projectId}/upload/{uploadId}:
    get:
      operationId: get_v2_teamId_project_projectId_upload_uploadId
      tags:
      - Project
      summary: Retrieve details for a specific upload.
      x-source: https://docs.send.ai/api/v2/uploads/upload.get
      parameters:
      - name: teamId
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      - name: uploadId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV2TeamidProjectProjectidUploadUploadidResponse'
      x-evidence:
        kind: documentation
components:
  schemas:
    PostApiV1UploadsResponse:
      type: object
      properties:
        type:
          type: string
    PostV2Team123456ProjectProj123456UploadUpld123456468MoveFold:
      type: object
      properties:
        payload:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
            status:
              type: string
            files:
              type: object
            meta:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  value:
                    type: string
            folder_id:
              type: string
            created_at:
              type: string
              format: date-time
    GetV2TeamidProjectProjectidTaskTaskidResponse:
      type: object
      properties:
        status:
          type: string
        processing_step:
          type: string
        metadata:
          type: object
    PostV2TeamidProjectProjectidTaskTaskidApproveResponse:
      type: object
      properties:
        payload:
          type: object
          description: 'Full public task object with approved: true'
        id:
          type: string
          description: Task identifier
        name:
          type: string
          description: Task name
        created_at:
          type: string
          description: Creation timestamp
        status:
          type: string
          description: Task status
        approved:
          type: boolean
          description: Approval status
        pages:
          type: array
          description: Array of page objects containing annotations, checkboxes, segments, and signatures
    PostV2TeamidProjectProjectidTaskTaskidDisapproveResponse:
      type: object
      properties:
        payload:
          type: object
          description: 'Full public task object with approved: false'
        id:
          type: string
          description: Task identifier
        name:
          type: string
          description: Task name
        created_at:
          type: string
          description: Task creation timestamp
        meta:
          type: array
          description: Task metadata
        status:
          type: string
          description: Task status
        step_type:
          type: string
          description: Step type
        upload_id:
          type: string
          description: Upload identifier
        project_id:
          type: string
          description: Project identifier
        approved:
          type: boolean
          description: Approval status
        exported_at:
          type: string
          description: Export timestamp
        export_failed_at:
          type: string
          description: Export failure timestamp
        last_opened_at:
          type: string
          description: Last opened timestamp
        pages:
          type: array
          description: Task pages with annotations
    PostV2TeamidProjectProjectidUploadRequest:
      type: object
      properties:
        name:
          type: string
          description: The name of the upload
        file:
          type: string
          description: The file to upload, adding multiple file fields will create an upload with one task for every upload
        projectId:
          type: string
          description: The project ID to associate with
        meta:
          type: array
          description: Additional metadata for the upload, array of name, value objects
      required:
      - file
      - projectId
    PostV2TeamidProjectProjectidUploadResponse:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the upload
        name:
          type: string
          description: The name of the upload
        projectId:
          type: string
          description: The project ID associated with the upload
        status:
          type: string
          description: Current status of the upload
        fileType:
          type: string
          description: The type of the uploaded file
        fileSize:
          type: number
          description: Size of the file in bytes
        createdAt:
          type: string
          description: ISO timestamp of when the upload was created
        updatedAt:
          type: string
          description: ISO timestamp of when the upload was last updated
    GetV2TeamidProjectProjectidUploadUploadidResponse:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the upload
        name:
          type: string
          description: The name of the upload
        status:
          type: string
          description: Current status of the upload
        files:
          type: object
          description: Information about associated files
        meta:
          type: array
          description: Array of metadata key-value pairs
        folder_id:
          type: string
          description: ID of the folder containing the upload
        created_at:
          type: string
          description: ISO timestamp of when the upload was created
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
security:
- bearer: []
tags:
- name: Api
- name: Project
- name: Task
- name: Team 123456
- name: Upload