Monocrawl Batch API

Run several requests in one HTTP call.

Operations 4

POST /v1/youtube/channels Read YouTube channels with per-item billing #
POST /v1/youtube/videos Read YouTube videos with per-item billing #
POST /v1/batch Run up to 20 requests in one call #
POST /v1/youtube/transcripts Read YouTube transcripts with per-item billing #

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/monocrawl:monocrawl-batch-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

monocrawl-batch-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Monocrawl Batch API
  version: 0.1.0
  description: One key, one envelope, one credit meter across social, search, commerce and web data.
  contact:
    name: Monocrawl support
    url: https://www.monocrawl.com/contact
  termsOfService: https://www.monocrawl.com/legal/terms-and-conditions
servers:
- url: https://www.monocrawl.com
security:
- ApiKeyHeader: []
tags:
- name: Batch
  description: Run several requests in one HTTP call.
paths:
  /v1/youtube/channels:
    post:
      operationId: youtube_batch_channels
      tags:
      - Batch
      summary: Read YouTube channels with per-item billing
      description: 'Up to 20 independent reads, five at a time. Current single-item price: 1 credits. No wrapper fee; failed or empty items are uncharged. GET routes retain their existing behavior and price. A shared time budget leaves unstarted items uncharged. Pass Idempotency-Key for per-item replay protection.'
      security:
      - ApiKeyHeader: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                ids:
                  type: array
                  minItems: 1
                  maxItems: 20
                  items:
                    type: string
                  description: Channel IDs, handles or URLs.
                urls:
                  type: array
                  minItems: 1
                  maxItems: 20
                  items:
                    type: string
                  description: Alternative to ids; supply one array only.
                fresh:
                  type: boolean
                dry_run:
                  type: boolean
                  description: Quote each item without executing paid reads.
                hl:
                  type: string
              oneOf:
              - required:
                - ids
              - required:
                - urls
      responses:
        '200':
          description: Ordered per-item results. Inspect every status, success and credits_used. credits_used is null when billing_complete is false; credits_confirmed is the known subtotal. Replayed items have zero new credits and preserve original_credits_used.
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                $id: https://www.monocrawl.com/schemas/youtube/channels-batch.json
                title: youtube/channels-batch data fields
                description: Required core structure for successful data, with optional source fields. Additional fields are allowed. This is not a completeness guarantee.
                type: object
                properties:
                  success:
                    type:
                    - boolean
                    - 'null'
                  count:
                    type:
                    - number
                    - 'null'
                  succeeded:
                    type:
                    - number
                    - 'null'
                  failed:
                    type:
                    - number
                    - 'null'
                  credits_used:
                    type:
                    - number
                    - 'null'
                  credits_confirmed:
                    type:
                    - number
                    - 'null'
                  billing_complete:
                    type:
                    - boolean
                    - 'null'
                  results:
                    type:
                    - array
                    items:
                      type: object
                      properties:
                        index:
                          type:
                          - number
                          - 'null'
                        status:
                          type:
                          - number
                          - 'null'
                        success:
                          type:
                          - boolean
                          - 'null'
                        data:
                          description: Operation-specific JSON value; inspect the status and requested operation before reading it.
                        error:
                          type:
                          - object
                          - 'null'
                          properties: {}
                          additionalProperties: true
                        credits_used:
                          type:
                          - number
                          - 'null'
                        request_id:
                          type:
                          - string
                          - 'null'
                      additionalProperties: true
                      allOf:
                      - anyOf:
                        - required:
                          - index
                          properties:
                            index:
                              type:
                              - number
                        - required:
                          - success
                          properties:
                            success:
                              type:
                              - boolean
                        - required:
                          - data
                          properties:
                            data:
                              description: Operation-specific JSON value; inspect the status and requested operation before reading it.
                        - required:
                          - error
                          properties:
                            error:
                              type:
                              - object
                              properties: {}
                              additionalProperties: true
                        - required:
                          - credits_used
                          properties:
                            credits_used:
                              type:
                              - number
                        - required:
                          - request_id
                          properties:
                            request_id:
                              type:
                              - string
                              minLength: 1
                  dry_run:
                    type:
                    - boolean
                    - 'null'
                additionalProperties: true
                required:
                - results
                x-contract-version: '2026-09-22'
                x-validation-scope: Required success payload structure; optional fields and source completeness remain separate.
                examples:
                - success: false
                  count: 0
                  succeeded: 0
                  failed: 0
                  credits_used: 0
                  credits_confirmed: 0
                  billing_complete: false
                  results: []
                  dry_run: false
        default:
          description: Authentication or body validation failed before dispatch.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/youtube/videos:
    post:
      operationId: youtube_batch_videos
      tags:
      - Batch
      summary: Read YouTube videos with per-item billing
      description: 'Up to 20 independent reads, five at a time. Current single-item price: 1 credits. No wrapper fee; failed or empty items are uncharged. GET routes retain their existing behavior and price. A shared time budget leaves unstarted items uncharged. Pass Idempotency-Key for per-item replay protection.'
      security:
      - ApiKeyHeader: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                ids:
                  type: array
                  minItems: 1
                  maxItems: 20
                  items:
                    type: string
                  description: Video IDs or URLs.
                urls:
                  type: array
                  minItems: 1
                  maxItems: 20
                  items:
                    type: string
                  description: Alternative to ids; supply one array only.
                fresh:
                  type: boolean
                dry_run:
                  type: boolean
                  description: Quote each item without executing paid reads.
                hl:
                  type: string
              oneOf:
              - required:
                - ids
              - required:
                - urls
      responses:
        '200':
          description: Ordered per-item results. Inspect every status, success and credits_used. credits_used is null when billing_complete is false; credits_confirmed is the known subtotal. Replayed items have zero new credits and preserve original_credits_used.
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                $id: https://www.monocrawl.com/schemas/youtube/videos-batch.json
                title: youtube/videos-batch data fields
                description: Required core structure for successful data, with optional source fields. Additional fields are allowed. This is not a completeness guarantee.
                type: object
                properties:
                  success:
                    type:
                    - boolean
                    - 'null'
                  count:
                    type:
                    - number
                    - 'null'
                  succeeded:
                    type:
                    - number
                    - 'null'
                  failed:
                    type:
                    - number
                    - 'null'
                  credits_used:
                    type:
                    - number
                    - 'null'
                  credits_confirmed:
                    type:
                    - number
                    - 'null'
                  billing_complete:
                    type:
                    - boolean
                    - 'null'
                  results:
                    type:
                    - array
                    items:
                      type: object
                      properties:
                        index:
                          type:
                          - number
                          - 'null'
                        status:
                          type:
                          - number
                          - 'null'
                        success:
                          type:
                          - boolean
                          - 'null'
                        data:
                          description: Operation-specific JSON value; inspect the status and requested operation before reading it.
                        error:
                          type:
                          - object
                          - 'null'
                          properties: {}
                          additionalProperties: true
                        credits_used:
                          type:
                          - number
                          - 'null'
                        request_id:
                          type:
                          - string
                          - 'null'
                      additionalProperties: true
                      allOf:
                      - anyOf:
                        - required:
                          - index
                          properties:
                            index:
                              type:
                              - number
                        - required:
                          - success
                          properties:
                            success:
                              type:
                              - boolean
                        - required:
                          - data
                          properties:
                            data:
                              description: Operation-specific JSON value; inspect the status and requested operation before reading it.
                        - required:
                          - error
                          properties:
                            error:
                              type:
                              - object
                              properties: {}
                              additionalProperties: true
                        - required:
                          - credits_used
                          properties:
                            credits_used:
                              type:
                              - number
                        - required:
                          - request_id
                          properties:
                            request_id:
                              type:
                              - string
                              minLength: 1
                  dry_run:
                    type:
                    - boolean
                    - 'null'
                additionalProperties: true
                required:
                - results
                x-contract-version: '2026-09-22'
                x-validation-scope: Required success payload structure; optional fields and source completeness remain separate.
                examples:
                - success: false
                  count: 0
                  succeeded: 0
                  failed: 0
                  credits_used: 0
                  credits_confirmed: 0
                  billing_complete: false
                  results: []
                  dry_run: false
        default:
          description: Authentication or body validation failed before dispatch.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/batch:
    post:
      operationId: batch
      tags:
      - Batch
      summary: Run up to 20 requests in one call
      description: Each item runs through the full pipeline independently — items may target different platforms, and one item failing does not affect its siblings. The wrapper itself costs nothing; you pay only for the calls inside it. Auth is header-only (`x-api-key`).
      security:
      - ApiKeyHeader: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchRequest'
      responses:
        '200':
          description: Per-item results in request order. Check each item's own `status` and `success`.
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                $id: https://www.monocrawl.com/schemas/batch/response.json
                title: batch/response data fields
                description: Required core structure for successful data, with optional source fields. Additional fields are allowed. This is not a completeness guarantee.
                type: object
                properties:
                  success:
                    type:
                    - boolean
                    - 'null'
                  count:
                    type:
                    - number
                    - 'null'
                  succeeded:
                    type:
                    - number
                    - 'null'
                  failed:
                    type:
                    - number
                    - 'null'
                  credits_used:
                    type:
                    - number
                    - 'null'
                  credits_confirmed:
                    type:
                    - number
                    - 'null'
                  billing_complete:
                    type:
                    - boolean
                    - 'null'
                  results:
                    type:
                    - array
                    items:
                      type: object
                      properties:
                        index:
                          type:
                          - number
                          - 'null'
                        status:
                          type:
                          - number
                          - 'null'
                        success:
                          type:
                          - boolean
                          - 'null'
                        data:
                          description: Operation-specific JSON value; inspect the status and requested operation before reading it.
                        error:
                          type:
                          - object
                          - 'null'
                          properties: {}
                          additionalProperties: true
                        credits_used:
                          type:
                          - number
                          - 'null'
                        request_id:
                          type:
                          - string
                          - 'null'
                      additionalProperties: true
                      allOf:
                      - anyOf:
                        - required:
                          - index
                          properties:
                            index:
                              type:
                              - number
                        - required:
                          - success
                          properties:
                            success:
                              type:
                              - boolean
                        - required:
                          - data
                          properties:
                            data:
                              description: Operation-specific JSON value; inspect the status and requested operation before reading it.
                        - required:
                          - error
                          properties:
                            error:
                              type:
                              - object
                              properties: {}
                              additionalProperties: true
                        - required:
                          - credits_used
                          properties:
                            credits_used:
                              type:
                              - number
                        - required:
                          - request_id
                          properties:
                            request_id:
                              type:
                              - string
                              minLength: 1
                  dry_run:
                    type:
                    - boolean
                    - 'null'
                additionalProperties: true
                required:
                - results
                x-contract-version: '2026-09-22'
                x-validation-scope: Required success payload structure; optional fields and source completeness remain separate.
                examples:
                - success: false
                  count: 0
                  succeeded: 0
                  failed: 0
                  credits_used: 0
                  credits_confirmed: 0
                  billing_complete: false
                  results: []
                  dry_run: false
        default:
          description: The error envelope (the batch itself was rejected — bad body, auth, or rate limit).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-response-schema: https://www.monocrawl.com/schemas/batch/response.json
  /v1/youtube/transcripts:
    post:
      operationId: youtube_batch_transcripts
      tags:
      - Batch
      summary: Read YouTube transcripts with per-item billing
      description: 'Up to 20 independent reads, five at a time. Current single-item price: 2 credits. No wrapper fee; failed or empty items are uncharged. GET routes retain their existing behavior and price. A shared time budget leaves unstarted items uncharged. Pass Idempotency-Key for per-item replay protection.'
      security:
      - ApiKeyHeader: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                ids:
                  type: array
                  minItems: 1
                  maxItems: 20
                  items:
                    type: string
                  description: Video IDs or URLs.
                urls:
                  type: array
                  minItems: 1
                  maxItems: 20
                  items:
                    type: string
                  description: Alternative to ids; supply one array only.
                fresh:
                  type: boolean
                dry_run:
                  type: boolean
                  description: Quote each item without executing paid reads.
              oneOf:
              - required:
                - ids
              - required:
                - urls
      responses:
        '200':
          description: Ordered per-item results. Inspect every status, success and credits_used. credits_used is null when billing_complete is false; credits_confirmed is the known subtotal. Replayed items have zero new credits and preserve original_credits_used.
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                $id: https://www.monocrawl.com/schemas/youtube/transcripts-batch.json
                title: youtube/transcripts-batch data fields
                description: Required core structure for successful data, with optional source fields. Additional fields are allowed. This is not a completeness guarantee.
                type: object
                properties:
                  success:
                    type:
                    - boolean
                    - 'null'
                  count:
                    type:
                    - number
                    - 'null'
                  succeeded:
                    type:
                    - number
                    - 'null'
                  failed:
                    type:
                    - number
                    - 'null'
                  credits_used:
                    type:
                    - number
                    - 'null'
                  credits_confirmed:
                    type:
                    - number
                    - 'null'
                  billing_complete:
                    type:
                    - boolean
                    - 'null'
                  results:
                    type:
                    - array
                    items:
                      type: object
                      properties:
                        index:
                          type:
                          - number
                          - 'null'
                        status:
                          type:
                          - number
                          - 'null'
                        success:
                          type:
                          - boolean
                          - 'null'
                        data:
                          description: Operation-specific JSON value; inspect the status and requested operation before reading it.
                        error:
                          type:
                          - object
                          - 'null'
                          properties: {}
                          additionalProperties: true
                        credits_used:
                          type:
                          - number
                          - 'null'
                        request_id:
                          type:
                          - string
                          - 'null'
                      additionalProperties: true
                      allOf:
                      - anyOf:
                        - required:
                          - index
                          properties:
                            index:
                              type:
                              - number
                        - required:
                          - success
                          properties:
                            success:
                              type:
                              - boolean
                        - required:
                          - data
                          properties:
                            data:
                              description: Operation-specific JSON value; inspect the status and requested operation before reading it.
                        - required:
                          - error
                          properties:
                            error:
                              type:
                              - object
                              properties: {}
                              additionalProperties: true
                        - required:
                          - credits_used
                          properties:
                            credits_used:
                              type:
                              - number
                        - required:
                          - request_id
                          properties:
                            request_id:
                              type:
                              - string
                              minLength: 1
                  dry_run:
                    type:
                    - boolean
                    - 'null'
                additionalProperties: true
                required:
                - results
                x-contract-version: '2026-09-22'
                x-validation-scope: Required success payload structure; optional fields and source completeness remain separate.
                examples:
                - success: false
                  count: 0
                  succeeded: 0
                  failed: 0
                  credits_used: 0
                  credits_confirmed: 0
                  billing_complete: false
                  results: []
                  dry_run: false
        default:
          description: Authentication or body validation failed before dispatch.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      required:
      - success
      - error
      - credits_used
      - request_id
      properties:
        success:
          const: false
        error:
          type: object
          required:
          - type
          - message
          - status
          properties:
            type:
              type: string
              enum:
              - UNAUTHORIZED
              - KEY_REVOKED
              - KEY_LIMIT_EXCEEDED
              - RATE_LIMITED
              - INSUFFICIENT_CREDITS
              - RESOURCE_NOT_FOUND
              - INVALID_PARAMETERS
              - TARGET_ACCESS_DENIED
              - UPSTREAM_ERROR
              - UPSTREAM_TIMEOUT
              - FREE_CAPACITY_UNAVAILABLE
              - CAPACITY_UNAVAILABLE
              - ENDPOINT_NOT_FOUND
              - ENDPOINT_NOT_AVAILABLE
              - FAIR_USE_EXCEEDED
              - INTERNAL_ERROR
            message:
              type: string
            status:
              type: integer
            doc_url:
              type: string
              description: Deep link to the exact section of the errors guide for this type.
            details:
              type: object
        credits_used:
          type:
          - integer
          - 'null'
          description: Confirmed net charge; null when billing is pending reconciliation. Inspect error.details.billing_status and retain request_id.
        credits_remaining:
          type: integer
        request_id:
          type: string
    BatchRequest:
      type: object
      required:
      - requests
      properties:
        requests:
          type: array
          maxItems: 20
          items:
            type: object
            required:
            - platform
            - endpoint
            properties:
              platform:
                type: string
                example: github
              endpoint:
                type: string
                example: profile
              params:
                type: object
                additionalProperties:
                  type: string
  securitySchemes:
    ApiKeyHeader:
      type: apiKey
      in: header
      name: x-api-key
      description: Your API key (`mn_…`), from the console. The recommended style.
    BearerKey:
      type: http
      scheme: bearer
      description: The same key as a Bearer token, for clients that only expose an Authorization field. Keys are never accepted in the query string — URLs leak into logs and referrers.