{"openapi":"3.1.0","info":{"title":"Orchly API","version":"1.0.0","description":"Pull your AI visibility, organic search, rankings, shopping, AI traffic, and content data out of Orchly programmatically, and manage what you track. Endpoints are organized by intent: Discover, Analyze, Configure, and Act.\n\n## Authentication\n\nAuthenticate with an API key as a Bearer token (`Authorization: Bearer obk_live_xxx`) or the `X-API-Key` header. Most endpoints are scoped to a workspace via the `X-Workspace-Id` header (or a `workspace_id` query parameter).\n\n## Responses\n\nSuccess responses return JSON. Errors return `{ \"error\": { \"code\", \"message\", \"details\" } }`.\n\n## Rate limits\n\nLimited per organization, per hour. Every response includes `RateLimit-*` headers; over the limit returns `429` with `Retry-After`."},"servers":[{"url":"https://app.orchly.ai/api/v1","description":"Production"}],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"tags":[{"name":"Discover","description":"Get the IDs and metadata you need to make every other call."},{"name":"AI Visibility","description":"How visible your brand is across AI engines."},{"name":"Responses","description":"The individual prompt runs and brand mentions behind the numbers."},{"name":"Citations","description":"Which pages AI engines cite in your space."},{"name":"Sentiment","description":"How AI engines describe your brand."},{"name":"Query Fanouts","description":"The sub-queries AI engines expand prompts into."},{"name":"Shopping","description":"Product visibility in AI shopping answers."},{"name":"AI Traffic","description":"AI crawler and referral traffic to your site."},{"name":"Organic · Search Console","description":"Google Search Console clicks, impressions, and position."},{"name":"Organic · GA4","description":"Google Analytics 4 traffic and conversions."},{"name":"Rank Tracking","description":"Google keyword positions over time."},{"name":"Site Health","description":"Page audit scores and issues."},{"name":"Prompts","description":"Manage the prompts Orchly runs against AI engines."},{"name":"Topics","description":"Manage the topics that group your prompts."},{"name":"Keywords","description":"Manage the keywords you track in the rank tracker."},{"name":"Brands","description":"Manage your brand and tracked competitors."},{"name":"Tasks","description":"Queue work for agents in Mission Control."},{"name":"Runs","description":"Trigger and track agent runs."},{"name":"Recommendations","description":"Planner opportunities, including content gaps."},{"name":"Documents","description":"Read and write agent-authored documents."}],"paths":{"/validate":{"get":{"tags":["Discover"],"summary":"Validate API key","description":"Validate a key and return the organization, plan, scopes, and workspaces it can access. No workspace required.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"valid":{"type":"boolean"},"principal":{"type":"string","enum":["api_key","user"]},"organization":{"type":"object"},"plan":{"type":"string","nullable":true},"scopes":{"type":"array","items":{"type":"string"}},"workspaces":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceRef"}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/workspaces":{"get":{"tags":["Discover"],"summary":"List workspaces","description":"Workspaces this credential can target. No workspace required.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspaces":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceRef"}}}}}}}}}},"/models":{"get":{"tags":["Discover"],"summary":"List models","description":"The AI engines Orchly tracks (ChatGPT, Perplexity, Gemini, and more). Use the IDs as `platform` filters.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"models":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}}}}}}}}}}},"/platforms":{"get":{"tags":["Discover"],"summary":"List platforms","description":"Platform IDs usable as filters. No workspace required.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"platforms":{"type":"array","items":{"type":"object"}}}}}}}}}},"/usage":{"get":{"tags":["Discover"],"summary":"Get usage","description":"Your organization's API consumption versus its plan ceiling. No workspace required.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"organization_id":{"type":"string"},"plan":{"type":"string","nullable":true},"hourly_limit":{"type":"integer"},"period":{"type":"object"},"daily":{"type":"array","items":{"type":"object"}}}}}}}}}},"/topics":{"get":{"tags":["Discover"],"summary":"List topics","description":"The topics that group your prompts. Use the IDs as `topic_id` filters.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"topics":{"type":"array","items":{"$ref":"#/components/schemas/Topic"}}}}}}}}},"post":{"tags":["Topics"],"summary":"Create topic","description":"Create a topic to group prompts. Requires `content:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"enabled":{"type":"boolean"}}}}}},"responses":{"200":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"topic":{"$ref":"#/components/schemas/Topic"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"}}}},"/topics/{id}":{"patch":{"tags":["Topics"],"summary":"Rename topic","description":"Update a topic's name, description, or enabled state. Requires `content:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/IdPath"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"enabled":{"type":"boolean"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"topic":{"$ref":"#/components/schemas/Topic"}}}}}}}},"delete":{"tags":["Topics"],"summary":"Delete topic","description":"Delete a topic. Requires `content:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/IdPath"}],"responses":{"200":{"description":"Deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deleted"}}}}}}},"/visibility/kpis":{"get":{"tags":["AI Visibility"],"summary":"Visibility KPIs","description":"Visibility score, share of voice, average position, and sentiment, with period-over-period change.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/BrandId"},{"$ref":"#/components/parameters/Platform"},{"$ref":"#/components/parameters/TopicId"},{"$ref":"#/components/parameters/Country"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"brand_id":{"type":"string","nullable":true},"range":{"$ref":"#/components/schemas/Range"},"kpis":{"type":"object"},"visibility":{"type":"object"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/visibility/timeseries":{"get":{"tags":["AI Visibility"],"summary":"Visibility time series","description":"Daily visibility and execution counts over the range.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/BrandId"},{"$ref":"#/components/parameters/Platform"},{"$ref":"#/components/parameters/TopicId"},{"$ref":"#/components/parameters/Country"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"brand_id":{"type":"string","nullable":true},"range":{"$ref":"#/components/schemas/Range"},"visibility":{"type":"array","items":{"type":"object"}},"executions":{"type":"array","items":{"type":"object"}}}}}}}}}},"/visibility/leaderboard":{"get":{"tags":["AI Visibility"],"summary":"Brand leaderboard","description":"Your brand ranked against competitors by visibility.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/Platform"},{"$ref":"#/components/parameters/TopicId"},{"$ref":"#/components/parameters/Country"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"brands":{"type":"array","items":{"type":"object"}}}}}}}}}},"/visibility/comparison":{"get":{"tags":["AI Visibility"],"summary":"Comparison matrix","description":"Multi-brand comparison across prompts or topics.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"name":"brand_ids","in":"query","schema":{"type":"string"},"description":"Comma-separated brand IDs. Defaults to all active brands."},{"$ref":"#/components/parameters/Platform"},{"$ref":"#/components/parameters/TopicId"},{"$ref":"#/components/parameters/Country"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"comparison":{"type":"array","items":{"type":"object"}}}}}}}}}},"/visibility/breakdowns":{"get":{"tags":["AI Visibility"],"summary":"Visibility breakdowns","description":"Visibility broken down by platform or topic.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"name":"by","in":"query","required":true,"schema":{"type":"string","enum":["platform","topic"]}},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/BrandId"},{"$ref":"#/components/parameters/Platform"},{"$ref":"#/components/parameters/TopicId"},{"$ref":"#/components/parameters/Country"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"by":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"breakdown":{"type":"array","items":{"type":"object"}}}}}}}}}},"/mentions":{"get":{"tags":["Responses"],"summary":"List mentions","description":"Recent brand mentions across AI answers.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/BrandId"},{"$ref":"#/components/parameters/Platform"},{"$ref":"#/components/parameters/TopicId"},{"$ref":"#/components/parameters/Country"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"brand_id":{"type":"string","nullable":true},"range":{"$ref":"#/components/schemas/Range"},"mentions":{"type":"array","items":{"type":"object"}}}}}}}}}},"/executions":{"get":{"tags":["Responses"],"summary":"List executions","description":"Individual prompt runs, with status and the answer.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"name":"prompt_id","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string"}},{"$ref":"#/components/parameters/Platform"},{"$ref":"#/components/parameters/TopicId"},{"$ref":"#/components/parameters/Country"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"executions":{"type":"array","items":{"type":"object"}}}}}}}}}},"/executions/{id}":{"get":{"tags":["Responses"],"summary":"Get execution","description":"A single prompt run, including the full answer text.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/IdPath"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"execution":{"type":"object"}}}}}},"404":{"$ref":"#/components/responses/NotFound"}}}},"/citations":{"get":{"tags":["Citations"],"summary":"Citation analytics","description":"Which sources AI engines cite. Use `view` to switch between sources, domains, and a timeseries.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"name":"view","in":"query","schema":{"type":"string","enum":["sources","domains","timeseries"],"default":"sources"}},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/BrandId"},{"$ref":"#/components/parameters/Platform"},{"$ref":"#/components/parameters/TopicId"},{"$ref":"#/components/parameters/Country"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"view":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"citations":{"type":"array","items":{"type":"object"}}}}}}}}}},"/sentiment":{"get":{"tags":["Sentiment"],"summary":"Sentiment","description":"How AI engines describe your brand. Use `view` for a summary, themes, or a timeseries.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"name":"view","in":"query","schema":{"type":"string","enum":["summary","themes","timeseries"],"default":"summary"}},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/BrandId"},{"$ref":"#/components/parameters/Platform"},{"$ref":"#/components/parameters/TopicId"},{"$ref":"#/components/parameters/Country"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"view":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"sentiment":{"type":"array","items":{"type":"object"}}}}}}}}}},"/fanouts":{"get":{"tags":["Query Fanouts"],"summary":"List query fanouts","description":"The sub-queries AI engines expand your prompts into.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/BrandId"},{"$ref":"#/components/parameters/Platform"},{"$ref":"#/components/parameters/TopicId"},{"$ref":"#/components/parameters/Country"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"fanouts":{"type":"array","items":{"type":"object"}}}}}}}}}},"/shopping/visibility":{"get":{"tags":["Shopping"],"summary":"Shopping visibility","description":"Your product visibility in AI shopping answers.","x-plan":"shopping","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/BrandId"},{"$ref":"#/components/parameters/Platform"},{"$ref":"#/components/parameters/TopicId"},{"$ref":"#/components/parameters/Country"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"visibility":{"type":"array","items":{"type":"object"}}}}}}},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/shopping/products":{"get":{"tags":["Shopping"],"summary":"Shopping products","description":"Products appearing in shopping answers, with visibility, position, and price.","x-plan":"shopping","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/BrandId"},{"$ref":"#/components/parameters/Platform"},{"$ref":"#/components/parameters/TopicId"},{"$ref":"#/components/parameters/Country"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"products":{"type":"array","items":{"type":"object"}}}}}}}}}},"/shopping/merchants":{"get":{"tags":["Shopping"],"summary":"Shopping merchants","description":"Which retailers AI engines name when recommending products.","x-plan":"shopping","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/Platform"},{"$ref":"#/components/parameters/TopicId"},{"$ref":"#/components/parameters/Country"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"merchants":{"type":"array","items":{"type":"object"}}}}}}}}}},"/ai-traffic/kpis":{"get":{"tags":["AI Traffic"],"summary":"AI traffic KPIs","description":"Bot and human visit totals from AI platforms.","x-plan":"ai_traffic","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/Platform"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"kpis":{"type":"object"}}}}}},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/ai-traffic/timeseries":{"get":{"tags":["AI Traffic"],"summary":"AI traffic over time","description":"Bot and human visits over the range.","x-plan":"ai_traffic","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/Platform"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"series":{"type":"array","items":{"type":"object"}}}}}}}}}},"/ai-traffic/breakdowns":{"get":{"tags":["AI Traffic"],"summary":"AI traffic breakdowns","description":"AI traffic by page, platform, country, or bot type.","x-plan":"ai_traffic","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"name":"dimension","in":"query","required":true,"schema":{"type":"string","enum":["page","platform","country","bot_type"]}},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/Platform"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"dimension":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"breakdown":{"type":"array","items":{"type":"object"}}}}}}}}}},"/organic/gsc/kpis":{"get":{"tags":["Organic · Search Console"],"summary":"GSC KPIs","description":"Clicks, impressions, CTR, and average position from Search Console.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/SiteUrl"},{"$ref":"#/components/parameters/Country"},{"$ref":"#/components/parameters/Device"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"site_url":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"kpis":{"type":"object"}}}}}}}}},"/organic/gsc/timeseries":{"get":{"tags":["Organic · Search Console"],"summary":"GSC over time","description":"Search Console metrics over the range.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/SiteUrl"},{"$ref":"#/components/parameters/Country"},{"$ref":"#/components/parameters/Device"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"site_url":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"series":{"type":"array","items":{"type":"object"}}}}}}}}}},"/organic/gsc/dimension":{"get":{"tags":["Organic · Search Console"],"summary":"GSC by dimension","description":"Search Console rows grouped by query, page, country, or device.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"name":"dimension","in":"query","schema":{"type":"string","enum":["query","page","country","device"],"default":"query"}},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/SiteUrl"},{"$ref":"#/components/parameters/Country"},{"$ref":"#/components/parameters/Device"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"site_url":{"type":"string"},"dimension":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"rows":{"type":"array","items":{"type":"object"}}}}}}}}}},"/organic/ga4/kpis":{"get":{"tags":["Organic · GA4"],"summary":"GA4 KPIs","description":"Sessions, users, conversions, and revenue from Google Analytics 4.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/PropertyId"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"property_id":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"kpis":{"type":"object"}}}}}}}}},"/organic/ga4/timeseries":{"get":{"tags":["Organic · GA4"],"summary":"GA4 over time","description":"GA4 metrics over the range.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/PropertyId"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"property_id":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"series":{"type":"array","items":{"type":"object"}}}}}}}}}},"/organic/ga4/dimension":{"get":{"tags":["Organic · GA4"],"summary":"GA4 by dimension","description":"GA4 rows grouped by page, country, device, channel, source, or medium.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"name":"dimension","in":"query","schema":{"type":"string","enum":["page","country","device","channel","source","medium"],"default":"page"}},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/PropertyId"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"property_id":{"type":"string"},"dimension":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"rows":{"type":"array","items":{"type":"object"}}}}}}}}}},"/organic/ga4/events":{"get":{"tags":["Organic · GA4"],"summary":"GA4 events","description":"GA4 events over the range.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/PropertyId"},{"name":"channel","in":"query","schema":{"type":"string"}},{"$ref":"#/components/parameters/Country"},{"$ref":"#/components/parameters/Device"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"property_id":{"type":"string"},"range":{"$ref":"#/components/schemas/Range"},"events":{"type":"array","items":{"type":"object"}}}}}}}}}},"/ranks/keywords":{"get":{"tags":["Rank Tracking"],"summary":"List tracked keywords","description":"The keywords tracked in the rank tracker.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"keywords":{"type":"array","items":{"$ref":"#/components/schemas/Keyword"}}}}}}}}},"post":{"tags":["Keywords"],"summary":"Add keyword","description":"Track a new keyword. Requires `content:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["keyword"],"properties":{"keyword":{"type":"string"},"country":{"type":"string"},"device_type":{"type":"string","enum":["desktop","mobile"]},"language":{"type":"string"},"target_url":{"type":"string"}}}}}},"responses":{"200":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"keyword":{"$ref":"#/components/schemas/Keyword"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"}}}},"/ranks/keywords/bulk":{"post":{"tags":["Keywords"],"summary":"Bulk add keywords","description":"Add up to 1000 keywords at once. Requires `content:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["keywords"],"properties":{"keywords":{"type":"array","items":{"type":"object","properties":{"keyword":{"type":"string"},"country":{"type":"string"},"device_type":{"type":"string"},"language":{"type":"string"},"target_url":{"type":"string"}}}}}}}}},"responses":{"200":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCreated"}}}}}}},"/ranks/keywords/{id}":{"delete":{"tags":["Keywords"],"summary":"Delete keyword","description":"Stop tracking a keyword. Requires `content:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/IdPath"}],"responses":{"200":{"description":"Deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deleted"}}}}}}},"/ranks/keywords/{id}/history":{"get":{"tags":["Rank Tracking"],"summary":"Keyword rank history","description":"Daily position history for a tracked keyword.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/IdPath"},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"keyword":{"type":"object"},"range":{"$ref":"#/components/schemas/Range"},"history":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"position":{"type":"number"},"url":{"type":"string"},"title":{"type":"string"},"domain":{"type":"string"}}}}}}}}}}}},"/pages":{"get":{"tags":["Site Health"],"summary":"List pages","description":"Tracked pages with their SEO, AEO, and GEO scores and status.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"pages":{"type":"array","items":{"type":"object"}}}}}}}}}},"/pages/{id}/issues":{"get":{"tags":["Site Health"],"summary":"Page issues","description":"The latest audit and open issues for a page.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/IdPath"},{"name":"include_resolved","in":"query","schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"page":{"type":"object"},"latest_audit":{"type":"object","nullable":true},"issues":{"type":"array","items":{"type":"object"}}}}}}}}}},"/prompts":{"get":{"tags":["Prompts"],"summary":"List prompts","description":"The prompts tracked in the workspace.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"name":"topic_id","in":"query","schema":{"type":"string"}},{"name":"enabled","in":"query","schema":{"type":"boolean"}},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"prompts":{"type":"array","items":{"$ref":"#/components/schemas/Prompt"}}}}}}}}},"post":{"tags":["Prompts"],"summary":"Create prompt","description":"Add a prompt under a topic. Requires `content:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["topic_id","prompt_text"],"properties":{"topic_id":{"type":"string"},"prompt_text":{"type":"string"},"country":{"type":"string"},"priority":{"type":"integer"},"target_models":{"type":"array","items":{"type":"string"}},"enabled":{"type":"boolean"}}}}}},"responses":{"200":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"$ref":"#/components/schemas/Prompt"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"}}}},"/prompts/{id}":{"get":{"tags":["Prompts"],"summary":"Get prompt","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/IdPath"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"$ref":"#/components/schemas/Prompt"}}}}}},"404":{"$ref":"#/components/responses/NotFound"}}},"patch":{"tags":["Prompts"],"summary":"Update prompt","description":"Edit a prompt, including reassigning its `topic_id`. Requires `content:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/IdPath"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt_text":{"type":"string"},"topic_id":{"type":"string"},"country":{"type":"string"},"priority":{"type":"integer"},"enabled":{"type":"boolean"},"target_models":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"$ref":"#/components/schemas/Prompt"}}}}}}}},"delete":{"tags":["Prompts"],"summary":"Delete prompt","description":"Requires `content:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/IdPath"}],"responses":{"200":{"description":"Deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deleted"}}}}}}},"/prompts/bulk":{"post":{"tags":["Prompts"],"summary":"Bulk create prompts","description":"Add up to 500 prompts at once. Requires `content:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompts"],"properties":{"topic_id":{"type":"string"},"prompts":{"type":"array","items":{"type":"object","properties":{"prompt_text":{"type":"string"},"topic_id":{"type":"string"},"country":{"type":"string"},"target_models":{"type":"array","items":{"type":"string"}}}}}}}}}},"responses":{"200":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCreated"}}}}}}},"/prompts/activate":{"post":{"tags":["Prompts"],"summary":"Activate prompts","description":"Enable a set of prompts so they run. Requires `content:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt_ids"],"properties":{"prompt_ids":{"type":"array","items":{"type":"string","format":"uuid"}}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"updated":{"type":"integer"},"enabled":{"type":"boolean"}}}}}}}}},"/prompts/deactivate":{"post":{"tags":["Prompts"],"summary":"Deactivate prompts","description":"Disable a set of prompts. Requires `content:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prompt_ids"],"properties":{"prompt_ids":{"type":"array","items":{"type":"string","format":"uuid"}}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"updated":{"type":"integer"},"enabled":{"type":"boolean"}}}}}}}}},"/brands":{"get":{"tags":["Brands"],"summary":"List brands","description":"Your brand and tracked competitors.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"brands":{"type":"array","items":{"$ref":"#/components/schemas/Brand"}}}}}}}}},"post":{"tags":["Brands"],"summary":"Create brand","description":"Track a new brand or competitor. Requires `content:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["canonical_name"],"properties":{"canonical_name":{"type":"string"},"kind":{"type":"string"},"primary_domain":{"type":"string"}}}}}},"responses":{"200":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"brand":{"$ref":"#/components/schemas/Brand"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"}}}},"/brands/{id}":{"patch":{"tags":["Brands"],"summary":"Update brand","description":"Edit a tracked brand. Requires `content:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/IdPath"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"canonical_name":{"type":"string"},"primary_domain":{"type":"string"},"kind":{"type":"string"},"is_active":{"type":"boolean"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"brand":{"$ref":"#/components/schemas/Brand"}}}}}}}}},"/tasks":{"get":{"tags":["Tasks"],"summary":"List tasks","description":"Mission Control tasks. Requires `tasks:read`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"name":"status","in":"query","schema":{"type":"string"}},{"name":"type","in":"query","schema":{"type":"string"}},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/Task"}}}}}}}}},"post":{"tags":["Tasks"],"summary":"Create task","description":"Queue a task for an agent (origin=api). Requires `tasks:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["type","title"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"assigned_agent_id":{"type":"string"},"inputs":{"type":"object"},"priority_score":{"type":"integer"}}}}}},"responses":{"200":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"task":{"$ref":"#/components/schemas/Task"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"}}}},"/tasks/{id}":{"get":{"tags":["Tasks"],"summary":"Get task","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/IdPath"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"task":{"$ref":"#/components/schemas/Task"}}}}}},"404":{"$ref":"#/components/responses/NotFound"}}},"patch":{"tags":["Tasks"],"summary":"Update task","description":"Requires `tasks:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/IdPath"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"},"summary":{"type":"string"},"status":{"type":"string"},"priority_score":{"type":"integer"},"assigned_agent_id":{"type":"string"},"scheduled_for":{"type":"string"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"task":{"$ref":"#/components/schemas/Task"}}}}}}}}},"/tasks/{id}/run":{"post":{"tags":["Runs"],"summary":"Run task","description":"Trigger the task's agent. Returns immediately; poll the run for the result. Requires `tasks:write`.","x-async":true,"parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/IdPath"}],"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"run_id":{"type":"string"},"status":{"type":"string"},"task_id":{"type":"string"}}}}}}}}}}},"/runs/{id}":{"get":{"tags":["Runs"],"summary":"Get run","description":"The status and result of a run. Poll until status is done or failed. Requires `tasks:read`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/IdPath"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"run":{"type":"object","properties":{"id":{"type":"string"},"task_id":{"type":"string"},"agent_id":{"type":"string"},"status":{"type":"string","enum":["queued","running","review","done","failed","cancelled"]},"result":{"type":"object","nullable":true},"error":{"type":"string","nullable":true},"tokens_used":{"type":"integer"},"started_at":{"type":"string"},"completed_at":{"type":"string","nullable":true}}}}}}}}}}},"/runs/{id}/approve":{"post":{"tags":["Runs"],"summary":"Approve run step","description":"Approve or reject a gated step in a run. Requires `tasks:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/IdPath"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","enum":["approved","rejected"],"default":"approved"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"run_id":{"type":"string"},"action":{"type":"string"}}}}}}}}},"/recommendations":{"get":{"tags":["Recommendations"],"summary":"List recommendations","description":"Planner opportunities, including content gaps. Requires `tasks:read`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"name":"status","in":"query","schema":{"type":"string"}},{"name":"type","in":"query","schema":{"type":"string"}},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"recommendations":{"type":"array","items":{"type":"object"}}}}}}}}}},"/documents":{"get":{"tags":["Documents"],"summary":"List documents","description":"Agent-authored and manual documents. Requires `content:read`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"name":"status","in":"query","schema":{"type":"string"}},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"documents":{"type":"array","items":{"$ref":"#/components/schemas/Document"}}}}}}}}},"post":{"tags":["Documents"],"summary":"Create document","description":"Create a markdown document. Requires `content:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["title"],"properties":{"title":{"type":"string"},"content_markdown":{"type":"string"},"meta_title":{"type":"string"},"meta_description":{"type":"string"},"slug":{"type":"string"},"task_id":{"type":"string"}}}}}},"responses":{"200":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"document":{"$ref":"#/components/schemas/Document"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"}}}},"/documents/{id}":{"get":{"tags":["Documents"],"summary":"Get document","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/IdPath"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"document":{"$ref":"#/components/schemas/Document"}}}}}},"404":{"$ref":"#/components/responses/NotFound"}}},"patch":{"tags":["Documents"],"summary":"Update document","description":"Requires `content:write`.","parameters":[{"$ref":"#/components/parameters/WorkspaceId"},{"$ref":"#/components/parameters/IdPath"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"},"content_markdown":{"type":"string"},"meta_title":{"type":"string"},"meta_description":{"type":"string"},"slug":{"type":"string"},"status":{"type":"string"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"document":{"$ref":"#/components/schemas/Document"}}}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Send your API key as a Bearer token: `Authorization: Bearer obk_live_xxx`."},"apiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Send your API key in the `X-API-Key` header."}},"parameters":{"WorkspaceId":{"name":"X-Workspace-Id","in":"header","required":true,"schema":{"type":"string"},"description":"The workspace to scope the request to. Can also be passed as a `workspace_id` query parameter."},"IdPath":{"name":"id","in":"path","required":true,"schema":{"type":"string"}},"StartDate":{"name":"start_date","in":"query","schema":{"type":"string","format":"date"},"description":"Start of the range, YYYY-MM-DD. Defaults to 28 days ago."},"EndDate":{"name":"end_date","in":"query","schema":{"type":"string","format":"date"},"description":"End of the range, YYYY-MM-DD. Defaults to today."},"BrandId":{"name":"brand_id","in":"query","schema":{"type":"string"},"description":"Which brand to report on. You can also pass `brand_name` or `brand_domain`. Defaults to your own brand."},"Platform":{"name":"platform","in":"query","schema":{"type":"string"},"description":"Comma-separated AI platforms (e.g. `chatgpt,perplexity`). Defaults to all."},"TopicId":{"name":"topic_id","in":"query","schema":{"type":"string"},"description":"Comma-separated topic IDs. Defaults to all."},"Country":{"name":"country","in":"query","schema":{"type":"string"},"description":"Comma-separated countries. Defaults to all."},"Device":{"name":"device","in":"query","schema":{"type":"string"},"description":"Filter by device."},"SiteUrl":{"name":"site_url","in":"query","schema":{"type":"string"},"description":"Override the workspace's configured Search Console site."},"PropertyId":{"name":"property_id","in":"query","schema":{"type":"string"},"description":"Override the workspace's connected GA4 property."},"Limit":{"name":"limit","in":"query","schema":{"type":"integer"},"description":"Maximum number of items to return."}},"responses":{"Unauthorized":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Forbidden":{"description":"The key lacks the required scope, or the feature needs a higher plan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ValidationError":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"RateLimited":{"description":"Hourly rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait before retrying."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}}}}},"Range":{"type":"object","properties":{"start_date":{"type":"string","format":"date"},"end_date":{"type":"string","format":"date"}}},"Deleted":{"type":"object","properties":{"deleted":{"type":"boolean"},"id":{"type":"string"}}},"BulkCreated":{"type":"object","properties":{"created":{"type":"integer"},"ids":{"type":"array","items":{"type":"string"}}}},"WorkspaceRef":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}},"Topic":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"enabled":{"type":"boolean"}}},"Brand":{"type":"object","properties":{"id":{"type":"string"},"canonical_name":{"type":"string"},"primary_domain":{"type":"string","nullable":true},"kind":{"type":"string"},"is_active":{"type":"boolean"}}},"Prompt":{"type":"object","properties":{"id":{"type":"string"},"prompt_text":{"type":"string"},"topic_id":{"type":"string"},"enabled":{"type":"boolean"},"country":{"type":"string","nullable":true},"target_models":{"type":"array","items":{"type":"string"}},"priority":{"type":"integer"},"last_run_at":{"type":"string","nullable":true},"next_run_at":{"type":"string","nullable":true},"created_at":{"type":"string"}}},"Keyword":{"type":"object","properties":{"id":{"type":"string"},"keyword":{"type":"string"},"country":{"type":"string"},"device_type":{"type":"string"},"language":{"type":"string"},"target_url":{"type":"string","nullable":true},"is_active":{"type":"boolean"},"last_checked_at":{"type":"string","nullable":true}}},"Task":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string","nullable":true},"status":{"type":"string"},"priority_score":{"type":"integer"},"origin":{"type":"string"},"assigned_agent_id":{"type":"string","nullable":true},"current_thread_id":{"type":"string","nullable":true},"scheduled_for":{"type":"string","nullable":true},"created_at":{"type":"string"}}},"Document":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"status":{"type":"string"},"slug":{"type":"string","nullable":true},"meta_title":{"type":"string","nullable":true},"meta_description":{"type":"string","nullable":true},"word_count":{"type":"integer"},"task_id":{"type":"string","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}}