openapi: 3.0.3 info: title: Thordata Web Scraper API - Tasks version: 1.0.0 description: List, poll and download the results of Web Scraper API tasks launched via /builder or /video_builder. contact: name: Thordata Support email: support@thordata.com url: https://www.thordata.com/contact-us x-derived-from: https://raw.githubusercontent.com/Thordata/thordata-sdk-spec/main/v1.json x-derived-by: API Evangelist enrichment pipeline x-derived-on: '2026-08-11' servers: - url: https://openapi.thordata.com/api/web-scraper-api description: Web Scraper API task lifecycle tags: - name: Tasks description: Task lifecycle for the Web Scraper API paths: /tasks-list: post: operationId: listScraperTasks tags: - Tasks summary: List scraper tasks security: - PublicToken: [] PublicKey: [] requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: page: type: integer description: 1-based page number size: type: integer description: Page size responses: '200': description: Paged task list. Response carries count and list. content: application/json: schema: type: object properties: code: type: integer msg: type: string data: type: object properties: count: type: integer list: type: array items: type: object '400': &id001 description: Bad Request - invalid parameters were passed. Not billed. content: application/json: schema: $ref: '#/components/schemas/Envelope' '401': &id002 description: Unauthorized - authentication failed; check token validity. Not billed. content: application/json: schema: $ref: '#/components/schemas/Envelope' '403': &id003 description: Forbidden - the target server refused to fulfill the request. Not billed. content: application/json: schema: $ref: '#/components/schemas/Envelope' '429': &id004 description: Too Many Requests - request rate exceeded the API limit. Retryable with exponential backoff. Not billed. content: application/json: schema: $ref: '#/components/schemas/Envelope' '500': &id005 description: Internal Server Error. Retryable with exponential backoff. Not billed. content: application/json: schema: $ref: '#/components/schemas/Envelope' '504': &id006 description: Timeout Error - the proxy server timed out waiting for the upstream server. Not billed. content: application/json: schema: $ref: '#/components/schemas/Envelope' /tasks-status: post: operationId: getScraperTaskStatus tags: - Tasks summary: Get the status of one or more tasks security: - PublicToken: [] PublicKey: [] requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: tasks_ids: type: string description: One or more task ids required: - tasks_ids responses: &id007 '200': description: Success. Billed only when the payload code is 200. content: application/json: schema: $ref: '#/components/schemas/Envelope' '400': *id001 '401': *id002 '403': *id003 '429': *id004 '500': *id005 '504': *id006 /tasks-download: post: operationId: downloadScraperTaskResult tags: - Tasks summary: Download a completed task result security: - PublicToken: [] PublicKey: [] requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: tasks_id: type: string type: type: string description: Result artifact to download enum: - json - csv - video - subtitle - audio required: - tasks_id - type responses: *id007 components: securitySchemes: PublicToken: type: apiKey in: header name: token description: Public token (THORDATA_PUBLIC_TOKEN) from the Thordata Dashboard. PublicKey: type: apiKey in: header name: key description: Public key (THORDATA_PUBLIC_KEY) from the Thordata Dashboard. schemas: Envelope: type: object description: Thordata JSON envelope. The effective status is the payload `code` when present and not 200, otherwise the HTTP status (v1.json errors.precedence). properties: code: type: integer description: Application status code. 200 success, 300 not collected (not billed). msg: type: string description: 'Human-readable message. Alternate field names: message, error, detail, description.' data: description: Result payload; shape varies by operation.