{"openapi":"3.0.0","paths":{"/webhooks/clerk":{"post":{"operationId":"ClerkWebhooksController_handle","parameters":[],"responses":{"200":{"description":""}},"tags":["ClerkWebhooks"]}},"/api/v1/email/unsubscribe":{"get":{"operationId":"UnsubscribeController_unsubscribe","parameters":[{"name":"token","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Unsubscribe"]}},"/api/v1/workspaces/{slug}/api-keys":{"post":{"operationId":"ApiKeyController_create","parameters":[],"responses":{"201":{"description":""}},"tags":["ApiKey"]},"get":{"operationId":"ApiKeyController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["ApiKey"]}},"/api/v1/workspaces/{slug}/api-keys/{id}":{"delete":{"operationId":"ApiKeyController_revoke","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["ApiKey"]}},"/api/v1/oauth/authorize":{"get":{"operationId":"OAuthController_authorizeRedirect[0]","parameters":[],"responses":{"200":{"description":""}},"tags":["OAuth"]},"post":{"operationId":"OAuthController_authorize[0]","parameters":[],"responses":{"201":{"description":""}},"tags":["OAuth"]}},"/api/v1/workspaces/{slug}/oauth/authorize":{"get":{"operationId":"OAuthController_authorizeRedirect[1]","parameters":[],"responses":{"200":{"description":""}},"tags":["OAuth"]},"post":{"operationId":"OAuthController_authorize[1]","parameters":[],"responses":{"201":{"description":""}},"tags":["OAuth"]}},"/api/v1/oauth/token":{"post":{"operationId":"OAuthController_token[0]","parameters":[],"responses":{"201":{"description":""}},"tags":["OAuth"]}},"/api/v1/workspaces/{slug}/oauth/token":{"post":{"operationId":"OAuthController_token[1]","parameters":[],"responses":{"201":{"description":""}},"tags":["OAuth"]}},"/api/v1/oauth/clients/{clientId}":{"get":{"operationId":"OAuthController_getPublicClient[0]","parameters":[{"name":"clientId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["OAuth"]}},"/api/v1/workspaces/{slug}/oauth/clients/{clientId}":{"get":{"operationId":"OAuthController_getPublicClient[1]","parameters":[{"name":"clientId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["OAuth"]}},"/api/v1/oauth/register":{"post":{"operationId":"OAuthController_register[0]","parameters":[],"responses":{"201":{"description":""}},"tags":["OAuth"]}},"/api/v1/workspaces/{slug}/oauth/register":{"post":{"operationId":"OAuthController_register[1]","parameters":[],"responses":{"201":{"description":""}},"tags":["OAuth"]}},"/api/v1/oauth/revoke":{"post":{"operationId":"OAuthController_revoke[0]","parameters":[],"responses":{"201":{"description":""}},"tags":["OAuth"]}},"/api/v1/workspaces/{slug}/oauth/revoke":{"post":{"operationId":"OAuthController_revoke[1]","parameters":[],"responses":{"201":{"description":""}},"tags":["OAuth"]}},"/api/v1/workspaces":{"post":{"operationId":"WorkspacesController_create","parameters":[],"responses":{"201":{"description":""}},"tags":["Workspaces"]}},"/api/v1/workspaces/{slug}":{"get":{"operationId":"WorkspacesController_getBySlug","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Workspaces"]},"patch":{"operationId":"WorkspacesController_update","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Workspaces"]},"delete":{"operationId":"WorkspacesController_remove","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Workspaces"]}},"/api/v1/workspaces/{slug}/plan":{"patch":{"operationId":"WorkspacesController_setPlan","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Workspaces"]}},"/api/v1/workspaces/{slug}/health":{"get":{"operationId":"StatsController_health","parameters":[],"responses":{"200":{"description":""}},"tags":["Stats"]}},"/api/v1/workspaces/{slug}/repos":{"post":{"operationId":"ReposController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRepoDto"}}}},"responses":{"201":{"description":""}},"tags":["Repos"]},"get":{"operationId":"ReposController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Repos"]}},"/api/v1/workspaces/{slug}/repos/{id}":{"get":{"operationId":"ReposController_detail","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Repos"]},"delete":{"operationId":"ReposController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Repos"]}},"/api/v1/workspaces/{slug}/topics":{"get":{"operationId":"TopicsController_list[0]","parameters":[{"name":"stale","required":true,"in":"query","schema":{"type":"string"}},{"name":"docs","required":true,"in":"query","schema":{"type":"string"}},{"name":"auto","required":true,"in":"query","schema":{"type":"string"}},{"name":"manual","required":true,"in":"query","schema":{"type":"string"}},{"name":"repo","required":true,"in":"query","schema":{"type":"string"}},{"name":"status","required":true,"in":"query","schema":{"type":"string"}},{"name":"tags","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"offset","required":true,"in":"query","schema":{"type":"string"}},{"name":"has_external","required":true,"in":"query","schema":{"type":"string"}},{"name":"view","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]},"post":{"operationId":"TopicsController_create[0]","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopicDto"}}}},"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers":{"get":{"operationId":"TopicsController_list[1]","parameters":[{"name":"stale","required":true,"in":"query","schema":{"type":"string"}},{"name":"docs","required":true,"in":"query","schema":{"type":"string"}},{"name":"auto","required":true,"in":"query","schema":{"type":"string"}},{"name":"manual","required":true,"in":"query","schema":{"type":"string"}},{"name":"repo","required":true,"in":"query","schema":{"type":"string"}},{"name":"status","required":true,"in":"query","schema":{"type":"string"}},{"name":"tags","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"offset","required":true,"in":"query","schema":{"type":"string"}},{"name":"has_external","required":true,"in":"query","schema":{"type":"string"}},{"name":"view","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]},"post":{"operationId":"TopicsController_create[1]","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopicDto"}}}},"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/match-files":{"post":{"operationId":"TopicsController_matchFiles[0]","parameters":[{"name":"x-driftless-session","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/match-files":{"post":{"operationId":"TopicsController_matchFiles[1]","parameters":[{"name":"x-driftless-session","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/retrieve":{"post":{"operationId":"TopicsController_retrieve[0]","parameters":[{"name":"x-driftless-session","required":true,"in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveDto"}}}},"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/retrieve":{"post":{"operationId":"TopicsController_retrieve[1]","parameters":[{"name":"x-driftless-session","required":true,"in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveDto"}}}},"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/mark-drift":{"post":{"operationId":"TopicsController_markDrift[0]","parameters":[],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/mark-drift":{"post":{"operationId":"TopicsController_markDrift[1]","parameters":[],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/search":{"get":{"operationId":"TopicsController_search[0]","parameters":[{"name":"q","required":true,"in":"query","schema":{"type":"string"}},{"name":"include_notes","required":true,"in":"query","schema":{"type":"string"}},{"name":"tags","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"stale","required":true,"in":"query","schema":{"type":"string"}},{"name":"view","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/search":{"get":{"operationId":"TopicsController_search[1]","parameters":[{"name":"q","required":true,"in":"query","schema":{"type":"string"}},{"name":"include_notes","required":true,"in":"query","schema":{"type":"string"}},{"name":"tags","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"stale","required":true,"in":"query","schema":{"type":"string"}},{"name":"view","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/audit":{"get":{"operationId":"TopicsController_audit[0]","parameters":[],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/audit":{"get":{"operationId":"TopicsController_audit[1]","parameters":[],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/events":{"get":{"operationId":"TopicsController_events[0]","parameters":[{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"offset","required":true,"in":"query","schema":{"type":"string"}},{"name":"type","required":true,"in":"query","schema":{"type":"string"}},{"name":"repo_id","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/events":{"get":{"operationId":"TopicsController_events[1]","parameters":[{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"offset","required":true,"in":"query","schema":{"type":"string"}},{"name":"type","required":true,"in":"query","schema":{"type":"string"}},{"name":"repo_id","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/proposals":{"get":{"operationId":"TopicsController_pendingProposals[0]","parameters":[],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/proposals":{"get":{"operationId":"TopicsController_pendingProposals[1]","parameters":[],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/graph":{"get":{"operationId":"TopicsController_getGraph[0]","parameters":[{"name":"center","required":true,"in":"query","schema":{"type":"string"}},{"name":"depth","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/graph":{"get":{"operationId":"TopicsController_getGraph[1]","parameters":[{"name":"center","required":true,"in":"query","schema":{"type":"string"}},{"name":"depth","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/graph-full":{"get":{"operationId":"TopicsController_getGraphFull[0]","parameters":[{"name":"if-none-match","required":true,"in":"header","schema":{"type":"string"}},{"name":"shape","required":true,"in":"query","schema":{"type":"string"}},{"name":"include_archived","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/graph-full":{"get":{"operationId":"TopicsController_getGraphFull[1]","parameters":[{"name":"if-none-match","required":true,"in":"header","schema":{"type":"string"}},{"name":"shape","required":true,"in":"query","schema":{"type":"string"}},{"name":"include_archived","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/{topicSlug}/relations":{"post":{"operationId":"TopicsController_createRelation[0]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]},"get":{"operationId":"TopicsController_getRelations[0]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/{topicSlug}/relations":{"post":{"operationId":"TopicsController_createRelation[1]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]},"get":{"operationId":"TopicsController_getRelations[1]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/{topicSlug}/relations/{relationId}":{"delete":{"operationId":"TopicsController_deleteRelation[0]","parameters":[{"name":"relationId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/{topicSlug}/relations/{relationId}":{"delete":{"operationId":"TopicsController_deleteRelation[1]","parameters":[{"name":"relationId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/{topicSlug}":{"get":{"operationId":"TopicsController_get[0]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}},{"name":"include_orphaned","required":true,"in":"query","schema":{"type":"string"}},{"name":"history","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]},"patch":{"operationId":"TopicsController_update[0]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]},"delete":{"operationId":"TopicsController_remove[0]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/{topicSlug}":{"get":{"operationId":"TopicsController_get[1]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}},{"name":"include_orphaned","required":true,"in":"query","schema":{"type":"string"}},{"name":"history","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]},"patch":{"operationId":"TopicsController_update[1]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]},"delete":{"operationId":"TopicsController_remove[1]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/{topicSlug}/propose":{"post":{"operationId":"TopicsController_propose[0]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/{topicSlug}/propose":{"post":{"operationId":"TopicsController_propose[1]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/{topicSlug}/approve":{"post":{"operationId":"TopicsController_approve[0]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/{topicSlug}/approve":{"post":{"operationId":"TopicsController_approve[1]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/{topicSlug}/reject":{"post":{"operationId":"TopicsController_reject[0]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/{topicSlug}/reject":{"post":{"operationId":"TopicsController_reject[1]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/{topicSlug}/unvouch":{"post":{"operationId":"TopicsController_unvouch[0]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/{topicSlug}/unvouch":{"post":{"operationId":"TopicsController_unvouch[1]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/{topicSlug}/vouch-ack":{"post":{"operationId":"TopicsController_vouchAck[0]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/{topicSlug}/vouch-ack":{"post":{"operationId":"TopicsController_vouchAck[1]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/{topicSlug}/merge":{"post":{"operationId":"TopicsController_merge[0]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/{topicSlug}/merge":{"post":{"operationId":"TopicsController_merge[1]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/{topicSlug}/archive":{"post":{"operationId":"TopicsController_archive[0]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/{topicSlug}/archive":{"post":{"operationId":"TopicsController_archive[1]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/{topicSlug}/proposals":{"post":{"operationId":"TopicsController_createProposal[0]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]},"get":{"operationId":"TopicsController_listProposals[0]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}},{"name":"status","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/{topicSlug}/proposals":{"post":{"operationId":"TopicsController_createProposal[1]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]},"get":{"operationId":"TopicsController_listProposals[1]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}},{"name":"status","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/{topicSlug}/proposals/{proposalId}/merge":{"post":{"operationId":"TopicsController_mergeProposal[0]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}},{"name":"proposalId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/{topicSlug}/proposals/{proposalId}/merge":{"post":{"operationId":"TopicsController_mergeProposal[1]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}},{"name":"proposalId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/{topicSlug}/proposals/{proposalId}/reject":{"post":{"operationId":"TopicsController_rejectProposal[0]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}},{"name":"proposalId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/{topicSlug}/proposals/{proposalId}/reject":{"post":{"operationId":"TopicsController_rejectProposal[1]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}},{"name":"proposalId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/{topicSlug}/move":{"post":{"operationId":"TopicsController_move[0]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/watchers/{topicSlug}/move":{"post":{"operationId":"TopicsController_move[1]","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Topics"]}},"/api/v1/workspaces/{slug}/topics/{topicSlug}/share-with":{"post":{"operationId":"NoteSharesController_share","parameters":[{"name":"topicSlug","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareNoteDto"}}}},"responses":{"201":{"description":""}},"tags":["NoteShares"]}},"/api/v1/workspaces/{slug}/shared":{"get":{"operationId":"NoteSharesController_list","parameters":[{"name":"unread","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["NoteShares"]}},"/api/v1/workspaces/{slug}/shared/read-all":{"post":{"operationId":"NoteSharesController_readAll","parameters":[],"responses":{"201":{"description":""}},"tags":["NoteShares"]}},"/api/v1/workspaces/{slug}/shared/{id}/read":{"post":{"operationId":"NoteSharesController_read","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["NoteShares"]}},"/api/v1/workspaces/{slug}/radar/searches":{"post":{"operationId":"RadarController_openSearch","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenSearchDto"}}}},"responses":{"201":{"description":""}},"tags":["Radar"]}},"/api/v1/workspaces/{slug}/radar/criteria/{criterionSlug}":{"get":{"operationId":"RadarController_getCriterion","parameters":[{"name":"criterionSlug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Radar"]},"patch":{"operationId":"RadarController_reviseCriterion","parameters":[{"name":"criterionSlug","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviseCriterionDto"}}}},"responses":{"200":{"description":""}},"tags":["Radar"]}},"/api/v1/workspaces/{slug}/radar/runs/{runId}":{"get":{"operationId":"RadarController_getRun","parameters":[{"name":"runId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Radar"]}},"/api/v1/workspaces/{slug}/radar/runs/{runId}/price":{"post":{"operationId":"RadarController_price","parameters":[{"name":"runId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceRunDto"}}}},"responses":{"201":{"description":""}},"tags":["Radar"]}},"/api/v1/workspaces/{slug}/radar/credits":{"get":{"operationId":"RadarController_credits_","parameters":[],"responses":{"200":{"description":""}},"tags":["Radar"]}},"/api/v1/workspaces/{slug}/radar/credits/history":{"get":{"operationId":"RadarController_creditHistory","parameters":[],"responses":{"200":{"description":""}},"tags":["Radar"]}},"/api/v1/workspaces/{slug}/radar/credits/grant":{"post":{"operationId":"RadarController_grant","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantCreditsDto"}}}},"responses":{"201":{"description":""}},"tags":["Radar"]}},"/api/v1/workspaces/{slug}/radar/runs/{runId}/start":{"post":{"operationId":"RadarController_start","parameters":[{"name":"runId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Radar"]}},"/api/v1/workspaces/{slug}/radar/runs/{runId}/reconcile":{"post":{"operationId":"RadarController_reconcile","parameters":[{"name":"runId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Radar"]}},"/api/v1/workspaces/{slug}/radar/runs/{runId}/enrich":{"post":{"operationId":"RadarController_enrich","parameters":[{"name":"runId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Radar"]}},"/api/v1/workspaces/{slug}/radar/runs/{runId}/trace":{"get":{"operationId":"RadarController_trace","parameters":[{"name":"runId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Radar"]}},"/api/v1/workspaces/{slug}/radar/runs/{runId}/enrich/companies":{"post":{"operationId":"RadarController_enrichCompanies","parameters":[{"name":"runId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Radar"]}},"/api/v1/workspaces/{slug}/radar/collections/{collectionId}/contact-paths/quote":{"post":{"operationId":"RadarController_quoteContactPaths","parameters":[{"name":"collectionId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrichContactsDto"}}}},"responses":{"201":{"description":""}},"tags":["Radar"]}},"/api/v1/workspaces/{slug}/radar/collections/{collectionId}/contact-paths/unlock":{"post":{"operationId":"RadarController_unlockContactPaths","parameters":[{"name":"collectionId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnlockContactsDto"}}}},"responses":{"201":{"description":""}},"tags":["Radar"]}},"/api/v1/workspaces/{slug}/radar/runs/{runId}/monitor":{"get":{"operationId":"RadarController_monitorState","parameters":[{"name":"runId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Radar"]}},"/api/v1/workspaces/{slug}/radar/runs/{runId}/monitor/pause":{"post":{"operationId":"RadarController_pauseMonitor","parameters":[{"name":"runId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Radar"]}},"/api/v1/workspaces/{slug}/radar/runs/{runId}/monitor/resume":{"post":{"operationId":"RadarController_resumeMonitor","parameters":[{"name":"runId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Radar"]}},"/api/v1/workspaces/{slug}/radar/runs/{runId}/stream":{"get":{"operationId":"RadarController_stream","parameters":[{"name":"runId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Radar"]}},"/webhooks/radar/monitor":{"post":{"operationId":"RadarWebhookController_monitorEvent","parameters":[],"responses":{"200":{"description":""}},"tags":["RadarWebhook"]}},"/api/v1/workspaces/{slug}/areas":{"get":{"operationId":"AreasController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Areas"]},"post":{"operationId":"AreasController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAreaDto"}}}},"responses":{"201":{"description":""}},"tags":["Areas"]}},"/api/v1/workspaces/{slug}/areas/{id}":{"patch":{"operationId":"AreasController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAreaDto"}}}},"responses":{"200":{"description":""}},"tags":["Areas"]},"delete":{"operationId":"AreasController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Areas"]}},"/api/v1/workspaces/{slug}/billing/checkout-session":{"post":{"operationId":"BillingController_createCheckoutSession","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutSessionDto"}}}},"responses":{"201":{"description":""}},"tags":["Billing"]}},"/api/v1/workspaces/{slug}/billing/portal-session":{"post":{"operationId":"BillingController_createPortalSession","parameters":[],"responses":{"201":{"description":""}},"tags":["Billing"]}},"/webhooks/stripe":{"post":{"operationId":"BillingWebhookController_handle","parameters":[{"name":"stripe-signature","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["BillingWebhook"]}},"/api/v1/workspaces/{slug}/commercial-usage":{"get":{"operationId":"CommercialUsageController_get","parameters":[],"responses":{"200":{"description":""}},"tags":["CommercialUsage"]}},"/api/v1/platform/billing/workspaces":{"get":{"operationId":"PlatformBillingController_listWorkspaces","parameters":[],"responses":{"200":{"description":""}},"tags":["PlatformBilling"]}},"/api/v1/platform/billing/plans":{"get":{"operationId":"PlatformBillingController_listPlans","parameters":[],"responses":{"200":{"description":""}},"tags":["PlatformBilling"]}},"/api/v1/platform/billing/offers":{"get":{"operationId":"PlatformBillingController_listOffers","parameters":[],"responses":{"200":{"description":""}},"tags":["PlatformBilling"]},"post":{"operationId":"PlatformBillingController_createOffer","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBillingOfferDto"}}}},"responses":{"201":{"description":""}},"tags":["PlatformBilling"]}},"/api/v1/platform/billing/offers/{id}":{"get":{"operationId":"PlatformBillingController_getOffer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["PlatformBilling"]}},"/api/v1/platform/billing/offers/{id}/cancel":{"post":{"operationId":"PlatformBillingController_cancelOffer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["PlatformBilling"]}},"/api/v1/platform/billing/offers/{id}/reissue":{"post":{"operationId":"PlatformBillingController_reissueOffer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["PlatformBilling"]}},"/api/v1/platform/billing/workspaces/{workspaceId}/enterprise":{"post":{"operationId":"PlatformBillingController_setEnterprise","parameters":[{"name":"workspaceId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnterprisePlanDto"}}}},"responses":{"201":{"description":""}},"tags":["PlatformBilling"]}},"/api/v1/workspaces/{slug}/collections":{"post":{"operationId":"CollectionsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCollectionDto"}}}},"responses":{"201":{"description":""}},"tags":["Collections"]},"get":{"operationId":"CollectionsController_list","parameters":[{"name":"status","required":true,"in":"query","schema":{"type":"string"}},{"name":"owner","required":true,"in":"query","schema":{"type":"string"}},{"name":"updated_after","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"cursor","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Collections"]}},"/api/v1/workspaces/{slug}/collections/search":{"get":{"operationId":"CollectionsController_search","parameters":[{"name":"q","required":true,"in":"query","schema":{"type":"string"}},{"name":"status","required":true,"in":"query","schema":{"type":"string"}},{"name":"include_archived","required":true,"in":"query","schema":{"type":"string"}},{"name":"owner","required":true,"in":"query","schema":{"type":"string"}},{"name":"updated_after","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"cursor","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Collections"]}},"/api/v1/workspaces/{slug}/collections/doctor":{"get":{"operationId":"CollectionsController_doctor","parameters":[{"name":"full","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Collections"]}},"/api/v1/workspaces/{slug}/collections/{id}":{"get":{"operationId":"CollectionsController_get","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"view","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Collections"]},"patch":{"operationId":"CollectionsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCollectionDto"}}}},"responses":{"200":{"description":""}},"tags":["Collections"]},"delete":{"operationId":"CollectionsController_purge","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"dry_run","required":true,"in":"query","schema":{"type":"string"}},{"name":"expected_version","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Collections"]}},"/api/v1/workspaces/{slug}/collections/{id}/context":{"get":{"operationId":"CollectionsController_context","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Collections"]}},"/api/v1/workspaces/{slug}/collections/{id}/archive":{"post":{"operationId":"CollectionsController_archive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Collections"]}},"/api/v1/workspaces/{slug}/collections/{id}/restore":{"post":{"operationId":"CollectionsController_restore","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Collections"]}},"/api/v1/workspaces/{slug}/collections/{id}/connector-mapping":{"get":{"operationId":"CollectionsController_getConnectorMapping","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Collections"]},"put":{"operationId":"CollectionsController_setConnectorMapping","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Collections"]}},"/api/v1/workspaces/{slug}/collections/{id}/presentation":{"get":{"operationId":"CollectionsController_getPresentation","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Collections"]},"put":{"operationId":"CollectionsController_setPresentation","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPresentationDto"}}}},"responses":{"200":{"description":""}},"tags":["Collections"]}},"/api/v1/workspaces/{slug}/collections/{id}/records":{"post":{"operationId":"CollectionsController_createRecord","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRecordDto"}}}},"responses":{"201":{"description":""}},"tags":["Collections"]},"get":{"operationId":"CollectionsController_listRecords","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"status","required":true,"in":"query","schema":{"type":"string"}},{"name":"entity_id","required":true,"in":"query","schema":{"type":"string"}},{"name":"drifted","required":true,"in":"query","schema":{"type":"string"}},{"name":"updated_after","required":true,"in":"query","schema":{"type":"string"}},{"name":"view","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"cursor","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Collections"]}},"/api/v1/workspaces/{slug}/collections/{id}/records/query":{"post":{"operationId":"CollectionsController_queryRecords","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryRecordsDto"}}}},"responses":{"201":{"description":""}},"tags":["Collections"]}},"/api/v1/workspaces/{slug}/collections/{id}/records/aggregate":{"post":{"operationId":"CollectionsController_aggregateRecords","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AggregateRecordsDto"}}}},"responses":{"201":{"description":""}},"tags":["Collections"]}},"/api/v1/workspaces/{slug}/collections/{id}/retrieve":{"get":{"operationId":"CollectionsController_retrieve","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"query","required":true,"in":"query","schema":{"type":"string"}},{"name":"status","required":true,"in":"query","schema":{"type":"string"}},{"name":"entity_id","required":true,"in":"query","schema":{"type":"string"}},{"name":"drifted","required":true,"in":"query","schema":{"type":"string"}},{"name":"updated_after","required":true,"in":"query","schema":{"type":"string"}},{"name":"view","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"cursor","required":true,"in":"query","schema":{"type":"string"}},{"name":"fields","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Collections"]}},"/api/v1/workspaces/{slug}/collections/{id}/records/{recordId}/history":{"get":{"operationId":"CollectionsController_recordHistory","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"recordId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Collections"]}},"/api/v1/workspaces/{slug}/collections/{id}/records/{recordId}":{"get":{"operationId":"CollectionsController_getRecord","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"recordId","required":true,"in":"path","schema":{"type":"string"}},{"name":"select","required":true,"in":"query","schema":{"type":"string"}},{"name":"projection","required":true,"in":"query","schema":{"type":"string"}},{"name":"max_bytes","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Collections"]},"patch":{"operationId":"CollectionsController_updateRecord","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"recordId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRecordDto"}}}},"responses":{"200":{"description":""}},"tags":["Collections"]},"delete":{"operationId":"CollectionsController_deleteRecord","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"recordId","required":true,"in":"path","schema":{"type":"string"}},{"name":"dry_run","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Collections"]}},"/api/v1/workspaces/{slug}/collections/{id}/records/{recordId}/outcomes":{"post":{"operationId":"CollectionsController_recordOutcome","parameters":[{"name":"recordId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordOutcomeDto"}}}},"responses":{"201":{"description":""}},"tags":["Collections"]}},"/api/v1/workspaces/{slug}/entities":{"post":{"operationId":"EntitiesController_upsert","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertEntityDto"}}}},"responses":{"201":{"description":""}},"tags":["Entities"]},"get":{"operationId":"EntitiesController_list","parameters":[{"name":"kind","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Entities"]}},"/api/v1/workspaces/{slug}/entities/{id}":{"get":{"operationId":"EntitiesController_get","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Entities"]}},"/webhooks/intercom":{"head":{"operationId":"CollectionsWebhookController_validateIntercomWebhook","parameters":[],"responses":{"200":{"description":""}},"tags":["CollectionsWebhook"]},"post":{"operationId":"CollectionsWebhookController_handleIntercom","parameters":[],"responses":{"200":{"description":""}},"tags":["CollectionsWebhook"]}},"/api/v1/workspaces/{slug}/members":{"get":{"operationId":"MembersController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Members"]},"post":{"operationId":"MembersController_add","parameters":[],"responses":{"201":{"description":""}},"tags":["Members"]}},"/api/v1/workspaces/{slug}/members/{memberId}":{"patch":{"operationId":"MembersController_setRole","parameters":[{"name":"memberId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Members"]},"delete":{"operationId":"MembersController_remove","parameters":[{"name":"memberId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Members"]}},"/api/v1/workspaces/{slug}/events/stream":{"get":{"operationId":"EventsController_stream","parameters":[],"responses":{"200":{"description":""}},"tags":["Events"]}},"/api/v1/workspaces/{slug}/agent-runs/librarian":{"post":{"operationId":"AgentRunsController_runLibrarian","parameters":[],"responses":{"201":{"description":""}},"tags":["AgentRuns"]}},"/api/v1/workspaces/{slug}/agent-runs/config":{"get":{"operationId":"AgentRunsController_getConfig","parameters":[],"responses":{"200":{"description":""}},"tags":["AgentRuns"]},"patch":{"operationId":"AgentRunsController_putConfig","parameters":[],"responses":{"200":{"description":""}},"tags":["AgentRuns"]}},"/api/v1/workspaces/{slug}/agent-runs/models":{"get":{"operationId":"AgentRunsController_models","parameters":[],"responses":{"200":{"description":""}},"tags":["AgentRuns"]}},"/api/v1/workspaces/{slug}/provider-credentials/registry":{"get":{"operationId":"ProviderCredentialsController_registry","parameters":[],"responses":{"200":{"description":""}},"tags":["ProviderCredentials"]}},"/api/v1/workspaces/{slug}/provider-credentials":{"get":{"operationId":"ProviderCredentialsController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["ProviderCredentials"]}},"/api/v1/workspaces/{slug}/provider-credentials/{providerClass}":{"put":{"operationId":"ProviderCredentialsController_set","parameters":[],"responses":{"200":{"description":""}},"tags":["ProviderCredentials"]},"delete":{"operationId":"ProviderCredentialsController_revoke","parameters":[],"responses":{"200":{"description":""}},"tags":["ProviderCredentials"]}},"/api/v1/workspaces/{slug}/provider-credentials/{providerClass}/test":{"post":{"operationId":"ProviderCredentialsController_test","parameters":[],"responses":{"201":{"description":""}},"tags":["ProviderCredentials"]}},"/api/v1/workspaces/{slug}/provider-credentials/{providerClass}/models":{"get":{"operationId":"ProviderCredentialsController_models","parameters":[],"responses":{"200":{"description":""}},"tags":["ProviderCredentials"]}},"/api/v1/workspaces/{slug}/inference/status":{"get":{"operationId":"InferenceController_status","parameters":[],"responses":{"200":{"description":""}},"tags":["Inference"]}},"/api/v1/workspaces/{slug}/inference/metrics":{"get":{"operationId":"InferenceController_metricsFor","parameters":[{"name":"days","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Inference"]}},"/api/v1/workspaces/{slug}/market-data/suppliers/search":{"post":{"description":"Who could manufacture, distribute or sell this? Every row is one published observation — not a consolidated company, and never a demonstration of capability. Returns contact PRESENCE and counts; contact values are reachable only through the detail operation.","operationId":"MarketDataController_searchSuppliers","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupplierSearchDto"}}}},"responses":{"201":{"description":""}},"summary":"Find candidate suppliers","tags":["market-data"]}},"/api/v1/workspaces/{slug}/market-data/suppliers/count":{"post":{"description":"How many suppliers match these filters? Same bounding rule as suppliers/search: at least one narrowing dimension is required, and a request for the whole directory is refused with query_too_broad rather than counted. Returns one exact integer plus the same coverage every other operation carries.","operationId":"MarketDataController_countSuppliers","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupplierCountDto"}}}},"responses":{"201":{"description":""}},"summary":"An exact count of the narrowed supplier directory","tags":["market-data"]}},"/api/v1/workspaces/{slug}/market-data/suppliers/compare-segments":{"post":{"description":"Counts published directory observations, not companies or market size. A single observed_kind is mandatory.","operationId":"MarketDataController_compareSegments","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompareSegmentsDto"}}}},"responses":{"201":{"description":""}},"summary":"Compare bounded supplier segments across states","tags":["market-data"]}},"/api/v1/workspaces/{slug}/market-data/suppliers/{sourceSlug}/{sourceRecordId}":{"get":{"description":"One supplier observation selected only through `…/suppliers/~ref/{record_ref}` using the opaque reference issued by a prior result. Raw publisher keys are never accepted by HTTP. The response is always the abstracted projection: evidence and contact availability only.","operationId":"MarketDataController_getSupplier","parameters":[{"name":"sourceSlug","required":true,"in":"path","schema":{"type":"string"}},{"name":"sourceRecordId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"One supplier observation by its strong key","tags":["market-data"]}},"/api/v1/workspaces/{slug}/market-data/opportunities/search":{"post":{"description":"Evaluated rows carry participation status, evidence basis and freshness; legacy rows keep those fields null. Read participation together with actionability. proposal_deadline is the only submit-by bound.","operationId":"MarketDataController_searchOpportunities","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpportunitySearchDto"}}}},"responses":{"201":{"description":""}},"summary":"Find public opportunities","tags":["market-data"]}},"/api/v1/workspaces/{slug}/market-data/opportunities/{sourceSlug}/{sourceRecordId}":{"get":{"description":"A selected result opens only through `…/opportunities/~ref/{record_ref}`. Awards are nested under `awards` with an `award_count`, never joined flat.","operationId":"MarketDataController_getOpportunity","parameters":[{"name":"sourceSlug","required":true,"in":"path","schema":{"type":"string"}},{"name":"sourceRecordId","required":true,"in":"path","schema":{"type":"string"}},{"name":"include_awards","required":false,"in":"query","description":"Include the awards made under this procedure, as a CHILD COLLECTION. Never a flat join: one procedure can carry hundreds of awards.","schema":{"default":true,"type":"boolean"}}],"responses":{"200":{"description":""}},"summary":"One opportunity, with its awards as a child collection","tags":["market-data"]}},"/api/v1/workspaces/{slug}/market-data/awards/search":{"post":{"description":"An award is a publication: a contract was awarded and recorded. It is not a payment, a delivery or an execution. supplier_rfc is strong identity; supplier_name is approximate and returns candidates.","operationId":"MarketDataController_searchAwards","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwardSearchDto"}}}},"responses":{"201":{"description":""}},"summary":"Search awarded contracts","tags":["market-data"]}},"/api/v1/workspaces/{slug}/market-data/awards/history":{"post":{"description":"RFC only — a history keyed on a supplier name is a history of a string. supplier_rfc, currency and amount_scope are mandatory, and the response lists every other (currency, scope) pair this RFC has rows in so the total is never read as the whole history. The contracts list is deep-pageable with limit/cursor; buyers stay a bounded rollup.","operationId":"MarketDataController_supplierHistory","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwardHistoryDto"}}}},"responses":{"201":{"description":""}},"summary":"One supplier’s award history, by RFC","tags":["market-data"]}},"/api/v1/workspaces/{slug}/market-data/awards/aggregate":{"post":{"description":"currency, amount_scope and at least one allowlisted group_by are mandatory. Amounts are never summed across currencies or across amount scopes, and supplier_name is not a grouping dimension. group_by: cog_partida / cog_capitulo unnest the SHCP object-of-expense codes a mixed contract carries — its full award_count and total_amount count under EACH code, so totals across those groups can exceed the corpus total (see the cog_partida_totals_may_exceed_corpus warning).","operationId":"MarketDataController_aggregateAwards","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwardAggregateDto"}}}},"responses":{"201":{"description":""}},"summary":"Aggregate awards within one currency and scope","tags":["market-data"]}},"/api/v1/workspaces/{slug}/market-data/risks/screen":{"post":{"description":"One result per requested RFC, in the order requested — including an RFC with zero marks, which is a coverage-backed answer, never silence. 1–50 RFCs; more than 50 is refused with batch_too_large rather than truncated. A mark is a published listing, never a judicial conviction.","operationId":"MarketDataController_screenRisks","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RiskScreenDto"}}}},"responses":{"201":{"description":""}},"summary":"Screen a batch of RFCs for published adverse marks in one call","tags":["market-data"]}},"/api/v1/workspaces/{slug}/market-data/risks/search":{"post":{"description":"Is this party carrying a published risk mark? rfc is strong identity; entity_name is approximate and returns candidates with their RFCs. A mark is a published listing — a barred-supplier status or a sanción/inhabilitación — never a judicial conviction, and a party can carry several, including published exonerations.","operationId":"MarketDataController_searchRisks","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RiskSearchDto"}}}},"responses":{"201":{"description":""}},"summary":"Find published adverse marks (barred-supplier listings and sanciones)","tags":["market-data"]}},"/api/v1/workspaces/{slug}/market-data/permits/search":{"post":{"description":"Does this party hold a published permit? holder_rfc is strong identity where published — rare in this corpus; holder_name is approximate and is the join this relation was built around. A permit is a granted right, recorded at load time, never a live operational verification.","operationId":"MarketDataController_searchPermits","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PermitSearchDto"}}}},"responses":{"201":{"description":""}},"summary":"Find published permits, concessions and capex commitments","tags":["market-data"]}},"/api/v1/workspaces/{slug}/market-data/coverage":{"get":{"description":"What is published, by which source, how fresh, and whether it is licensed for display. Attached to every operation’s response as well — coverage is what separates \"no results\" from \"no such market\".","operationId":"MarketDataController_getCoverage","parameters":[],"responses":{"200":{"description":""}},"summary":"Declared coverage for every relation","tags":["market-data"]}},"/api/v1/workspaces/{slug}/market-data/capabilities":{"get":{"description":"Two layers. The semantic contract — operations, identity, amounts, dates, contacts, matching — is code-owned and versioned with the schema. The filter value lists are read from the LIVE licensed corpus on every request and stamped with the basis they were read against, so they are never presented as timeless constants. This route returns the COMPLETE lists; the agent runtime is injected a compact, source-aware subset of the same contract and spends no tool call on it. An optional `facets` query param (comma-separated) restricts both the computation and the response to the named corpus dimensions.","operationId":"MarketDataController_getCapabilities","parameters":[{"name":"facets","required":false,"in":"query","description":"Comma-separated facet dimension names (e.g. \"procedure_type,contracting_type\"). When present, only these dimensions are computed and returned — an unknown name is refused with the allowed list.","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"What this layer can do, what it refuses, and which values the corpus holds","tags":["market-data"]}},"/api/v1/workspaces/{slug}/market-data/capabilities/compact":{"get":{"description":"The bounded, source-aware capability projection used by agent runtimes. Use the complete capabilities route only when an integrator needs the full observed-value catalogue.","operationId":"MarketDataController_getCompactCapabilities","parameters":[],"responses":{"200":{"description":""}},"summary":"Compact capability discovery for agent clients","tags":["market-data"]}},"/api/v1/workspaces/{slug}/market-data/promote/preview":{"post":{"description":"Reads only. Returns the mapping the write will use, the provenance fields it will provision, and one outcome per row — the SAME computation the write performs, so the counts a person confirms are the counts the database delivers.","operationId":"MarketDataPromotionController_preview","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligencePromoteDto"}}}},"responses":{"201":{"description":""}},"summary":"What saving these intelligence rows into a pipeline would do","tags":["market-data"]}},"/api/v1/workspaces/{slug}/market-data/promote":{"post":{"description":"Recomputes the plan and executes it. Replays of the same published identity resolve to the existing record through source_promotion_key; the legacy idempotency_key is accepted for client compatibility but identity is the dedupe key. Mixed success is reported per row, never rolled back.","operationId":"MarketDataPromotionController_promote","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligencePromoteDto"}}}},"responses":{"201":{"description":""}},"summary":"Save selected intelligence rows into a pipeline","tags":["market-data"]}},"/api/v1/workspaces/{slug}/comments":{"post":{"operationId":"CommentsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommentDto"}}}},"responses":{"201":{"description":""}},"tags":["Comments"]},"get":{"operationId":"CommentsController_list","parameters":[{"name":"target_kind","required":true,"in":"query","schema":{"type":"string"}},{"name":"target_id","required":true,"in":"query","schema":{"type":"string"}},{"name":"target_ref","required":true,"in":"query","schema":{"type":"string"}},{"name":"status","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Comments"]}},"/api/v1/workspaces/{slug}/comments/{id}":{"get":{"operationId":"CommentsController_get","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Comments"]},"patch":{"operationId":"CommentsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCommentDto"}}}},"responses":{"200":{"description":""}},"tags":["Comments"]}},"/api/v1/workspaces/{slug}/tags":{"get":{"operationId":"TagsController_list","parameters":[{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"offset","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Tags"]},"post":{"operationId":"TagsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTagDto"}}}},"responses":{"201":{"description":""}},"tags":["Tags"]}},"/api/v1/workspaces/{slug}/tags/{name}":{"patch":{"operationId":"TagsController_update","parameters":[{"name":"name","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTagDto"}}}},"responses":{"200":{"description":""}},"tags":["Tags"]},"delete":{"operationId":"TagsController_remove","parameters":[{"name":"name","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Tags"]}},"/api/v1/workspaces/{slug}/export":{"get":{"operationId":"ExportController_export","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Export"]}},"/api/v1/workspaces/{slug}/audit-log":{"get":{"operationId":"AuditController_list","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Audit"]}},"/api/v1/workspaces/{slug}/integrations":{"get":{"operationId":"IntegrationsController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Integrations"]}},"/api/v1/workspaces/{slug}/integrations/nango/catalog":{"get":{"operationId":"IntegrationsController_nangoCatalog","parameters":[],"responses":{"200":{"description":""}},"tags":["Integrations"]}},"/api/v1/workspaces/{slug}/integrations/nango/{provider}/connect-session":{"post":{"operationId":"IntegrationsController_connectSession","parameters":[{"name":"provider","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Integrations"]}},"/api/v1/workspaces/{slug}/integrations/nango/{provider}/confirm":{"post":{"operationId":"IntegrationsController_confirmConnection","parameters":[{"name":"provider","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Integrations"]}},"/api/v1/workspaces/{slug}/integrations/nango/{provider}/reconnect-session":{"post":{"operationId":"IntegrationsController_reconnectSession","parameters":[{"name":"provider","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Integrations"]}},"/api/v1/workspaces/{slug}/integrations/{id}":{"delete":{"operationId":"IntegrationsController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Integrations"]}},"/api/v1/workspaces/{slug}/broker/connections":{"get":{"operationId":"BrokerController_connections","parameters":[],"responses":{"200":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/connections/{provider}/operations":{"get":{"operationId":"BrokerController_operations","parameters":[{"name":"provider","required":true,"in":"path","schema":{"type":"string"}},{"name":"refresh","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/connections/{provider}/capabilities":{"get":{"operationId":"BrokerController_capabilities","parameters":[{"name":"provider","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/connections/{provider}/context":{"get":{"operationId":"BrokerController_connectionContext","parameters":[{"name":"provider","required":true,"in":"path","schema":{"type":"string"}},{"name":"connection","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/operations":{"get":{"operationId":"BrokerController_searchOperations","parameters":[{"name":"query","required":true,"in":"query","schema":{"type":"string"}},{"name":"provider","required":true,"in":"query","schema":{"type":"string"}},{"name":"effect","required":true,"in":"query","schema":{"type":"string"}},{"name":"risk","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"cursor","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/connections/{provider}/operations/{operation}":{"get":{"operationId":"BrokerController_inspectOperation","parameters":[{"name":"provider","required":true,"in":"path","schema":{"type":"string"}},{"name":"operation","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/connections/{provider}/criterion":{"post":{"operationId":"BrokerController_attachCriterion","parameters":[{"name":"provider","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/connections/{provider}/criterion/{topic}":{"delete":{"operationId":"BrokerController_detachCriterion","parameters":[{"name":"provider","required":true,"in":"path","schema":{"type":"string"}},{"name":"topic","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/connections/{provider}/models":{"get":{"operationId":"BrokerController_models","parameters":[{"name":"provider","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/connections/{provider}/records":{"get":{"operationId":"BrokerController_records","parameters":[{"name":"provider","required":true,"in":"path","schema":{"type":"string"}},{"name":"model","required":true,"in":"query","schema":{"type":"string"}},{"name":"cursor","required":true,"in":"query","schema":{"type":"string"}},{"name":"modifiedAfter","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/connections/{provider}/documents/{externalId}/content":{"get":{"operationId":"BrokerController_documentContent","parameters":[{"name":"provider","required":true,"in":"path","schema":{"type":"string"}},{"name":"externalId","required":true,"in":"path","schema":{"type":"string"}},{"name":"maxBytes","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/connections/notion/pages/{pageId}/content":{"get":{"operationId":"BrokerController_notionPageContent","parameters":[{"name":"pageId","required":true,"in":"path","schema":{"type":"string"}},{"name":"maxBytes","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/connections/{provider}/preview":{"post":{"operationId":"BrokerController_preview","parameters":[{"name":"provider","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/connections/{provider}/invoke":{"post":{"operationId":"BrokerController_invoke","parameters":[{"name":"provider","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/connections/{provider}/index/preview":{"post":{"operationId":"BrokerController_previewIndex","parameters":[{"name":"provider","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/connections/{provider}/index":{"post":{"operationId":"BrokerController_executeIndex","parameters":[{"name":"provider","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/connections/{provider}/import":{"post":{"operationId":"BrokerController_importRecords","parameters":[{"name":"provider","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/events":{"get":{"operationId":"BrokerController_events","parameters":[{"name":"provider","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/grants":{"get":{"operationId":"BrokerController_grants","parameters":[],"responses":{"200":{"description":""}},"tags":["Broker"]},"post":{"operationId":"BrokerController_createGrant","parameters":[],"responses":{"201":{"description":""}},"tags":["Broker"]}},"/api/v1/workspaces/{slug}/broker/grants/{id}":{"delete":{"operationId":"BrokerController_deleteGrant","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Broker"]}},"/broker/nango/webhook":{"post":{"operationId":"BrokerWebhookController_handleNango","parameters":[],"responses":{"200":{"description":""}},"tags":["BrokerWebhook"]}},"/api/v1/workspaces/{slug}/steward/run":{"post":{"operationId":"StewardController_run","parameters":[],"responses":{"201":{"description":""}},"tags":["Steward"]}},"/api/v1/me":{"get":{"operationId":"MeController_me","parameters":[],"responses":{"200":{"description":""}},"tags":["Me"]},"delete":{"operationId":"MeController_deleteAccount","parameters":[],"responses":{"200":{"description":""}},"tags":["Me"]}},"/api/v1/me/platform-capabilities":{"get":{"operationId":"MeController_platformCapabilities","parameters":[],"responses":{"200":{"description":""}},"tags":["Me"]}},"/api/v1/me/intercom-identity":{"get":{"operationId":"MeController_intercomIdentityForMe","parameters":[],"responses":{"200":{"description":""}},"tags":["Me"]}},"/api/v1/me/workspaces":{"get":{"operationId":"MeController_myWorkspaces","parameters":[],"responses":{"200":{"description":""}},"tags":["Me"]}},"/api/v1/me/connections":{"get":{"operationId":"MeController_myConnections","parameters":[],"responses":{"200":{"description":""}},"tags":["Me"]}},"/api/v1/me/connections/{id}":{"delete":{"operationId":"MeController_revokeConnection","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Me"]}},"/api/v1/me/api-keys":{"get":{"operationId":"MeController_myApiKeys","parameters":[],"responses":{"200":{"description":""}},"tags":["Me"]}},"/api/v1/me/api-keys/{id}":{"delete":{"operationId":"MeController_revokeApiKey","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Me"]}},"/api/v1/me/deleted-workspaces":{"get":{"operationId":"MeController_deletedWorkspaces","parameters":[],"responses":{"200":{"description":""}},"tags":["Me"]}},"/api/v1/me/deleted-workspaces/{id}/restore":{"post":{"operationId":"MeController_restoreWorkspace","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Me"]}},"/api/v1/me/deletion-preview":{"get":{"operationId":"MeController_deletionPreview","parameters":[],"responses":{"200":{"description":""}},"tags":["Me"]}},"/api/v1/health":{"get":{"operationId":"OpsController_health","parameters":[],"responses":{"200":{"description":""}},"tags":["Ops"]}},"/api/v1/version":{"get":{"operationId":"OpsController_version","parameters":[],"responses":{"200":{"description":""}},"tags":["Ops"]}},"/api/v1/blog/posts":{"get":{"operationId":"BlogController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Blog"]}},"/api/v1/blog/posts/{slug}":{"get":{"operationId":"BlogController_findOne","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Blog"]}},"/api/v1/seo/pages":{"get":{"operationId":"SeoController_list","parameters":[{"name":"indexable","required":true,"in":"query","schema":{"type":"string"}},{"name":"pageType","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Seo"]}},"/api/v1/seo/sitemaps":{"get":{"operationId":"SeoController_sitemapIndex","parameters":[],"responses":{"200":{"description":""}},"tags":["Seo"]}},"/api/v1/seo/sitemaps/segment":{"get":{"operationId":"SeoController_sitemapSegment","parameters":[{"name":"pageType","required":true,"in":"query","schema":{"type":"string"}},{"name":"segment","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Seo"]}},"/api/v1/seo/pages/document":{"get":{"operationId":"SeoController_document","parameters":[{"name":"path","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Seo"]}},"/api/v1/workspaces/{slug}/topics/{topic}/share":{"post":{"operationId":"SharesController_create[0]","parameters":[{"name":"topic","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Shares"]},"delete":{"operationId":"SharesController_revoke[0]","parameters":[{"name":"topic","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Shares"]}},"/api/v1/workspaces/{slug}/watchers/{topic}/share":{"post":{"operationId":"SharesController_create[1]","parameters":[{"name":"topic","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Shares"]},"delete":{"operationId":"SharesController_revoke[1]","parameters":[{"name":"topic","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Shares"]}},"/s/{token}":{"get":{"operationId":"SharesController_publicView","parameters":[{"name":"token","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Shares"]}},"/api/v1/workspaces/{slug}/chat/threads":{"post":{"operationId":"ChatController_createThread","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateThreadDto"}}}},"responses":{"201":{"description":""}},"tags":["Chat"]},"get":{"operationId":"ChatController_listThreads","parameters":[{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"offset","required":true,"in":"query","schema":{"type":"string"}},{"name":"status","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Chat"]}},"/api/v1/workspaces/{slug}/chat/models":{"get":{"operationId":"ChatController_listModels","parameters":[],"responses":{"200":{"description":""}},"tags":["Chat"]}},"/api/v1/workspaces/{slug}/chat/threads/{id}":{"patch":{"operationId":"ChatController_updateThread","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchThreadDto"}}}},"responses":{"200":{"description":""}},"tags":["Chat"]},"delete":{"operationId":"ChatController_deleteThread","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Chat"]}},"/api/v1/workspaces/{slug}/chat/threads/{id}/messages":{"get":{"operationId":"ChatController_listMessages","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"offset","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Chat"]},"post":{"operationId":"ChatController_postMessage","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostMessageDto"}}}},"responses":{"201":{"description":""}},"tags":["Chat"]}},"/api/v1/workspaces/{slug}/chat/threads/{id}/regenerate":{"post":{"operationId":"ChatController_regenerate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Chat"]}},"/api/v1/workspaces/{slug}/chat/threads/{id}/messages/{messageId}/feedback":{"post":{"operationId":"ChatController_submitFeedback","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"messageId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackDto"}}}},"responses":{"201":{"description":""}},"tags":["Chat"]}},"/api/v1/workspaces/{slug}/chat/threads/{id}/messages/{messageId}/promotable":{"get":{"operationId":"ChatController_promotableRows","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"messageId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Chat"]}},"/api/v1/workspaces/{slug}/chat/threads/{id}/messages/{messageId}/promote/preview":{"post":{"operationId":"ChatController_promotePreview","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"messageId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatPromoteDto"}}}},"responses":{"201":{"description":""}},"tags":["Chat"]}},"/api/v1/workspaces/{slug}/chat/threads/{id}/messages/{messageId}/promote":{"post":{"operationId":"ChatController_promote","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"messageId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatPromoteDto"}}}},"responses":{"201":{"description":""}},"tags":["Chat"]}},"/api/v1/workspaces/{slug}/chat/threads/{id}/stop":{"post":{"operationId":"ChatController_stopTurn","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Chat"]}},"/api/v1/workspaces/{slug}/chat/threads/{id}/stream":{"get":{"operationId":"ChatController_stream","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Chat"]}},"/api/v1/workspaces/{slug}/investigations/questions":{"get":{"operationId":"InvestigationsController_questions","parameters":[],"responses":{"200":{"description":""}},"tags":["Investigations"]}},"/api/v1/workspaces/{slug}/investigations":{"get":{"operationId":"InvestigationsController_list","parameters":[{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"offset","required":true,"in":"query","schema":{"type":"string"}},{"name":"threadId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Investigations"]},"post":{"operationId":"InvestigationsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInvestigationDto"}}}},"responses":{"201":{"description":""}},"tags":["Investigations"]}},"/api/v1/workspaces/{slug}/investigations/{id}":{"get":{"operationId":"InvestigationsController_detail","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Investigations"]}},"/api/v1/workspaces/{slug}/investigations/{id}/events":{"get":{"operationId":"InvestigationsController_events","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"since","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Investigations"]}},"/api/v1/workspaces/{slug}/investigations/{id}/candidates":{"get":{"operationId":"InvestigationsController_candidates","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"cursor","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Investigations"]}},"/api/v1/workspaces/{slug}/investigations/{id}/artifact":{"get":{"operationId":"InvestigationsController_artifact","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Investigations"]}},"/api/v1/workspaces/{slug}/investigations/{id}/answers":{"post":{"operationId":"InvestigationsController_answers","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnswerClarificationsDto"}}}},"responses":{"201":{"description":""}},"tags":["Investigations"]}},"/api/v1/workspaces/{slug}/investigations/{id}/start":{"post":{"operationId":"InvestigationsController_start","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Investigations"]}},"/api/v1/workspaces/{slug}/investigations/{id}/promote/preview":{"post":{"operationId":"InvestigationsController_promotePreview","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoteDto"}}}},"responses":{"201":{"description":""}},"tags":["Investigations"]}},"/api/v1/workspaces/{slug}/investigations/{id}/promote":{"post":{"operationId":"InvestigationsController_promote","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoteDto"}}}},"responses":{"201":{"description":""}},"tags":["Investigations"]}},"/api/v1/workspaces/{slug}/investigations/{id}/stop":{"post":{"operationId":"InvestigationsController_stop","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Investigations"]}},"/api/v1/workspaces/{slug}/investigations/{id}/export":{"get":{"operationId":"InvestigationsController_export","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"format","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Investigations"]}},"/api/v1/workspaces/{slug}/me/prefs/{key}":{"get":{"operationId":"UserPrefsController_get","parameters":[{"name":"key","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["UserPrefs"]},"put":{"operationId":"UserPrefsController_put","parameters":[{"name":"key","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["UserPrefs"]}},"/api/v1/workspaces/{slug}/commercial-setup/calibration-candidates":{"get":{"operationId":"CommercialSetupController_getCalibrationCandidates","parameters":[],"responses":{"200":{"description":""}},"tags":["CommercialSetup"]}},"/api/v1/workspaces/{slug}/commercial-setup":{"post":{"operationId":"CommercialSetupController_start","parameters":[],"responses":{"201":{"description":""}},"tags":["CommercialSetup"]}},"/api/v1/workspaces/{slug}/commercial-setup/active":{"get":{"operationId":"CommercialSetupController_getActive","parameters":[],"responses":{"200":{"description":""}},"tags":["CommercialSetup"]}},"/api/v1/workspaces/{slug}/commercial-setup/{id}":{"patch":{"operationId":"CommercialSetupController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCommercialSetupDto"}}}},"responses":{"200":{"description":""}},"tags":["CommercialSetup"]}},"/api/v1/workspaces/{slug}/commercial-setup/{id}/complete":{"post":{"operationId":"CommercialSetupController_complete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["CommercialSetup"]}},"/api/v1/workspaces/{slug}/invitations":{"get":{"operationId":"InvitationsController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Invitations"]},"post":{"operationId":"InvitationsController_invite","parameters":[],"responses":{"201":{"description":""}},"tags":["Invitations"]}},"/api/v1/workspaces/{slug}/invitations/{id}":{"delete":{"operationId":"InvitationsController_revoke","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Invitations"]}},"/api/v1/invitations/{token}/accept":{"post":{"operationId":"InvitationsAcceptController_accept","parameters":[{"name":"token","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["InvitationsAccept"]}},"/mcp/health":{"get":{"operationId":"McpController_health","parameters":[],"responses":{"200":{"description":""}},"tags":["Mcp"]}},"/.well-known/oauth-protected-resource":{"get":{"operationId":"McpController_protectedResourceMetadata","parameters":[],"responses":{"200":{"description":""}},"tags":["Mcp"]}},"/.well-known/oauth-authorization-server":{"get":{"operationId":"McpController_authorizationServerMetadata","parameters":[],"responses":{"200":{"description":""}},"tags":["Mcp"]}},"/.well-known/openid-configuration":{"get":{"operationId":"McpController_openidConfiguration","parameters":[],"responses":{"200":{"description":""}},"tags":["Mcp"]}},"/.well-known/openai-apps-challenge":{"get":{"operationId":"McpController_openaiAppsChallenge","parameters":[],"responses":{"200":{"description":""}},"tags":["Mcp"]}},"/.well-known/mcp/server-card.json":{"get":{"operationId":"McpController_serverCard","parameters":[],"responses":{"200":{"description":""}},"tags":["Mcp"]}},"/mcp":{"post":{"operationId":"McpController_handle","parameters":[],"responses":{"201":{"description":""}},"tags":["Mcp"]},"get":{"operationId":"McpController_getMcp","parameters":[],"responses":{"200":{"description":""}},"tags":["Mcp"]},"delete":{"operationId":"McpController_deleteMcp","parameters":[],"responses":{"200":{"description":""}},"tags":["Mcp"]}}},"info":{"title":"Brein API","description":"REST API for the Brein context, knowledge, and collections platform.","version":"1.0","contact":{}},"tags":[],"servers":[{"url":"https://api.trybrein.com","description":"Production"}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"},"apiKey":{"type":"apiKey","in":"header","name":"X-API-Key"}},"schemas":{"CreateRepoDto":{"type":"object","properties":{}},"RetrieveDto":{"type":"object","properties":{}},"CreateTopicDto":{"type":"object","properties":{}},"ShareNoteDto":{"type":"object","properties":{}},"OpenSearchDto":{"type":"object","properties":{}},"ReviseCriterionDto":{"type":"object","properties":{}},"PriceRunDto":{"type":"object","properties":{}},"GrantCreditsDto":{"type":"object","properties":{}},"EnrichContactsDto":{"type":"object","properties":{}},"UnlockContactsDto":{"type":"object","properties":{}},"CreateAreaDto":{"type":"object","properties":{}},"UpdateAreaDto":{"type":"object","properties":{}},"CheckoutSessionDto":{"type":"object","properties":{}},"CreateBillingOfferDto":{"type":"object","properties":{}},"EnterprisePlanDto":{"type":"object","properties":{}},"CreateCollectionDto":{"type":"object","properties":{}},"UpdateCollectionDto":{"type":"object","properties":{}},"SetPresentationDto":{"type":"object","properties":{}},"CreateRecordDto":{"type":"object","properties":{}},"QueryRecordsDto":{"type":"object","properties":{}},"AggregateRecordsDto":{"type":"object","properties":{}},"UpdateRecordDto":{"type":"object","properties":{}},"RecordOutcomeDto":{"type":"object","properties":{}},"UpsertEntityDto":{"type":"object","properties":{}},"SupplierSearchDto":{"type":"object","properties":{"query":{"type":"string","description":"Free text over names, activity, industry codes, products and categories."},"query_mode":{"type":"string","enum":["auto","exact_phrase","all_terms","any_terms"],"default":"auto"},"state":{"type":"string","description":"State name (Spanish) or ISO 3166-2:MX code. Normalized before matching; an unresolvable value is refused rather than guessed."},"municipality":{"type":"string","description":"Municipality, as the publisher spells it. Only narrows an already-stated state."},"observed_kind":{"type":"string","enum":["company","establishment"],"description":"company and establishment are different objects and are never counted together."},"require_contact":{"type":"boolean","description":"Only observations whose published row carried an exhibitable contact. False never means the organization has none."},"contact_kind":{"type":"string","enum":["phone","mobile","email","whatsapp","website"]},"source_slugs":{"type":"array","items":{"type":"string"}},"scian_codes":{"description":"Exact industry codes (SCIAN). The one supplier filter that is a real equality.","type":"array","items":{"type":"string"}},"rfc":{"type":"string","description":"Strong identity, structurally validated like supplier_rfc/rfc elsewhere. Only matches observations from a source that publishes an RFC: today that is sat-padron-exportadores, whose source_record_id embeds it (importadores:{rfc}:general, importadores-sectores-especificos:{rfc}:{sector}, exportadores-sectorial:{rfc}:{sector}, suspendidos:{rfc}:{date}:{fraction}). A source that never publishes RFC (denue, cofepris-licencias-farmacias, clues-salud, …) can never match this filter, however well-formed the value is."},"limit":{"type":"number","minimum":1,"maximum":50,"default":20},"cursor":{"type":"string","description":"Opaque keyset cursor from a previous page. Bound to the contract version, the corpus basis and the exact filters: changing a filter returns invalid_cursor, and a corpus change returns cursor_stale."},"max_bytes":{"type":"number","minimum":1024,"maximum":262144,"description":"Response byte budget. Bounds the page in BYTES as well as in rows, so the response may carry FEWER rows than `limit` — always with hasMore and the cursor that continues exactly where it stopped. Clamped server-side into [1 KiB, 256 KiB]: it can only ever shrink a page, never widen one. A transport bound, not a filter — it is not part of what the cursor is bound to."}}},"SupplierCountDto":{"type":"object","properties":{"query":{"type":"string","description":"Free text over names, activity, industry codes, products and categories."},"query_mode":{"type":"string","enum":["auto","exact_phrase","all_terms","any_terms"],"default":"auto"},"state":{"type":"string","description":"State name (Spanish) or ISO 3166-2:MX code. Normalized before matching; an unresolvable value is refused rather than guessed."},"municipality":{"type":"string","description":"Municipality, as the publisher spells it. Only narrows an already-stated state."},"observed_kind":{"type":"string","enum":["company","establishment"],"description":"company and establishment are different objects and are never counted together."},"require_contact":{"type":"boolean","description":"Only rows whose published record carried an exhibitable contact. False never means the organization has none."},"contact_kind":{"type":"string","enum":["phone","mobile","email","whatsapp","website"]},"source_slugs":{"type":"array","items":{"type":"string"}},"scian_codes":{"description":"Exact industry codes (SCIAN). The one supplier filter that is a real equality.","type":"array","items":{"type":"string"}},"rfc":{"type":"string","description":"Strong identity, structurally validated like supplier_rfc/rfc elsewhere. Matches only the small part of the corpus where an RFC was published at all."}}},"SegmentDto":{"type":"object","properties":{"id":{"type":"string"},"query":{"type":"string"}},"required":["id","query"]},"GeographyDto":{"type":"object","properties":{"id":{"type":"string"},"state":{"type":"string"}},"required":["id","state"]},"CompareSegmentsDto":{"type":"object","properties":{"segments":{"type":"array","items":{"$ref":"#/components/schemas/SegmentDto"}},"geographies":{"type":"array","items":{"$ref":"#/components/schemas/GeographyDto"}},"observed_kind":{"type":"string","enum":["company","establishment"]},"contact_breakdown":{"type":"boolean"}},"required":["segments","geographies","observed_kind"]},"OpportunitySearchDto":{"type":"object","properties":{"query":{"type":"string","description":"Full-text search over the published title and description: stemmed and accent-insensitive, so \"purificacion\" finds \"purificación\" and \"bombas\" finds \"bomba\". A single token carrying punctuation or digits is matched instead as a bounded literal substring (minimum three characters), and every result states which mechanism matched it. A lexical match, never a relevance judgement."},"query_mode":{"type":"string","enum":["auto","exact_phrase","all_terms","any_terms"],"default":"auto"},"strategy":{"type":"string","enum":["hybrid","lexical"],"default":"hybrid","description":"hybrid applies the small versioned procurement vocabulary; lexical uses only the supplied words."},"buyer":{"type":"string"},"state":{"type":"string","description":"State name or ISO code; matched through the warehouse normalizer."},"actionability":{"type":"array","description":"Read-time actionability. Explicit rows use participation states plus proposal_deadline_passed; pre-contract rows retain the four legacy values. Always an array.","items":{"type":"string","enum":["closed_at_load","open_but_apertura_passed","open_with_apertura_ahead","open_without_published_apertura","accepting_proposals","proposal_deadline_passed","in_process_not_actionable","closed","unknown"]}},"participation_status":{"type":"array","description":"Explicit participation state derived from publisher evidence. unknown is explicit and never actionable; legacy NULL rows are excluded by this filter.","items":{"type":"string","enum":["accepting_proposals","in_process_not_actionable","closed","unknown"]}},"source_slugs":{"description":"Publisher source slugs, exact. Accepted on this canonical route; NOT part of the model-facing surface.","type":"array","items":{"type":"string"}},"status":{"description":"Publisher status strings, exact. Weaker than actionability and spelled differently by each publisher.","type":"array","items":{"type":"string"}},"procedure_type":{"description":"Exact procedure types. Source-dependent: check the value against the source you are asking about.","type":"array","items":{"type":"string"}},"contracting_type":{"description":"Exact contracting types. Source-dependent.","type":"array","items":{"type":"string"}},"announcement_character":{"description":"Exact announcement characters. Source-dependent.","type":"array","items":{"type":"string"}},"procedure_number":{"type":"string","description":"Exact published procedure identifier — the only exact link from an opportunity to its awards."},"published_from":{"type":"string","description":"ISO date. Filters published_date — when the procedure was published, not a limit for anything."},"published_to":{"type":"string","description":"ISO date."},"opening_from":{"type":"string","description":"ISO date. Filters opening_date — a scheduled act, not a deadline."},"opening_to":{"type":"string","description":"ISO date."},"limit":{"type":"number","minimum":1,"maximum":50,"default":20},"cursor":{"type":"string","description":"Opaque keyset cursor from a previous page. Bound to the contract version, the corpus basis and the exact filters: changing a filter returns invalid_cursor, and a corpus change returns cursor_stale."}}},"AwardSearchDto":{"type":"object","properties":{"query":{"type":"string"},"query_mode":{"type":"string","enum":["auto","exact_phrase","all_terms","any_terms"],"default":"auto"},"supplier_rfc":{"type":"string","description":"Strong supplier identity. When given, supplier_name is ignored rather than ANDed."},"supplier_name":{"type":"string","description":"APPROXIMATE identity. Returns candidates with their RFCs; never a demonstrated match."},"buyer":{"type":"string"},"source_slugs":{"description":"Publisher source slugs, exact. Accepted on this canonical route; NOT part of the model-facing surface.","type":"array","items":{"type":"string"}},"contracting_type":{"description":"Exact contracting types. Source-dependent.","type":"array","items":{"type":"string"}},"procedure_type":{"description":"Exact procedure types. Source-dependent and higher cardinality than the opportunity equivalent.","type":"array","items":{"type":"string"}},"contract_status":{"description":"Exact contract statuses. NULLABLE and source-dependent — filtering drops every row whose publisher left it blank, and no status records execution or fulfilment.","type":"array","items":{"type":"string"}},"supplier_country":{"description":"Exact supplier countries, as the publisher wrote them.","type":"array","items":{"type":"string"}},"supplier_size":{"description":"Exact supplier sizes. A publisher classification recorded at award time, not a current fact about the company.","type":"array","items":{"type":"string"}},"is_mipyme":{"type":"boolean","description":"NULLABLE in the corpus: a row where the publisher recorded nothing is dropped by either value."},"procedure_number":{"type":"string","description":"Exact published procedure identifier — the exact link back to the opportunity."},"contract_number":{"type":"string","description":"Exact published contract identifier."},"cog_partidas":{"description":"SHCP \"partida específica\" codes (Clasificador por Objeto del Gasto), 1-20 five-digit codes the BUYER assigned — official, deterministic, no label catalogue. Matched by OVERLAP: a mixed contract carries several and matches on any one. A malformed code (not five digits) is refused, structurally validated in the service.","type":"array","items":{"type":"string"}},"from_date":{"type":"string","description":"ISO date on award_date."},"to_date":{"type":"string","description":"ISO date on award_date."},"currency":{"type":"string","enum":["MXN","USD","EUR","CAD"]},"amount_scope":{"type":"string","enum":["supplier_contract","award_group_published_total"]},"min_amount":{"type":"number","description":"Requires currency AND amount_scope — an amount without both is not a quantity."},"max_amount":{"type":"number","description":"Requires currency AND amount_scope."},"limit":{"type":"number","minimum":1,"maximum":50,"default":20},"cursor":{"type":"string","description":"Opaque keyset cursor from a previous page. Bound to the contract version, the corpus basis and the exact filters: changing a filter returns invalid_cursor, and a corpus change returns cursor_stale."}}},"AwardHistoryDto":{"type":"object","properties":{"supplier_rfc":{"type":"string","description":"Strong identity. A history keyed on a name is a history of a string — see supplier_name_is_approximate."},"currency":{"type":"string","enum":["MXN","USD","EUR","CAD"],"description":"Mandatory. A total spanning currencies is not a quantity."},"amount_scope":{"type":"string","enum":["supplier_contract","award_group_published_total"],"description":"Mandatory. A contract amount and a group total are different quantities."},"from_date":{"type":"string"},"to_date":{"type":"string"},"limit":{"type":"number","minimum":1,"maximum":50,"default":20,"description":"Pages the contracts list. buyers stays a bounded rollup, not paginated."},"cursor":{"type":"string","description":"Opaque keyset cursor from a previous page. Bound to the contract version, the corpus basis and the exact filters: changing a filter returns invalid_cursor, and a corpus change returns cursor_stale."}},"required":["supplier_rfc","currency","amount_scope"]},"AwardComparePeriodDto":{"type":"object","properties":{"from_date":{"type":"string","description":"ISO date, inclusive lower bound of period A."},"to_date":{"type":"string","description":"ISO date, inclusive upper bound of period A."}},"required":["from_date","to_date"]},"AwardAggregateDto":{"type":"object","properties":{"currency":{"type":"string","enum":["MXN","USD","EUR","CAD"],"description":"Mandatory."},"amount_scope":{"type":"string","enum":["supplier_contract","award_group_published_total"],"description":"Mandatory."},"query_mode":{"type":"string","enum":["auto","exact_phrase","all_terms","any_terms"],"default":"auto"},"group_by":{"type":"array","description":"Allowlisted dimensions, at most three. supplier_name is deliberately absent — grouping by approximate identity merges unrelated organizations.","items":{"type":"string","enum":["supplier_rfc","buyer_name","buyer_acronym","procedure_type","contracting_type","supplier_size","award_month","award_year","cog_partida","cog_capitulo"]}},"order_by":{"type":"string","enum":["total_amount","award_count"],"default":"total_amount","description":"Measure used to rank groups. Use award_count for \"most contracts won\" and total_amount for \"largest awarded amount\"."},"query":{"type":"string","description":"Optional thematic population over award title and description. Full-text by default; a lexical match is not a category identity."},"supplier_rfc":{"type":"string"},"buyer":{"type":"string"},"from_date":{"type":"string"},"to_date":{"type":"string"},"procedure_type":{"description":"Exact procedure types. Source-dependent.","type":"array","items":{"type":"string"}},"contracting_type":{"description":"Exact contracting types. Source-dependent.","type":"array","items":{"type":"string"}},"limit":{"type":"number","minimum":1,"maximum":200,"default":50},"cursor":{"type":"string","description":"Opaque keyset cursor from a previous page. Bound to the contract version, the corpus basis and the exact filters: changing a filter returns invalid_cursor, and a corpus change returns cursor_stale."},"compare_period":{"description":"Optional second date range (period A) to aggregate the SAME grouped population against, side by side with from_date/to_date (period B). Every row then carries period_a/period_b measures, delta_amount and delta_pct — delta_pct is null (never Infinity) when period_a's total is zero. Groups are still ordered by period B's measure.","allOf":[{"$ref":"#/components/schemas/AwardComparePeriodDto"}]}},"required":["currency","amount_scope","group_by"]},"RiskScreenDto":{"type":"object","properties":{"rfcs":{"description":"1–50 RFCs to screen for published adverse marks in ONE call, structurally validated like rfc elsewhere. More than 50 is refused with batch_too_large (recovery: fix_arguments) rather than silently truncated.","type":"array","items":{"type":"string"}}},"required":["rfcs"]},"RiskSearchDto":{"type":"object","properties":{"rfc":{"type":"string","description":"Strong identity. When given, entity_name is ignored rather than ANDed."},"entity_name":{"type":"string","description":"APPROXIMATE identity. Returns candidates with their RFCs; never a demonstrated match."},"mark_kind":{"type":"string","enum":["efos","sancion"],"description":"efos (a barred-supplier listing) or sancion (a sanción/inhabilitación). An unknown value is refused with the allowed list."},"source_slugs":{"description":"Publisher source slugs, exact. Accepted on this canonical route; NOT part of the model-facing surface.","type":"array","items":{"type":"string"}},"from_date":{"type":"string","description":"ISO date. Filters published_date — when this mark was published, not a verdict date."},"to_date":{"type":"string","description":"ISO date."},"limit":{"type":"number","minimum":1,"maximum":50,"default":20},"cursor":{"type":"string","description":"Opaque keyset cursor from a previous page. Bound to the contract version, the corpus basis and the exact filters: changing a filter returns invalid_cursor, and a corpus change returns cursor_stale."}}},"PermitSearchDto":{"type":"object","properties":{"holder_rfc":{"type":"string","description":"Strong identity where published — rare: most sources in this relation publish no RFC. When given, holder_name is ignored."},"holder_name":{"type":"string","description":"APPROXIMATE identity. Returns candidates; never a demonstrated match."},"permit_kind":{"type":"string","description":"The publisher’s own regulatory category (modality). Exact and source-scoped."},"state":{"type":"string","description":"State name (Spanish) or ISO 3166-2:MX code. Normalized before matching; an unresolvable value is refused rather than guessed."},"source_slugs":{"description":"Publisher source slugs, exact. Accepted on this canonical route; NOT part of the model-facing surface.","type":"array","items":{"type":"string"}},"from_date":{"type":"string","description":"ISO date. Filters granted_date — when the permit was granted, not when it became operational."},"to_date":{"type":"string","description":"ISO date."},"limit":{"type":"number","minimum":1,"maximum":50,"default":20},"cursor":{"type":"string","description":"Opaque keyset cursor from a previous page. Bound to the contract version, the corpus basis and the exact filters: changing a filter returns invalid_cursor, and a corpus change returns cursor_stale."}}},"IntelligenceIdentityDto":{"type":"object","properties":{"kind":{"type":"string","enum":["rfc","observation"],"description":"rfc is a government identity; observation is one published row, never a demonstrated organization."},"value":{"type":"string","description":"The RFC, or the platform-issued record_fingerprint for an observation."}},"required":["kind","value"]},"IntelligenceRowDto":{"type":"object","properties":{"row_id":{"type":"string","description":"The row handle the explorer paged with — echoed back per row in the plan."},"product":{"type":"string","enum":["companies","registries","opportunities","procurement"]},"identity":{"$ref":"#/components/schemas/IntelligenceIdentityDto"},"name":{"type":"string","description":"What the row is called on screen. Reported back per row so a result list is readable."},"record_ref":{"type":"string","description":"The opaque record reference this row carried, stored as provenance. Never a publisher slug."},"record_rfc_attestation":{"type":"string","description":"Server-issued proof binding this projected record to its RFC."},"fields":{"type":"object","description":"The row values, keyed by the contract’s field ids. Unlisted keys are ignored, never written."}},"required":["row_id","product","identity","name","fields"]},"IntelligencePromoteDto":{"type":"object","properties":{"collection_id":{"type":"string"},"rows":{"description":"1-50 selected rows. The explorer selects only rows it has loaded, so this is never a whole-market selection.","type":"array","items":{"$ref":"#/components/schemas/IntelligenceRowDto"}},"idempotency_key":{"type":"string","description":"Legacy client retry correlation key. Replay safety is provided by the published identity key, not by this value."},"conflict_policy":{"type":"string","enum":["skip","update_blank_fields"],"default":"skip"}},"required":["collection_id","rows"]},"CreateCommentDto":{"type":"object","properties":{}},"UpdateCommentDto":{"type":"object","properties":{}},"CreateTagDto":{"type":"object","properties":{}},"UpdateTagDto":{"type":"object","properties":{}},"CreateThreadDto":{"type":"object","properties":{}},"PatchThreadDto":{"type":"object","properties":{}},"PostMessageDto":{"type":"object","properties":{}},"FeedbackDto":{"type":"object","properties":{}},"ChatPromoteDto":{"type":"object","properties":{}},"CreateInvestigationDto":{"type":"object","properties":{}},"AnswerClarificationsDto":{"type":"object","properties":{}},"PromoteDto":{"type":"object","properties":{}},"UpdateCommercialSetupDto":{"type":"object","properties":{}}}}}