{
  "url": "https://telipot.com/catalog/capabilities/web.research.start",
  "id": "web.research.start",
  "description": "Start a research run that answers a question from many web sources",
  "platform": "web",
  "providers": [
    {
      "slug": "exa",
      "name": "Exa"
    }
  ],
  "tasks": 1,
  "taskPages": [
    {
      "id": "exa.web.research.start",
      "name": "Start web research from a question, returns a run id",
      "provider": {
        "slug": "exa",
        "name": "Exa"
      },
      "capability": "web.research.start",
      "platform": "web",
      "kind": "data",
      "tier": "core",
      "identity": "key",
      "identityLabel": "Your plan",
      "price": {
        "type": "per_call",
        "confidence": "documented",
        "source": "docs",
        "sourceUrl": "https://exa.ai/docs/admin/pricing",
        "checked": "2026-10-05",
        "note": "Fixed efforts bill a flat price per request. auto and ultra bill actual usage (Agent Compute Units at $0.10, search calls at $0.005, email enrichment at $0.02 and phone enrichment at $0.07 each) up to a cap that defaults to $5 for auto and $20 for ultra; the rows hold those default caps. The budget and dataSources fields that would change them are not exposed here. The finished run reports its charge in costDollars.total.",
        "state": "paid",
        "label": "$0.012–$20 / request",
        "amount": "$0.012–$20",
        "unit": "request",
        "usdPerUnit": {
          "floor": 0.012,
          "ceiling": 20
        },
        "native": {
          "text": "$0.012 to $20 per request",
          "figure": "$0.012 to $20",
          "per": "request",
          "currency": "USDs"
        },
        "detail": "Exa docs · 2026-10-05"
      },
      "providers": 1,
      "retention": "standard",
      "runsOn": "byoc",
      "live": true,
      "summary": "Create an asynchronous Agent run. By default, the API returns the run object immediately. Set `Accept: text/event-stream` to stream run lifecycle events until the run reaches a terminal status.",
      "method": "POST",
      "path": "/agent/runs",
      "host": "https://api.exa.ai",
      "docsUrl": "https://exa.ai/docs/reference/agent-api/create-a-run",
      "auth": {
        "scheme": "api_key",
        "label": "api_key · in header as x-api-key",
        "short": "api_key · x-api-key"
      },
      "scope": "any_account",
      "principal": "organization",
      "requiredScopes": [],
      "verification": {
        "state": "verified",
        "label": "Verified on 2026-10-05",
        "detail": "We ran a real request and checked the answer. This is a spot check, not a success rate."
      },
      "input": [
        {
          "name": "query",
          "location": "body",
          "type": "string",
          "required": true,
          "constraints": [
            "at least 1"
          ],
          "note": "Natural-language question or instructions for the run."
        },
        {
          "name": "effort",
          "location": "body",
          "type": "string",
          "required": false,
          "constraints": [
            "one of \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\", \"auto\", \"ultra\"",
            "default \"auto\""
          ],
          "note": "Cost and reasoning effort preference. auto lets Exa choose and ultra is the highest-effort tier; both are metered by usage up to a cap. minimal, low, medium, high and xhigh bill a flat price per request, $0.012, $0.025, $0.10, $0.50 and $1.00."
        },
        {
          "name": "systemPrompt",
          "location": "body",
          "type": "string",
          "required": false,
          "constraints": [],
          "note": "Additional instructions that guide the run, such as source preferences, novelty constraints or duplication constraints."
        },
        {
          "name": "outputSchema",
          "location": "body",
          "type": "object",
          "required": false,
          "constraints": [],
          "note": "JSON Schema for validated structured output in output.structured. Fields unsupported by evidence may be returned as null. Supports draft-07, 2019-09 and 2020-12 via $schema."
        },
        {
          "name": "input",
          "location": "body",
          "type": "object",
          "required": false,
          "constraints": [],
          "note": "Records to process and records or entities to exclude from the answer, as { data: [records to process or enrich], exclusion: [records or entities to avoid returning] }."
        },
        {
          "name": "previousRunId",
          "location": "body",
          "type": "string",
          "required": false,
          "constraints": [
            "1 to 200"
          ],
          "note": "Id of an earlier run to continue from, such as for a follow-up request like find 10 more results. Ids carry the agent_run_ prefix and use only letters, digits and _ . - and a colon."
        }
      ],
      "sampleInput": {
        "query": "What is the capital of France?",
        "effort": "minimal"
      },
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Natural-language question or instructions for the run.",
            "examples": [
              "Find five recently launched developer tools for evaluating AI agents."
            ],
            "minLength": 1
          },
          "effort": {
            "type": "string",
            "description": "Cost and reasoning effort preference. auto lets Exa choose and ultra is the highest-effort tier; both are metered by usage up to a cap. minimal, low, medium, high and xhigh bill a flat price per request, $0.012, $0.025, $0.10, $0.50 and $1.00.",
            "enum": [
              "minimal",
              "low",
              "medium",
              "high",
              "xhigh",
              "auto",
              "ultra"
            ],
            "default": "auto"
          },
          "systemPrompt": {
            "type": "string",
            "description": "Additional instructions that guide the run, such as source preferences, novelty constraints or duplication constraints."
          },
          "outputSchema": {
            "type": "object",
            "description": "JSON Schema for validated structured output in output.structured. Fields unsupported by evidence may be returned as null. Supports draft-07, 2019-09 and 2020-12 via $schema."
          },
          "input": {
            "type": "object",
            "description": "Records to process and records or entities to exclude from the answer, as { data: [records to process or enrich], exclusion: [records or entities to avoid returning] }."
          },
          "previousRunId": {
            "type": "string",
            "description": "Id of an earlier run to continue from, such as for a follow-up request like find 10 more results. Ids carry the agent_run_ prefix and use only letters, digits and _ . - and a colon.",
            "minLength": 1,
            "maxLength": 200
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      },
      "output": [
        {
          "name": "id",
          "type": "string",
          "description": "Run id with the agent_run_ prefix"
        },
        {
          "name": "object",
          "type": "string"
        },
        {
          "name": "status",
          "type": "string"
        },
        {
          "name": "stopReason",
          "type": "string | null",
          "description": "Why the run stopped; null while it is queued or running"
        },
        {
          "name": "createdAt",
          "type": "string"
        },
        {
          "name": "completedAt",
          "type": "string | null"
        },
        {
          "name": "request",
          "type": "object | null",
          "description": "The request fields stored with the run"
        },
        {
          "name": "output",
          "type": "object"
        },
        {
          "name": "usage",
          "type": "object"
        },
        {
          "name": "costDollars",
          "type": "object"
        }
      ],
      "outputSchema": {
        "type": "object",
        "required": [
          "id",
          "object",
          "status",
          "stopReason",
          "createdAt",
          "completedAt",
          "request",
          "output",
          "usage",
          "costDollars"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Run id with the agent_run_ prefix"
          },
          "object": {
            "type": "string",
            "const": "agent_run"
          },
          "status": {
            "type": "string",
            "enum": [
              "queued",
              "running",
              "completed",
              "failed",
              "cancelled"
            ]
          },
          "stopReason": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "schema_satisfied",
                  "budget_reached",
                  "time_limit_reached",
                  "stopped",
                  "error",
                  "cancelled"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Why the run stopped; null while it is queued or running"
          },
          "createdAt": {
            "type": "string"
          },
          "completedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "request": {
            "type": [
              "object",
              "null"
            ],
            "description": "The request fields stored with the run"
          },
          "output": {
            "type": "object",
            "required": [
              "text",
              "structured",
              "grounding"
            ],
            "properties": {
              "text": {
                "type": "string",
                "description": "Natural-language answer or summary"
              },
              "structured": {
                "description": "JSON shaped by outputSchema; null when no schema was given"
              },
              "grounding": {
                "type": "array",
                "description": "Field-level citations",
                "items": {
                  "type": "object",
                  "required": [
                    "field",
                    "citations"
                  ],
                  "properties": {
                    "field": {
                      "type": "string"
                    },
                    "citations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "url": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "confidence": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "low",
                            "medium",
                            "high"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "usage": {
            "type": "object",
            "required": [
              "agentComputeUnits",
              "searches",
              "emails",
              "phoneNumbers"
            ],
            "properties": {
              "agentComputeUnits": {
                "type": "number"
              },
              "searches": {
                "type": "integer"
              },
              "emails": {
                "type": "integer"
              },
              "phoneNumbers": {
                "type": "integer"
              },
              "dataSources": {
                "type": "object"
              }
            }
          },
          "costDollars": {
            "type": "object",
            "required": [
              "total",
              "agentCompute",
              "search",
              "emails",
              "phoneNumbers"
            ],
            "properties": {
              "total": {
                "type": "number"
              },
              "agentCompute": {
                "type": "number"
              },
              "search": {
                "type": "number"
              },
              "emails": {
                "type": "number"
              },
              "phoneNumbers": {
                "type": "number"
              },
              "dataSources": {
                "type": "object"
              }
            }
          }
        }
      },
      "example": {
        "file": "examples/exa.web.research.start.json",
        "json": {
          "id": "agent_run_2064f73e278349d6a73f56733b4665ec",
          "object": "agent_run",
          "status": "running",
          "stopReason": null,
          "createdAt": "2026-10-05T17:44:44.142Z",
          "completedAt": null,
          "request": {},
          "output": {
            "text": "",
            "structured": null,
            "grounding": []
          },
          "usage": {
            "agentComputeUnits": 0,
            "searches": 3,
            "emails": 0,
            "phoneNumbers": 0
          },
          "costDollars": {
            "total": 0.012,
            "agentCompute": 0,
            "search": 0.012,
            "emails": 0,
            "phoneNumbers": 0
          }
        }
      },
      "commands": {
        "mode": "run",
        "cli": "telipot run exa.web.research.start \\\n  --input-json '{\"query\":\"What is the capital of France?\",\"effort\":\"minimal\"}'",
        "http": "curl https://api.telipot.com/v1/tasks/exa.web.research.start/run \\\n  -H \"Authorization: Bearer $TELIPOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"query\":\"What is the capital of France?\",\"effort\":\"minimal\"}'",
        "quote": "telipot run exa.web.research.start \\\n  --input-json '{\"query\":\"What is the capital of France?\",\"effort\":\"minimal\"}' \\\n  --quote"
      },
      "siblings": []
    }
  ]
}
