test
Pricing
Pay per usage
You can access the test programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in Integrations settings in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "0.0", "x-build-id": "UKVGboIZEiNPcYOhR" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/piercing_runner~input-orchestrator/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-piercing_runner-input-orchestrator", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } }, "/acts/piercing_runner~input-orchestrator/runs": { "post": { "operationId": "runs-sync-piercing_runner-input-orchestrator", "x-openai-isConsequential": false, "summary": "Executes an Actor and returns information about the initiated run in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/runsResponseSchema" } } } } } } }, "/acts/piercing_runner~input-orchestrator/run-sync": { "post": { "operationId": "run-sync-piercing_runner-input-orchestrator", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } } }, "components": { "schemas": { "inputSchema": { "type": "object", "required": [ "target_app", "payload" ], "properties": { "target_app": { "title": "Target app", "type": "string", "description": "Which target app to scrape. Currently supported: 'youtube'. Must be a supported value (others are rejected). [1..64 chars, [a-z0-9_-]+]" }, "payload": { "title": "Scrape targets", "type": "array", "description": "Array of YouTube channel targets — each a '@handle' or any URL containing one (e.g. '@SomeChannel' or 'https://youtube.com/@SomeChannel'). Each is normalized to '@handle' (URL prefix stripped) and duplicates are removed. Targets with no extractable @handle (e.g. channel/UC… or c/… URLs) are dropped. 1..1000 items, each 1..255 chars, no control chars.", "items": { "type": "string" } }, "webhook": { "title": "Webhook URL (optional, paired with secret)", "type": "string", "description": "HTTPS URL to POST batch result to on completion. REQUIRES `secret` to be set in the same call. If absent + payload > today_capacity → FAIL no_capacity. If present, overflow is queued for dispatcher pick-up later." }, "secret": { "title": "Webhook encryption secret (required if webhook is set)", "type": "string", "description": "Symmetric key used to ENCRYPT the result payload we POST to your webhook, so only you can read it. We POST JSON { batch_id, encryption: 'aes-256-gcm', payload } where payload = base64([version:1=0x01][iv:12][ciphertext+GCM-tag]). To decrypt: key = SHA-256(utf8(secret)) (32-byte AES-256 key); base64-decode payload; iv = bytes[1..13]; ciphertext = bytes[13..]; AES-256-GCM decrypt with no AAD → the result JSON. Required whenever `webhook` is set; rejected if `webhook` is absent. 16..256 chars." }, "metadata": { "title": "Metadata pass-through (optional)", "type": "string", "description": "Opaque string forwarded into webhook payload. Max 2048 chars." }, "partner": { "title": "Partner ID", "type": "string", "description": "ID of partner lvl customer" }, "client_key": { "title": "Client API key (optional)", "type": "string", "description": "If the operator set ORCHESTRATOR_API_KEYS, this must match one of them or the run is rejected ('unauthorized'). Leave empty when app-level client auth is off." } } }, "runsResponseSchema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string" }, "actId": { "type": "string" }, "userId": { "type": "string" }, "startedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "finishedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "status": { "type": "string", "example": "READY" }, "meta": { "type": "object", "properties": { "origin": { "type": "string", "example": "API" }, "userAgent": { "type": "string" } } }, "stats": { "type": "object", "properties": { "inputBodyLen": { "type": "integer", "example": 2000 }, "rebootCount": { "type": "integer", "example": 0 }, "restartCount": { "type": "integer", "example": 0 }, "resurrectCount": { "type": "integer", "example": 0 }, "computeUnits": { "type": "integer", "example": 0 } } }, "options": { "type": "object", "properties": { "build": { "type": "string", "example": "latest" }, "timeoutSecs": { "type": "integer", "example": 300 }, "memoryMbytes": { "type": "integer", "example": 1024 }, "diskMbytes": { "type": "integer", "example": 2048 } } }, "buildId": { "type": "string" }, "defaultKeyValueStoreId": { "type": "string" }, "defaultDatasetId": { "type": "string" }, "defaultRequestQueueId": { "type": "string" }, "buildNumber": { "type": "string", "example": "1.0.0" }, "containerUrl": { "type": "string" }, "usage": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "integer", "example": 1 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 } } }, "usageTotalUsd": { "type": "number", "example": 0.00005 }, "usageUsd": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "number", "example": 0.00005 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for test from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: