Foresea · Schema
AgentAnalyzeRequest
Ask the analysis agent to work a live question end-to-end.
Prediction-MarketIntelligenceForecastingData AnalyticsBusiness
Properties
| Name | Type | Description |
|---|---|---|
| question | object | Market question. Optional if a market identifier is given. |
| platform | object | 'polymarket' or 'kalshi' to fetch a live price. |
| market_platform | object | Prediction-market venue supplied by the forecasting UI. |
| market_ident | object | Polymarket slug or Kalshi ticker supplied by the forecasting UI. |
| market_url | object | |
| slug | object | Polymarket market slug. |
| market_id | object | Polymarket numeric market id. |
| ticker | object | Kalshi market ticker. |
| description | string | |
| resolution_criteria | string | |
| categories | array | |
| news_articles | array | |
| market_probability | object | Override market price (0..1 or 0..100) when not fetching. |
| market_bid | object | |
| market_ask | object | |
| market_volume | object | |
| market_liquidity | object | |
| resolve_time | object | |
| variant | string | |
| evidence_top_k | integer | |
| skills | array | Up to 5 custom skills to run. |
| builtin_skills | boolean | Also run the built-in forecasting toolkit (base rate, scenario decomposition, red team, key drivers). |
| ground_in_record | boolean | Condition the forecast on the model's own live track-record calibration. |
| tool_loop | boolean | Use a ReAct tool-using loop (model plans + calls tools) instead of the fixed pipeline. |
| benchmark_tools | boolean | When tool_loop=true, expose Foresea's market-research toolkit. place_trade and manage_notes are reserved for Foresea's scheduled trading agents and are not available over the API. |
| benchmark_tool_names | object | When benchmark_tools=true, restrict the exposed tool set to named Foresea tools -- e.g. a research-only call passes ['web_search', 'orderbook'], a pure-reasoning call passes [] (no tools, so the model |
| max_tool_steps | integer | Max tool calls in the loop. |
| effort_tier | object | How much analysis effort this question gets (evidence fetch depth, which built-in skills run, tool-loop step budget). Set explicitly to override; left unset, the server estimates it from the question. |
| history | array | Prior conversation turns for follow-up context. |
| conversation_steer | string | Optional per-conversation steering instruction. |
| openrouter_api_key | object | |
| openrouter_model | object | |
| model | object | |
| provider_base_url | object | |
| ollama_base_url | object | |
| agent_profile_id | object | Private copied-agent recipe. Its research model and instructions are server-resolved. |
| client_run_key | object | Caller-supplied idempotency key, stored on the durable AgentRun this request creates. If your own request times out waiting for a response, the run may still be progressing server-side -- look it up w |
| max_tokens | object | Max output tokens for the agent tool loop and skills. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/foresea-ink/json-schema/foresea-ink-agent-analyze-request-schema.json",
"title": "AgentAnalyzeRequest",
"description": "Ask the analysis agent to work a live question end-to-end.",
"x-generated": "2026-11-08",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/foresea-ink-openapi.json#/components/schemas/AgentAnalyzeRequest",
"properties": {
"question": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Question",
"description": "Market question. Optional if a market identifier is given."
},
"platform": {
"anyOf": [
{
"type": "string",
"maxLength": 40
},
{
"type": "null"
}
],
"title": "Platform",
"description": "'polymarket' or 'kalshi' to fetch a live price."
},
"market_platform": {
"anyOf": [
{
"type": "string",
"maxLength": 40
},
{
"type": "null"
}
],
"title": "Market Platform",
"description": "Prediction-market venue supplied by the forecasting UI."
},
"market_ident": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
],
"title": "Market Ident",
"description": "Polymarket slug or Kalshi ticker supplied by the forecasting UI."
},
"market_url": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "null"
}
],
"title": "Market Url"
},
"slug": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
],
"title": "Slug",
"description": "Polymarket market slug."
},
"market_id": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
],
"title": "Market Id",
"description": "Polymarket numeric market id."
},
"ticker": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
],
"title": "Ticker",
"description": "Kalshi market ticker."
},
"description": {
"type": "string",
"maxLength": 4000,
"title": "Description",
"default": ""
},
"resolution_criteria": {
"type": "string",
"maxLength": 12000,
"title": "Resolution Criteria",
"default": ""
},
"categories": {
"items": {
"type": "string"
},
"type": "array",
"maxItems": 20,
"title": "Categories"
},
"news_articles": {
"items": {
"$ref": "#/$defs/NewsArticle"
},
"type": "array",
"maxItems": 20,
"title": "News Articles"
},
"market_probability": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Market Probability",
"description": "Override market price (0..1 or 0..100) when not fetching."
},
"market_bid": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Market Bid"
},
"market_ask": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Market Ask"
},
"market_volume": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Market Volume"
},
"market_liquidity": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Market Liquidity"
},
"resolve_time": {
"anyOf": [
{
"type": "string",
"maxLength": 50
},
{
"type": "null"
}
],
"title": "Resolve Time"
},
"variant": {
"type": "string",
"maxLength": 64,
"title": "Variant",
"default": "variant0_neutral_baseline"
},
"evidence_top_k": {
"type": "integer",
"maximum": 100.0,
"minimum": 1.0,
"title": "Evidence Top K",
"default": 20
},
"skills": {
"items": {
"$ref": "#/$defs/AgentSkill"
},
"type": "array",
"maxItems": 5,
"title": "Skills",
"description": "Up to 5 custom skills to run."
},
"builtin_skills": {
"type": "boolean",
"title": "Builtin Skills",
"description": "Also run the built-in forecasting toolkit (base rate, scenario decomposition, red team, key drivers).",
"default": false
},
"ground_in_record": {
"type": "boolean",
"title": "Ground In Record",
"description": "Condition the forecast on the model's own live track-record calibration.",
"default": false
},
"tool_loop": {
"type": "boolean",
"title": "Tool Loop",
"description": "Use a ReAct tool-using loop (model plans + calls tools) instead of the fixed pipeline.",
"default": false
},
"benchmark_tools": {
"type": "boolean",
"title": "Benchmark Tools",
"description": "When tool_loop=true, expose Foresea's market-research toolkit. place_trade and manage_notes are reserved for Foresea's scheduled trading agents and are not available over the API.",
"default": false
},
"benchmark_tool_names": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array",
"maxItems": 3
},
{
"type": "null"
}
],
"title": "Benchmark Tool Names",
"description": "When benchmark_tools=true, restrict the exposed tool set to named Foresea tools -- e.g. a research-only call passes ['web_search', 'orderbook'], a pure-reasoning call passes [] (no tools, so the model must answer on its first turn). Unset exposes every tool available to the caller. Naming place_trade or manage_notes over the API is refused with 403."
},
"max_tool_steps": {
"type": "integer",
"minimum": 1.0,
"title": "Max Tool Steps",
"description": "Max tool calls in the loop.",
"default": 8
},
"effort_tier": {
"anyOf": [
{
"type": "string",
"enum": [
"simple",
"standard",
"deep"
]
},
{
"type": "null"
}
],
"title": "Effort Tier",
"description": "How much analysis effort this question gets (evidence fetch depth, which built-in skills run, tool-loop step budget). Set explicitly to override; left unset, the server estimates it from the question."
},
"history": {
"items": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"type": "array",
"maxItems": 24,
"title": "History",
"description": "Prior conversation turns for follow-up context."
},
"conversation_steer": {
"type": "string",
"maxLength": 1000,
"title": "Conversation Steer",
"description": "Optional per-conversation steering instruction.",
"default": ""
},
"openrouter_api_key": {
"anyOf": [
{
"type": "string",
"maxLength": 256
},
{
"type": "null"
}
],
"title": "Openrouter Api Key"
},
"openrouter_model": {
"anyOf": [
{
"type": "string",
"maxLength": 128
},
{
"type": "null"
}
],
"title": "Openrouter Model"
},
"model": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
],
"title": "Model"
},
"provider_base_url": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "null"
}
],
"title": "Provider Base Url"
},
"ollama_base_url": {
"anyOf": [
{
"type": "string",
"maxLength": 500
},
{
"type": "null"
}
],
"title": "Ollama Base Url"
},
"agent_profile_id": {
"anyOf": [
{
"type": "string",
"maxLength": 160,
"pattern": "^agent_[a-zA-Z0-9_-]{12,150}$"
},
{
"type": "null"
}
],
"title": "Agent Profile Id",
"description": "Private copied-agent recipe. Its research model and instructions are server-resolved."
},
"client_run_key": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
],
"title": "Client Run Key",
"description": "Caller-supplied idempotency key, stored on the durable AgentRun this request creates. If your own request times out waiting for a response, the run may still be progressing server-side -- look it up with GET /agent/runs?client_run_key=... instead of restarting."
},
"max_tokens": {
"anyOf": [
{
"type": "integer",
"maximum": 16384.0,
"minimum": 1.0
},
{
"type": "null"
}
],
"title": "Max Tokens",
"description": "Max output tokens for the agent tool loop and skills."
}
},
"type": "object",
"$defs": {
"AgentSkill": {
"properties": {
"name": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"title": "Name",
"description": "Short skill name, e.g. 'Base rate check'."
},
"instruction": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"title": "Instruction",
"description": "What this skill should analyse."
}
},
"type": "object",
"required": [
"name",
"instruction"
],
"title": "AgentSkill",
"description": "A user-defined analysis step the agent runs over the question + evidence."
},
"NewsArticle": {
"properties": {
"title": {
"anyOf": [
{
"type": "string",
"maxLength": 500
},
{
"type": "null"
}
],
"title": "Title",
"description": "Article headline."
},
"summary": {
"anyOf": [
{
"type": "string",
"maxLength": 4000
},
{
"type": "null"
}
],
"title": "Summary",
"description": "Short human-written summary."
},
"summary_llm": {
"anyOf": [
{
"type": "string",
"maxLength": 4000
},
{
"type": "null"
}
],
"title": "Summary Llm",
"description": "LLM-generated summary."
},
"text": {
"anyOf": [
{
"type": "string",
"maxLength": 20000
},
{
"type": "null"
}
],
"title": "Text",
"description": "Full article body text."
},
"source": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
],
"title": "Source",
"description": "Publisher name (e.g. Reuters)."
},
"credibility": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Credibility",
"description": "Credibility score breakdown."
},
"frs": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Frs",
"description": "Future-Resolution Statement metadata."
},
"url": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "null"
}
],
"title": "Url",
"description": "Canonical article URL."
},
"authors": {
"anyOf": [
{},
{
"type": "null"
}
],
"title": "Authors",
"description": "Author name(s)."
},
"publish_date": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
],
"title": "Publish Date",
"description": "ISO 8601 publish timestamp."
},
"keywords": {
"anyOf": [
{},
{
"type": "null"
}
],
"title": "Keywords",
"description": "Extracted keywords."
},
"relevance_score": {
"anyOf": [
{
"type": "number",
"maximum": 1.0,
"minimum": 0.0
},
{
"type": "null"
}
],
"title": "Relevance Score",
"description": "Cosine similarity to the question (0–1)."
},
"search_query": {
"anyOf": [
{
"type": "string",
"maxLength": 500
},
{
"type": "null"
}
],
"title": "Search Query",
"description": "Query used to retrieve this article."
}
},
"type": "object",
"title": "NewsArticle",
"description": "A news article passed as evidence context for the prediction."
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/foresea-ink-agent-analyze-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.