{
  "url": "https://telipot.com/catalog/tasks/exa.web.research.start",
  "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": []
}
