DataSnipe API

DataSnipe API as documented publicly: 13 operations. Contract generated from the documentation by API Evangelist (2026-11-05); not the provider's own document.

Operations 13

GET /api/v1/job-groups GET /api/v1/job-groups #
GET /api/v1/job-groups/ List job groups (not explicitly documented, omitted) #
GET /api/v1/job-groups/{groupid} The complete group result — status & every extraction #
GET /api/v1/job-groups/{groupid}/artifact.csv Download collated CSV #
GET /api/v1/job-groups/{groupid}/artifact.tsv Download collated TSV #
GET /api/v1/runs GET /api/v1/runs #
POST /api/v1/runs Run a one-off config — no saved workflow #
GET /api/v1/workflows GET /api/v1/workflows #
POST /api/v1/workflows POST /api/v1/workflows #
GET /api/v1/workflows/ List workflows (duplicate of /api/v1/workflows, omitted) #
DELETE /api/v1/workflows/{id} Delete a workflow #
GET /api/v1/workflows/{id} Fetch one workflow #
POST /api/v1/workflows/{id}/runs Run a saved workflow against uploaded files #

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/datasnipe-app:datasnipe-app-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

datasnipe-app-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: DataSnipe API
  version: '2026-11-05'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-05: 13 operation(s) read from 1 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; DataSnipe has published no machine-readable contract that the
    pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 4
    documentation: 9
    pages-with-code: 1
    pages-read: 1
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-05'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://datasnipe.app/developers
paths:
  /api/v1/job-groups:
    get:
      operationId: get_api_v1_job_groups
      tags:
      - Api
      summary: GET /api/v1/job-groups
      x-source: https://datasnipe.app/developers
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -s https://datasnipe.app/api/v1/job-groups/ $GROUP_ID  -H \"Authorization: Bearer $DATASNIPE_API_KEY \"  | jq -e '[.jobs[].status]\
          \ | all(. == \"done\" or . == \"failed\")' > /dev/null ; do \n sleep 3 \n done "
  /api/v1/job-groups/:
    get:
      operationId: get_api_v1_job_groups
      tags:
      - Api
      summary: List job groups (not explicitly documented, omitted)
      x-source: https://datasnipe.app/developers
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/job-groups/{groupid}:
    get:
      operationId: get_api_v1_job_groups_groupid
      tags:
      - Api
      summary: The complete group result — status & every extraction
      x-source: https://datasnipe.app/developers
      parameters:
      - name: groupid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1JobGroupsGroupidResponse'
      x-evidence:
        kind: documentation
  /api/v1/job-groups/{groupid}/artifact.csv:
    get:
      operationId: get_api_v1_job_groups_groupid_artifact_csv
      tags:
      - Api
      summary: Download collated CSV
      x-source: https://datasnipe.app/developers
      parameters:
      - name: groupid
        in: path
        required: true
        schema:
          type: string
      - name: collateBy
        in: query
        required: false
        schema:
          type: string
        description: document · page · none (default document)
      - name: confidenceCutoff
        in: query
        required: false
        schema:
          type: number
        description: 0–1 (default 0)
      - name: format
        in: query
        required: false
        schema:
          type: string
        description: standard · normalized (default standard)
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1JobGroupsGroupidArtifactCsvResponse'
      x-evidence:
        kind: documentation
  /api/v1/job-groups/{groupid}/artifact.tsv:
    get:
      operationId: get_api_v1_job_groups_groupid_artifact_tsv
      tags:
      - Api
      summary: Download collated TSV
      x-source: https://datasnipe.app/developers
      parameters:
      - name: groupid
        in: path
        required: true
        schema:
          type: string
      - name: collateBy
        in: query
        required: false
        schema:
          type: string
        description: document · page · none (default document)
      - name: confidenceCutoff
        in: query
        required: false
        schema:
          type: number
        description: 0–1 (default 0)
      - name: format
        in: query
        required: false
        schema:
          type: string
        description: standard · normalized (default standard)
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1JobGroupsGroupidArtifactTsvResponse'
      x-evidence:
        kind: documentation
  /api/v1/runs:
    get:
      operationId: get_api_v1_runs
      tags:
      - Api
      summary: GET /api/v1/runs
      x-source: https://datasnipe.app/developers
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl https://datasnipe.app/api/v1/runs  -H \"Authorization: Bearer $DATASNIPE_API_KEY \"  -F 'config={ \n \"extractionSchema\"\
          : [ { \"name\": \"title\", \"type\": \"string\" } ], \n \"model\": \"claude-sonnet-5-5\" \n };type=application/json'  -F \"files=@paper-1.pdf\"\
          \ \n Poll the returned groupId and download\n artifacts with the same job-group endpoints used for saved runs.\n Duplicate run protection\
          \ \n Both run endpoin"
    post:
      operationId: post_api_v1_runs
      tags:
      - Api
      summary: Run a one-off config — no saved workflow
      x-source: https://datasnipe.app/developers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1RunsRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1RunsResponse'
      x-evidence:
        kind: documentation
  /api/v1/workflows:
    get:
      operationId: get_api_v1_workflows
      tags:
      - Api
      summary: GET /api/v1/workflows
      x-source: https://datasnipe.app/developers
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -s https://datasnipe.app/api/v1/workflows/ $WORKFLOW_ID /runs  -H "Authorization: Bearer $DATASNIPE_API_KEY "  -F "files=@paper-1.pdf"
          -F "files=@paper-2.pdf"  | jq -r ''.groupId'' ) '
    post:
      operationId: post_api_v1_workflows
      tags:
      - Api
      summary: POST /api/v1/workflows
      x-source: https://datasnipe.app/developers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1WorkflowsRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -s https://datasnipe.app/api/v1/workflows  -H \"Authorization: Bearer $DATASNIPE_API_KEY \"  -H \"Content-Type: application/json\"\
          \  -d '{ \"name\": \"Quickstart\", \"extractionSchema\": [ \n { \"name\": \"title\", \"type\": \"string\" } ] }'  | jq -r '.workflow.id'\
          \ ) "
  /api/v1/workflows/:
    get:
      operationId: get_api_v1_workflows
      tags:
      - Api
      summary: List workflows (duplicate of /api/v1/workflows, omitted)
      x-source: https://datasnipe.app/developers
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/workflows/{id}:
    delete:
      operationId: delete_api_v1_workflows_id
      tags:
      - Api
      summary: Delete a workflow
      x-source: https://datasnipe.app/developers
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    get:
      operationId: get_api_v1_workflows_id
      tags:
      - Api
      summary: Fetch one workflow
      x-source: https://datasnipe.app/developers
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1WorkflowsIdResponse'
      x-evidence:
        kind: documentation
  /api/v1/workflows/{id}/runs:
    post:
      operationId: post_api_v1_workflows_id_runs
      tags:
      - Api
      summary: Run a saved workflow against uploaded files
      x-source: https://datasnipe.app/developers
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1WorkflowsIdRunsRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1WorkflowsIdRunsResponse'
      x-evidence:
        kind: documentation
components:
  schemas:
    GetApiV1JobGroupsGroupidResponse:
      type: object
      properties:
        groupId:
          type: string
          description: Group identifier
        model:
          type: string
          description: Model used
        jobs:
          type: array
          description: Array of job objects with status, extractions, etc.
    GetApiV1JobGroupsGroupidArtifactCsvResponse:
      type: object
      properties:
        csv:
          type: string
          description: CSV content
    GetApiV1JobGroupsGroupidArtifactTsvResponse:
      type: object
      properties:
        tsv:
          type: string
          description: TSV content
    PostApiV1RunsRequest:
      type: object
      properties:
        config:
          type: string
          description: Extraction configuration (extractionSchema, model, etc.)
        files:
          type: string
          description: One or more file parts
      required:
      - config
      - files
    PostApiV1RunsResponse:
      type: object
      properties:
        groupId:
          type: string
          description: ID of the job group
        jobs:
          type: array
          description: Array of job objects
    PostApiV1WorkflowsRequest:
      type: object
      properties:
        name:
          type: string
        extractionSchema:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              type:
                type: string
    GetApiV1WorkflowsIdResponse:
      type: object
      properties:
        workflow:
          type: object
          description: Workflow object
    PostApiV1WorkflowsIdRunsRequest:
      type: object
      properties:
        files:
          type: string
          description: One or more file parts
      required:
      - files
    PostApiV1WorkflowsIdRunsResponse:
      type: object
      properties:
        workflowId:
          type: string
          description: ID of the workflow
        groupId:
          type: string
          description: ID of the job group
        jobs:
          type: array
          description: Array of job objects with jobId and fileName
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
security:
- bearer: []
tags:
- name: Api