{
  "openapi": "3.0.1",
  "info": {
    "title": "Bulk LLM Runner GPT, Claude, Perplexity, Kimi (No API Key)",
    "description": "Run hundreds of prompts in parallel across GPT, Claude, Gemini and Perplexity Sonar — plus 400+ other LLMs — without API key. Built-in web search, PDF reading, vision, JSON output and side-by-side model comparison.",
    "version": "0.1",
    "x-build-id": "erZzVVyhwDOgtb7sE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fayoussef~bulk-llm-runner/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fayoussef-bulk-llm-runner",
        "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/fayoussef~bulk-llm-runner/runs": {
      "post": {
        "operationId": "runs-sync-fayoussef-bulk-llm-runner",
        "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/fayoussef~bulk-llm-runner/run-sync": {
      "post": {
        "operationId": "run-sync-fayoussef-bulk-llm-runner",
        "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": [
          "prompts",
          "model"
        ],
        "properties": {
          "prompts": {
            "title": "Prompts",
            "type": "array",
            "description": "One prompt per line / per array item. Each prompt runs as an independent chat completion. Use this for batch / multi-command processing.",
            "items": {
              "type": "string"
            }
          },
          "system_prompt": {
            "title": "System prompt (optional)",
            "type": "string",
            "description": "Shared system instruction prepended to every prompt.",
            "default": "You are a helpful, accurate assistant. Use the available tools when they would improve the answer."
          },
          "model": {
            "title": "Model",
            "enum": [
              "anthropic/claude-opus-5-fast",
              "anthropic/claude-opus-5",
              "anthropic/claude-opus-5:batch",
              "anthropic/claude-sonnet-5",
              "anthropic/claude-sonnet-5:batch",
              "anthropic/claude-opus-4.8-fast",
              "anthropic/claude-opus-4.8",
              "anthropic/claude-opus-4.8:batch",
              "anthropic/claude-opus-4.7-fast",
              "anthropic/claude-opus-4.7",
              "anthropic/claude-opus-4.7:batch",
              "anthropic/claude-sonnet-4.6",
              "anthropic/claude-sonnet-4.6:batch",
              "anthropic/claude-opus-4.6",
              "anthropic/claude-opus-4.6:batch",
              "anthropic/claude-opus-4.5",
              "anthropic/claude-opus-4.5:batch",
              "anthropic/claude-haiku-4.5",
              "anthropic/claude-haiku-4.5:batch",
              "anthropic/claude-sonnet-4.5",
              "anthropic/claude-sonnet-4.5:batch",
              "anthropic/claude-opus-4.1",
              "anthropic/claude-opus-4.1:batch",
              "anthropic/claude-opus-4",
              "anthropic/claude-sonnet-4",
              "anthropic/claude-3-haiku",
              "anthropic/claude-fable-5",
              "anthropic/claude-fable-5:batch",
              "google/gemini-3.6-flash",
              "google/gemini-3.6-flash:batch",
              "google/gemini-3.5-flash-lite",
              "google/gemini-3.5-flash-lite:batch",
              "google/gemini-3.1-flash-lite-image",
              "google/gemini-3.1-flash-image",
              "google/gemini-3-pro-image",
              "google/gemini-3.5-flash",
              "google/gemini-3.5-flash:batch",
              "google/gemini-3.1-flash-lite",
              "google/gemini-3.1-flash-lite:batch",
              "google/gemini-3.1-flash-lite-preview",
              "google/gemini-3.1-flash-image-preview",
              "google/gemini-3.1-pro-preview-customtools",
              "google/gemini-3.1-pro-preview",
              "google/gemini-3.1-pro-preview:batch",
              "google/gemini-3-flash-preview",
              "google/gemini-3-flash-preview:batch",
              "google/gemini-3-pro-image-preview",
              "google/gemini-2.5-flash-image",
              "google/gemini-2.5-flash-lite",
              "google/gemini-2.5-flash-lite:batch",
              "google/gemini-2.5-flash",
              "google/gemini-2.5-flash:batch",
              "google/gemini-2.5-pro",
              "google/gemini-2.5-pro:batch",
              "google/gemini-2.5-pro-preview",
              "google/gemini-2.5-pro-preview-05-06",
              "google/gemma-4-26b-a4b-it",
              "google/gemma-4-31b-it",
              "google/lyria-3-pro-preview",
              "google/lyria-3-clip-preview",
              "google/gemma-3n-e4b-it",
              "google/gemma-3-4b-it",
              "google/gemma-3-12b-it",
              "google/gemma-3-27b-it",
              "google/gemma-2-27b-it",
              "google/gemma-4-26b-a4b-it:free",
              "google/gemma-4-31b-it:free",
              "openai/gpt-5.6-luna-pro",
              "openai/gpt-5.6-luna-pro:batch",
              "openai/gpt-5.6-luna",
              "openai/gpt-5.6-luna:batch",
              "openai/gpt-5.6-terra-pro",
              "openai/gpt-5.6-terra-pro:batch",
              "openai/gpt-5.6-terra",
              "openai/gpt-5.6-terra:batch",
              "openai/gpt-5.6-sol-pro",
              "openai/gpt-5.6-sol-pro:batch",
              "openai/gpt-5.6-sol",
              "openai/gpt-5.6-sol:batch",
              "openai/gpt-5.5-pro",
              "openai/gpt-5.5-pro:batch",
              "openai/gpt-5.5",
              "openai/gpt-5.5:batch",
              "openai/gpt-5.4-image-2",
              "openai/gpt-5.4-nano",
              "openai/gpt-5.4-nano:batch",
              "openai/gpt-5.4-mini",
              "openai/gpt-5.4-mini:batch",
              "openai/gpt-5.4-pro",
              "openai/gpt-5.4-pro:batch",
              "openai/gpt-5.4",
              "openai/gpt-5.4:batch",
              "openai/gpt-5.3-chat",
              "openai/gpt-5.3-codex",
              "openai/gpt-5.2-codex",
              "openai/gpt-5.2-chat",
              "openai/gpt-5.2-pro",
              "openai/gpt-5.2-pro:batch",
              "openai/gpt-5.2",
              "openai/gpt-5.2:batch",
              "openai/gpt-5.1-codex-max",
              "openai/gpt-5.1",
              "openai/gpt-5.1:batch",
              "openai/gpt-5.1-codex",
              "openai/gpt-5.1-codex-mini",
              "openai/gpt-5-image-mini",
              "openai/gpt-5-image",
              "openai/gpt-5-pro",
              "openai/gpt-5-pro:batch",
              "openai/gpt-5-codex:batch",
              "openai/gpt-5",
              "openai/gpt-5:batch",
              "openai/gpt-5-mini",
              "openai/gpt-5-mini:batch",
              "openai/gpt-5-nano",
              "openai/gpt-5-nano:batch",
              "openai/o3-pro",
              "openai/o3-pro:batch",
              "openai/o4-mini-high",
              "openai/o4-mini-high:batch",
              "openai/o3",
              "openai/o3:batch",
              "openai/o4-mini",
              "openai/o4-mini:batch",
              "openai/gpt-4.1",
              "openai/gpt-4.1:batch",
              "openai/gpt-4.1-mini",
              "openai/gpt-4.1-mini:batch",
              "openai/gpt-4.1-nano",
              "openai/gpt-4.1-nano:batch",
              "openai/o3-mini-high",
              "openai/o3-mini-high:batch",
              "openai/o3-mini",
              "openai/o3-mini:batch",
              "openai/gpt-4o-2024-11-20",
              "openai/gpt-4o-2024-08-06",
              "openai/gpt-4o-mini",
              "openai/gpt-4o-mini-2024-07-18",
              "openai/gpt-4o-mini:batch",
              "openai/gpt-4o",
              "openai/gpt-4o-2024-05-13",
              "openai/gpt-4o:batch",
              "openai/gpt-4-turbo",
              "openai/gpt-4-turbo:batch",
              "openai/gpt-4-turbo-preview",
              "openai/gpt-4",
              "openai/gpt-chat-latest",
              "openai/gpt-audio",
              "openai/gpt-audio-mini",
              "openai/gpt-oss-safeguard-20b",
              "openai/gpt-oss-120b",
              "openai/gpt-oss-20b",
              "openai/o1-pro",
              "openai/o1-pro:batch",
              "openai/o1",
              "openai/o1:batch",
              "openai/gpt-3.5-turbo-0613",
              "openai/gpt-3.5-turbo-instruct",
              "openai/gpt-3.5-turbo-16k",
              "openai/gpt-3.5-turbo",
              "openai/gpt-3.5-turbo:batch",
              "openai/gpt-oss-20b:free",
              "deepseek/deepseek-v3.2",
              "deepseek/deepseek-v3.2-exp",
              "deepseek/deepseek-v3.1-terminus",
              "deepseek/deepseek-chat-v3.1",
              "deepseek/deepseek-r1-0528",
              "deepseek/deepseek-chat-v3-0324",
              "deepseek/deepseek-r1-distill-llama-70b",
              "deepseek/deepseek-r1",
              "deepseek/deepseek-chat",
              "deepseek/deepseek-v4-flash-0731",
              "deepseek/deepseek-v4-pro",
              "deepseek/deepseek-v4-flash",
              "x-ai/grok-4.5",
              "x-ai/grok-4.3",
              "x-ai/grok-4.20-multi-agent",
              "x-ai/grok-4.20",
              "x-ai/grok-build-0.1",
              "meta-llama/llama-4-maverick",
              "meta-llama/llama-4-scout",
              "meta-llama/llama-guard-4-12b",
              "meta-llama/llama-3.3-70b-instruct",
              "meta-llama/llama-3.2-1b-instruct",
              "meta-llama/llama-3.2-3b-instruct",
              "meta-llama/llama-3.1-70b-instruct",
              "meta-llama/llama-3.1-8b-instruct",
              "qwen/qwen3.8-max",
              "qwen/qwen3.7-flash",
              "qwen/qwen3.7-plus",
              "qwen/qwen3.7-max",
              "qwen/qwen3.5-plus-20260420",
              "qwen/qwen3.6-flash",
              "qwen/qwen3.6-35b-a3b",
              "qwen/qwen3.6-max-preview",
              "qwen/qwen3.6-27b",
              "qwen/qwen3.6-plus",
              "qwen/qwen3.5-9b",
              "qwen/qwen3.5-35b-a3b",
              "qwen/qwen3.5-27b",
              "qwen/qwen3.5-122b-a10b",
              "qwen/qwen3.5-flash-02-23",
              "qwen/qwen3.5-plus-02-15",
              "qwen/qwen3.5-397b-a17b",
              "qwen/qwen3-max-thinking",
              "qwen/qwen3-coder-next",
              "qwen/qwen3-vl-32b-instruct",
              "qwen/qwen3-vl-8b-thinking",
              "qwen/qwen3-vl-8b-instruct",
              "qwen/qwen3-vl-30b-a3b-thinking",
              "qwen/qwen3-vl-30b-a3b-instruct",
              "qwen/qwen3-vl-235b-a22b-thinking",
              "qwen/qwen3-vl-235b-a22b-instruct",
              "qwen/qwen3-max",
              "qwen/qwen3-coder-plus",
              "qwen/qwen3-coder-flash",
              "qwen/qwen3-next-80b-a3b-thinking",
              "qwen/qwen3-next-80b-a3b-instruct",
              "qwen/qwen3-30b-a3b-thinking-2507",
              "qwen/qwen3-coder-30b-a3b-instruct",
              "qwen/qwen3-30b-a3b-instruct-2507",
              "qwen/qwen3-235b-a22b-thinking-2507",
              "qwen/qwen3-coder",
              "qwen/qwen3-235b-a22b-2507",
              "qwen/qwen3-30b-a3b",
              "qwen/qwen3-8b",
              "qwen/qwen3-14b",
              "qwen/qwen3-32b",
              "qwen/qwen3-235b-a22b",
              "qwen/qwen-2.5-coder-32b-instruct",
              "qwen/qwen-2.5-7b-instruct",
              "qwen/qwen-2.5-72b-instruct",
              "qwen/qwen-plus-2025-07-28",
              "qwen/qwen-plus-2025-07-28:thinking",
              "qwen/qwen2.5-vl-72b-instruct",
              "qwen/qwen-plus",
              "mistralai/mistral-medium-3-5",
              "mistralai/mistral-small-2603",
              "mistralai/mistral-large-2512",
              "mistralai/mistral-medium-3.1",
              "mistralai/mistral-small-3.2-24b-instruct",
              "mistralai/mistral-medium-3",
              "mistralai/mistral-small-3.1-24b-instruct",
              "mistralai/mistral-small-24b-instruct-2501",
              "mistralai/mistral-large-2407",
              "mistralai/mistral-large",
              "mistralai/ministral-14b-2512",
              "mistralai/ministral-8b-2512",
              "mistralai/ministral-3b-2512",
              "mistralai/voxtral-small-24b-2507",
              "mistralai/codestral-2508",
              "mistralai/mistral-saba",
              "mistralai/mistral-nemo",
              "mistralai/mixtral-8x22b-instruct",
              "moonshotai/kimi-k3",
              "moonshotai/kimi-k2.7-code",
              "moonshotai/kimi-k2.7-code:batch",
              "moonshotai/kimi-k2.6",
              "moonshotai/kimi-k2.5",
              "moonshotai/kimi-k2-thinking",
              "moonshotai/kimi-k2-0905",
              "moonshotai/kimi-k2",
              "z-ai/glm-5.2",
              "z-ai/glm-5.2:batch",
              "z-ai/glm-5.1",
              "z-ai/glm-5v-turbo",
              "z-ai/glm-5-turbo",
              "z-ai/glm-5",
              "z-ai/glm-4.7-flash",
              "z-ai/glm-4.7",
              "z-ai/glm-4.6v",
              "z-ai/glm-4.6",
              "z-ai/glm-4.5v",
              "z-ai/glm-4.5",
              "z-ai/glm-4.5-air",
              "perplexity/sonar-pro-search",
              "perplexity/sonar-reasoning-pro",
              "perplexity/sonar-pro",
              "perplexity/sonar-deep-research",
              "perplexity/sonar",
              "cohere/command-a",
              "cohere/command-r7b-12-2024",
              "cohere/command-r-08-2024",
              "cohere/command-r-plus-08-2024",
              "cohere/north-mini-code:free",
              "amazon/nova-2-lite-v1",
              "amazon/nova-premier-v1",
              "amazon/nova-lite-v1",
              "amazon/nova-micro-v1",
              "amazon/nova-pro-v1",
              "nvidia/nemotron-3-ultra-550b-a55b",
              "nvidia/nemotron-3-ultra-550b-a55b:batch",
              "nvidia/nemotron-3-super-120b-a12b",
              "nvidia/nemotron-3-nano-30b-a3b",
              "nvidia/nemotron-3.5-content-safety:free",
              "nvidia/nemotron-3-ultra-550b-a55b:free",
              "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",
              "nvidia/nemotron-3-super-120b-a12b:free",
              "nvidia/nemotron-3-nano-30b-a3b:free",
              "nvidia/nemotron-nano-12b-v2-vl:free",
              "nvidia/nemotron-nano-9b-v2:free",
              "minimax/minimax-m3",
              "minimax/minimax-m3:batch",
              "minimax/minimax-m2.7",
              "minimax/minimax-m2.5",
              "minimax/minimax-m2-her",
              "minimax/minimax-m2.1",
              "minimax/minimax-m2",
              "minimax/minimax-m1",
              "minimax/minimax-01",
              "ai21/jamba-large-1.7",
              "aion-labs/aion-3.0-mini",
              "aion-labs/aion-3.0",
              "aion-labs/aion-2.0",
              "aion-labs/aion-rp-llama-3.1-8b",
              "allenai/olmo-3-32b-think",
              "anthracite-org/magnum-v4-72b",
              "arcee-ai/trinity-large-thinking",
              "arcee-ai/virtuoso-large",
              "baidu/ernie-4.5-vl-424b-a47b",
              "bytedance/ui-tars-1.5-7b",
              "bytedance-seed/seed-2.0-lite",
              "bytedance-seed/seed-2.0-mini",
              "bytedance-seed/seed-1.6-flash",
              "bytedance-seed/seed-1.6",
              "cognitivecomputations/dolphin-mistral-24b-venice-edition",
              "deepcogito/cogito-v2.1-671b",
              "gryphe/mythomax-l2-13b",
              "ibm-granite/granite-4.1-8b",
              "ibm-granite/granite-4.0-h-micro",
              "inception/mercury-2",
              "inclusionai/ling-3.0-flash",
              "inclusionai/ring-2.6-1t",
              "inclusionai/ling-2.6-1t",
              "inclusionai/ling-2.6-flash",
              "inclusionai/ling-3.0-tiny:free",
              "kwaipilot/kat-coder-air-v2.5",
              "kwaipilot/kat-coder-pro-v2.5",
              "kwaipilot/kat-coder-pro-v2",
              "mancer/weaver",
              "meituan/longcat-2.0",
              "meta/muse-spark-1.2",
              "meta/muse-spark-1.1",
              "microsoft/phi-4",
              "microsoft/wizardlm-2-8x22b",
              "morph/morph-v3-large",
              "morph/morph-v3-fast",
              "nex-agi/nex-n2-mini",
              "nex-agi/nex-n2-pro",
              "nousresearch/hermes-4-70b",
              "nousresearch/hermes-4-405b",
              "nousresearch/hermes-3-llama-3.1-70b",
              "nousresearch/hermes-3-llama-3.1-405b",
              "openrouter/auto-beta",
              "openrouter/fusion",
              "openrouter/pareto-code",
              "openrouter/free",
              "openrouter/bodybuilder",
              "openrouter/auto",
              "perceptron/perceptron-mk1",
              "poolside/laguna-s-2.1",
              "poolside/laguna-xs-2.1",
              "poolside/laguna-s-2.1:free",
              "poolside/laguna-xs-2.1:free",
              "rekaai/reka-edge",
              "rekaai/reka-flash-3",
              "relace/relace-search",
              "relace/relace-apply-3",
              "sakana/fugu-ultra",
              "sao10k/l3.3-euryale-70b",
              "sao10k/l3.1-euryale-70b",
              "sao10k/l3-lunaris-8b",
              "stepfun/step-3.7-flash",
              "stepfun/step-3.5-flash",
              "tencent/hy3",
              "tencent/hy3-preview",
              "tencent/hunyuan-a13b-instruct",
              "thedrummer/cydonia-24b-v4.1",
              "thedrummer/skyfall-36b-v2",
              "thedrummer/unslopnemo-12b",
              "thedrummer/rocinante-12b",
              "thinkingmachines/inkling-small",
              "thinkingmachines/inkling",
              "thinkingmachines/inkling:batch",
              "undi95/remm-slerp-l2-13b",
              "upstage/solar-pro-3",
              "writer/palmyra-x5",
              "xiaomi/mimo-v2.5-pro",
              "xiaomi/mimo-v2.5"
            ],
            "type": "string",
            "description": "Most-used OpenRouter models. Append ':online' or toggle 'Enable web search' to add real-time web search to any of them.",
            "default": "anthropic/claude-haiku-4.5"
          },
          "custom_model": {
            "title": "Custom model id (overrides Model)",
            "type": "string",
            "description": "Optional. Enter a model id in vendor/model format — it must include the vendor prefix and the slash. Correct: qwen/qwen3-vl-235b-a22b-thinking. Wrong: qwen3-vl-235b-a22b-thinking (missing the 'qwen/' prefix — this will be rejected). More examples: anthropic/claude-opus-4.8, openai/gpt-5, google/gemini-2.5-pro. To find the exact id, open https://openrouter.ai/models, click a model, and copy the id shown under its name (it always has a slash). Tip: common labels like 'Claude Opus 4.8' are auto-corrected, but any model not in the dropdown must be entered as its exact vendor/model id. If filled, this overrides the Model dropdown."
          },
          "enable_web_search": {
            "title": "Enable web search",
            "type": "boolean",
            "description": "Runs a live web search before the model answers and feeds the results in as context. Works with any model.",
            "default": true
          },
          "enable_file_parser": {
            "title": "Enable PDF / file parsing",
            "type": "boolean",
            "description": "Activates the file-parser plugin so the model can read PDFs/URLs you reference in the prompt.",
            "default": false
          },
          "temperature": {
            "title": "Temperature",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "Sampling temperature x100 (0 = deterministic, 200 = very creative).",
            "default": 70
          },
          "max_tokens": {
            "title": "Max output tokens",
            "minimum": 64,
            "maximum": 32000,
            "type": "integer",
            "description": "Upper bound on tokens per response.",
            "default": 2048
          },
          "compare_models": {
            "title": "Compare with extra models",
            "uniqueItems": true,
            "type": "array",
            "description": "Optional. Add more model ids in vendor/model format (e.g. openai/gpt-5, google/gemini-2.5-pro, anthropic/claude-opus-4.8) to run EVERY prompt against the main model AND each of these. One dataset row per (prompt × model). Great for A/B testing GPT-5 vs Claude vs Gemini side by side. Enter ids, not display names — find them at https://openrouter.ai/models.",
            "items": {
              "type": "string"
            }
          },
          "image_urls": {
            "title": "Image URLs (vision)",
            "uniqueItems": true,
            "type": "array",
            "description": "Optional. Direct, publicly downloadable image URLs attached to every prompt. Only used with multimodal models (GPT-4o/5, Claude 4.x, Gemini 2.5, Llama 4, Qwen-VL). The URL must open the image file itself with no login and no expiring link: sharing pages from Google Drive, Dropbox or OneDrive serve a web page, not an image, so use the direct file link. Each image must be under 10 MB. Bad URLs stop the run immediately with an explanation, before anything is charged.",
            "items": {
              "type": "string"
            }
          },
          "response_format": {
            "title": "Response format",
            "enum": [
              "json_object",
              "text",
              "json_schema"
            ],
            "type": "string",
            "description": "How the model should format its reply. Default 'Auto JSON' makes every reply a JSON object so the Excel/CSV export gets one column per field: simple prompts return `{\"response\": \"...\"}` (a single 'response' column), and prompts that ask for specific fields like 'return description, price, rating' return those exact keys as columns. Pick 'JSON Schema (strict)' to lock the output to an exact schema, or 'Plain text' for free-form text.",
            "default": "json_object"
          },
          "json_schema": {
            "title": "JSON schema (optional)",
            "type": "object",
            "description": "Only used when Response format = 'JSON Schema (strict)'. Paste a JSON Schema describing the exact shape you want back; each top-level property becomes its own column. Example: { \"type\": \"object\", \"properties\": { \"title\": {\"type\":\"string\"}, \"tags\": {\"type\":\"array\",\"items\":{\"type\":\"string\"}} }, \"required\": [\"title\",\"tags\"] }"
          },
          "reasoning_effort": {
            "title": "Reasoning effort",
            "enum": [
              "default",
              "none",
              "low",
              "medium",
              "high"
            ],
            "type": "string",
            "description": "For reasoning models (o3, o4-mini, GPT-5, DeepSeek R1, Sonar Reasoning). 'none' disables reasoning where possible. Ignored by non-reasoning models.",
            "default": "default"
          },
          "provider_sort": {
            "title": "Provider routing preference",
            "enum": [
              "default",
              "price",
              "throughput",
              "latency"
            ],
            "type": "string",
            "description": "When a model is available from multiple providers, prefer the one optimised for this dimension.",
            "default": "default"
          },
          "fallback_models": {
            "title": "Fallback models",
            "uniqueItems": true,
            "type": "array",
            "description": "Optional. If the main model fails or is rate-limited, it automatically retries with these models in order. Use model ids in vendor/model format (e.g. anthropic/claude-sonnet-4.6, openai/gpt-4o-mini) — not display names.",
            "items": {
              "type": "string"
            }
          },
          "max_retries": {
            "title": "Retries on transient errors",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Number of automatic retries on HTTP 429 / 5xx errors before giving up on a prompt.",
            "default": 2
          },
          "concurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "How many prompts to run in parallel against the openrouter actor.",
            "default": 4
          },
          "apify_token": {
            "title": "Apify token (optional)",
            "type": "string",
            "description": "Defaults to the run's own APIFY_TOKEN. Override only if you want to bill a different account."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}