{"openapi":"3.1.0","info":{"title":"EarShots Workspace API","version":"1.0.0-preview","description":"Workspace-bound stored intelligence reads and outbound webhook subscriptions. Preview release, not yet production verified. Explicitly scoped QA integration setup, bounded reporting and browser-approved Linear issue creation are available when configured. AI generation and publication remain unsupported. Updated October 27, 2026."},"servers":[{"url":"https://earshots.dev/api/v1","description":"Canonical entry, follows a same-origin 307 redirect. Production verification pending."},{"url":"https://earshots.dev/api/public/v1","description":"Direct external endpoint"}],"security":[{"workspaceApiKey":[]}],"paths":{"/integrations":{"get":{"operationId":"listIntegrations","summary":"List safe account metadata and catalog availability","x-required-scope":"integrations:read","description":"QA adapters: Analytics, Search Console and Linear. Setup and Linear approval require a human in the EarShots browser flow. Workspace comes from the API key. Existing keys do not gain these scopes automatically.","responses":{"200":{"description":"Safe integration data. Provider credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object"}}}}}},"202":{"description":"Safe integration data. Provider credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object"}}}}}},"400":{"description":"Invalid parameters"},"401":{"description":"Invalid or revoked key"},"403":{"description":"Current role, plan or explicit scope required"},"404":{"description":"Resource unavailable in this workspace"},"409":{"description":"Approval, configuration or fresh preview required"},"429":{"description":"Rate limit"},"503":{"description":"Temporarily unavailable"}}}},"/integrations/connection-requests":{"post":{"operationId":"requestIntegrationConnection","summary":"Request a browser setup link","x-required-scope":"integrations:connect","description":"QA adapters: Analytics, Search Console and Linear. Setup and Linear approval require a human in the EarShots browser flow. Workspace comes from the API key. Existing keys do not gain these scopes automatically.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["provider"],"properties":{"provider":{"type":"string","enum":["google-analytics-4","google-search-console","linear"]}}}}}},"responses":{"200":{"description":"Safe integration data. Provider credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object"}}}}}},"202":{"description":"Safe integration data. Provider credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object"}}}}}},"400":{"description":"Invalid parameters"},"401":{"description":"Invalid or revoked key"},"403":{"description":"Current role, plan or explicit scope required"},"404":{"description":"Resource unavailable in this workspace"},"409":{"description":"Approval, configuration or fresh preview required"},"429":{"description":"Rate limit"},"503":{"description":"Temporarily unavailable"}}}},"/integrations/connection-requests/{id}":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"get":{"operationId":"integrationConnectionStatus","summary":"Read connection request progress","x-required-scope":"integrations:read","description":"QA adapters: Analytics, Search Console and Linear. Setup and Linear approval require a human in the EarShots browser flow. Workspace comes from the API key. Existing keys do not gain these scopes automatically.","responses":{"200":{"description":"Safe integration data. Provider credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object"}}}}}},"202":{"description":"Safe integration data. Provider credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object"}}}}}},"400":{"description":"Invalid parameters"},"401":{"description":"Invalid or revoked key"},"403":{"description":"Current role, plan or explicit scope required"},"404":{"description":"Resource unavailable in this workspace"},"409":{"description":"Approval, configuration or fresh preview required"},"429":{"description":"Rate limit"},"503":{"description":"Temporarily unavailable"}}}},"/integrations/{id}/resources":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"post":{"operationId":"integrationResources","summary":"List accessible resource metadata","x-required-scope":"integrations:read","description":"QA adapters: Analytics, Search Console and Linear. Setup and Linear approval require a human in the EarShots browser flow. Workspace comes from the API key. Existing keys do not gain these scopes automatically.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":[],"properties":{"cursor":{"type":"string","maxLength":2000}}}}}},"responses":{"200":{"description":"Safe integration data. Provider credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object"}}}}}},"202":{"description":"Safe integration data. Provider credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object"}}}}}},"400":{"description":"Invalid parameters"},"401":{"description":"Invalid or revoked key"},"403":{"description":"Current role, plan or explicit scope required"},"404":{"description":"Resource unavailable in this workspace"},"409":{"description":"Approval, configuration or fresh preview required"},"429":{"description":"Rate limit"},"503":{"description":"Temporarily unavailable"}}}},"/integrations/{id}/resource":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"post":{"operationId":"selectIntegrationResource","summary":"Select an accessible team or property","x-required-scope":"integrations:manage","description":"QA adapters: Analytics, Search Console and Linear. Setup and Linear approval require a human in the EarShots browser flow. Workspace comes from the API key. Existing keys do not gain these scopes automatically.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["resourceId"],"properties":{"resourceId":{"type":"string","maxLength":500}}}}}},"responses":{"200":{"description":"Safe integration data. Provider credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object"}}}}}},"202":{"description":"Safe integration data. Provider credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object"}}}}}},"400":{"description":"Invalid parameters"},"401":{"description":"Invalid or revoked key"},"403":{"description":"Current role, plan or explicit scope required"},"404":{"description":"Resource unavailable in this workspace"},"409":{"description":"Approval, configuration or fresh preview required"},"429":{"description":"Rate limit"},"503":{"description":"Temporarily unavailable"}}}},"/integrations/{id}/disconnect":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"post":{"operationId":"disconnectIntegration","summary":"Disable new work and queue remote revocation","x-required-scope":"integrations:manage","description":"QA adapters: Analytics, Search Console and Linear. Setup and Linear approval require a human in the EarShots browser flow. Workspace comes from the API key. Existing keys do not gain these scopes automatically.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":[],"properties":{}}}}},"responses":{"200":{"description":"Safe integration data. Provider credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object"}}}}}},"202":{"description":"Safe integration data. Provider credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object"}}}}}},"400":{"description":"Invalid parameters"},"401":{"description":"Invalid or revoked key"},"403":{"description":"Current role, plan or explicit scope required"},"404":{"description":"Resource unavailable in this workspace"},"409":{"description":"Approval, configuration or fresh preview required"},"429":{"description":"Rate limit"},"503":{"description":"Temporarily unavailable"}}}},"/integrations/operation-previews":{"post":{"operationId":"previewIntegrationOperation","summary":"Save an exact report or ticket preview","x-required-scope":"integrations:execute","description":"QA adapters: Analytics, Search Console and Linear. Setup and Linear approval require a human in the EarShots browser flow. Workspace comes from the API key. Existing keys do not gain these scopes automatically.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["integrationId"],"properties":{"integrationId":{"type":"string","format":"uuid"},"mentionId":{"type":"string","format":"uuid"},"report":{"type":"object","additionalProperties":false,"required":["startDate","endDate"],"properties":{"startDate":{"type":"string","format":"date"},"endDate":{"type":"string","format":"date"}}}}}}}},"responses":{"200":{"description":"Safe integration data. Provider credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object"}}}}}},"202":{"description":"Safe integration data. Provider credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object"}}}}}},"400":{"description":"Invalid parameters"},"401":{"description":"Invalid or revoked key"},"403":{"description":"Current role, plan or explicit scope required"},"404":{"description":"Resource unavailable in this workspace"},"409":{"description":"Approval, configuration or fresh preview required"},"429":{"description":"Rate limit"},"503":{"description":"Temporarily unavailable"}}}},"/integrations/operations":{"post":{"operationId":"executeIntegrationOperation","summary":"Queue an exact preview with a stable idempotency key","x-required-scope":"integrations:execute","description":"QA adapters: Analytics, Search Console and Linear. Setup and Linear approval require a human in the EarShots browser flow. Workspace comes from the API key. Existing keys do not gain these scopes automatically.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["previewId","idempotencyKey"],"properties":{"previewId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","format":"uuid"}}}}}},"responses":{"200":{"description":"Safe integration data. Provider credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object"}}}}}},"202":{"description":"Safe integration data. Provider credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object"}}}}}},"400":{"description":"Invalid parameters"},"401":{"description":"Invalid or revoked key"},"403":{"description":"Current role, plan or explicit scope required"},"404":{"description":"Resource unavailable in this workspace"},"409":{"description":"Approval, configuration or fresh preview required"},"429":{"description":"Rate limit"},"503":{"description":"Temporarily unavailable"}}}},"/integrations/operations/{id}":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"get":{"operationId":"integrationOperationStatus","summary":"Read operation state and provider result","x-required-scope":"integrations:read","description":"QA adapters: Analytics, Search Console and Linear. Setup and Linear approval require a human in the EarShots browser flow. Workspace comes from the API key. Existing keys do not gain these scopes automatically.","responses":{"200":{"description":"Safe integration data. Provider credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object"}}}}}},"202":{"description":"Safe integration data. Provider credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object"}}}}}},"400":{"description":"Invalid parameters"},"401":{"description":"Invalid or revoked key"},"403":{"description":"Current role, plan or explicit scope required"},"404":{"description":"Resource unavailable in this workspace"},"409":{"description":"Approval, configuration or fresh preview required"},"429":{"description":"Rate limit"},"503":{"description":"Temporarily unavailable"}}}},"/workspace":{"get":{"operationId":"getWorkspace","summary":"Read key-bound workspace metadata","x-required-scope":"workspace:read","description":"No query parameters accepted.","responses":{"200":{"description":"Workspace metadata","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"product_name":{"type":"string"},"plan":{"type":"string"}}}}}}}},"400":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/contacts":{"get":{"operationId":"list_contacts","summary":"Read contacts","description":"Saved professional contacts with exact profile URLs and separately verified work email when available. Dates filter created_at. No enrichment or credit spending. Inclusive UTC date filters apply to posted_at for mentions/Context Buzz, day for rollups, and created_at for other resources. UUID feeds order by id descending, not chronology. Follow next_cursor until null. Empty data is a successful read, not an error. Unknown and duplicate query parameters are rejected.","x-required-scope":"contacts:read","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","description":"Use the previous response's meta.next_cursor unchanged.","schema":{"type":"string","format":"uuid"}},{"name":"since","in":"query","description":"UTC date. Defaults to 30 days before today. Maximum 180 inclusive days.","schema":{"type":"string","format":"date"}},{"name":"until","in":"query","description":"Inclusive UTC date. Defaults to today.","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Bounded stored records","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"profile_url":{"type":"string"},"network":{"type":"string"},"full_name":{"type":["string","null"]},"title":{"type":["string","null"]},"company_name":{"type":["string","null"]},"company_domain":{"type":["string","null"]},"location":{"type":["string","null"]},"match_confidence":{"type":["string","null"]},"work_email":{"type":["string","null"]},"email_status":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}},"meta":{"$ref":"#/components/schemas/Page"}}}}}},"400":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/mentions":{"get":{"operationId":"list_mentions","summary":"Read mentions","description":"Nonarchived, deduplicated source posts. Body excerpts are capped at 12,000 characters. Inclusive UTC date filters apply to posted_at for mentions/Context Buzz, day for rollups, and created_at for other resources. UUID feeds order by id descending, not chronology. Follow next_cursor until null. Empty data is a successful read, not an error. Unknown and duplicate query parameters are rejected.","x-required-scope":"mentions:read","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","description":"Use the previous response's meta.next_cursor unchanged.","schema":{"type":"string","format":"uuid"}},{"name":"since","in":"query","description":"UTC date. Defaults to 30 days before today. Maximum 180 inclusive days.","schema":{"type":"string","format":"date"}},{"name":"until","in":"query","description":"Inclusive UTC date. Defaults to today.","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Bounded stored records","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"source_kind":{"type":"string"},"url":{"type":["string","null"]},"title":{"type":"string"},"body":{"type":["string","null"]},"posted_at":{"type":["string","null"],"format":"date-time"},"bucket":{"type":"string"},"urgent":{"type":"boolean"},"status":{"type":"string"},"sentiment":{"type":["number","null"]}}}},"meta":{"$ref":"#/components/schemas/Page"}}}}}},"400":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/sentiment":{"get":{"operationId":"list_sentiment","summary":"Read sentiment","description":"Daily listening totals from stored rollups. sentiment_sum / scored gives the average when scored is greater than zero. Inclusive UTC date filters apply to posted_at for mentions/Context Buzz, day for rollups, and created_at for other resources. UUID feeds order by id descending, not chronology. Follow next_cursor until null. Empty data is a successful read, not an error. Unknown and duplicate query parameters are rejected.","x-required-scope":"sentiment:read","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","description":"Use the previous response's meta.next_cursor unchanged.","schema":{"type":"string","format":"date"}},{"name":"since","in":"query","description":"UTC date. Defaults to 30 days before today. Maximum 180 inclusive days.","schema":{"type":"string","format":"date"}},{"name":"until","in":"query","description":"Inclusive UTC date. Defaults to today.","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Bounded stored records","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"date"},"posts":{"type":"number"},"scored":{"type":"number"},"sentiment_sum":{"type":"number"},"refreshed_at":{"type":"string","format":"date-time"}}}},"meta":{"$ref":"#/components/schemas/Page"}}}}}},"400":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/ground-truth":{"get":{"operationId":"list_ground_truth","summary":"Read ground-truth","description":"Stored findings with verdict, severity and claim references. Historical review findings may appear. Findings are not automatic fact verification. Inclusive UTC date filters apply to posted_at for mentions/Context Buzz, day for rollups, and created_at for other resources. UUID feeds order by id descending, not chronology. Follow next_cursor until null. Empty data is a successful read, not an error. Unknown and duplicate query parameters are rejected.","x-required-scope":"ground-truth:read","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","description":"Use the previous response's meta.next_cursor unchanged.","schema":{"type":"string","format":"uuid"}},{"name":"since","in":"query","description":"UTC date. Defaults to 30 days before today. Maximum 180 inclusive days.","schema":{"type":"string","format":"date"}},{"name":"until","in":"query","description":"Inclusive UTC date. Defaults to today.","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Bounded stored records","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"verdict":{"type":"string"},"severity":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"claim_ids":{"type":"array","items":{}},"root_cause_url":{"type":["string","null"]},"fix_type":{"type":["string","null"]},"status":{"type":"string"},"created_at":{"type":"string","format":"date-time"}}}},"meta":{"$ref":"#/components/schemas/Page"}}}}}},"400":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/ground-truth-claims":{"get":{"operationId":"list_ground_truth_claims","summary":"Read ground-truth-claims","description":"Observed claims with literal evidence spans and source URLs. Observation does not establish accuracy. Inclusive UTC date filters apply to posted_at for mentions/Context Buzz, day for rollups, and created_at for other resources. UUID feeds order by id descending, not chronology. Follow next_cursor until null. Empty data is a successful read, not an error. Unknown and duplicate query parameters are rejected.","x-required-scope":"ground-truth:read","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","description":"Use the previous response's meta.next_cursor unchanged.","schema":{"type":"string","format":"uuid"}},{"name":"since","in":"query","description":"UTC date. Defaults to 30 days before today. Maximum 180 inclusive days.","schema":{"type":"string","format":"date"}},{"name":"until","in":"query","description":"Inclusive UTC date. Defaults to today.","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Bounded stored records","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"statement":{"type":"string"},"span_text":{"type":["string","null"]},"source_url":{"type":"string"},"observed_at":{"type":"string","format":"date-time"},"category":{"type":"string"},"layer":{"type":"string"}}}},"meta":{"$ref":"#/components/schemas/Page"}}}}}},"400":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/brain":{"get":{"operationId":"list_brain","summary":"Read brain","description":"Current verified Knowledge Hub nodes only. Unconfirmed candidates are excluded. Inclusive UTC date filters apply to posted_at for mentions/Context Buzz, day for rollups, and created_at for other resources. UUID feeds order by id descending, not chronology. Follow next_cursor until null. Empty data is a successful read, not an error. Unknown and duplicate query parameters are rejected.","x-required-scope":"brain:read","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","description":"Use the previous response's meta.next_cursor unchanged.","schema":{"type":"string","format":"uuid"}},{"name":"since","in":"query","description":"UTC date. Defaults to 30 days before today. Maximum 180 inclusive days.","schema":{"type":"string","format":"date"}},{"name":"until","in":"query","description":"Inclusive UTC date. Defaults to today.","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Bounded stored records","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"node_type":{"type":"string"},"name":{"type":"string"},"body":{"type":"string"},"version":{"type":"number"},"status":{"type":"string"},"confidence":{"type":"number"},"last_verified_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"}}}},"meta":{"$ref":"#/components/schemas/Page"}}}}}},"400":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/aeo":{"get":{"operationId":"list_aeo","summary":"Read aeo","description":"Daily stored AI Search answer, capture, mention and citation counts. No search or generation is triggered. Inclusive UTC date filters apply to posted_at for mentions/Context Buzz, day for rollups, and created_at for other resources. UUID feeds order by id descending, not chronology. Follow next_cursor until null. Empty data is a successful read, not an error. Unknown and duplicate query parameters are rejected.","x-required-scope":"aeo:read","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","description":"Use the previous response's meta.next_cursor unchanged.","schema":{"type":"string","format":"date"}},{"name":"since","in":"query","description":"UTC date. Defaults to 30 days before today. Maximum 180 inclusive days.","schema":{"type":"string","format":"date"}},{"name":"until","in":"query","description":"Inclusive UTC date. Defaults to today.","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Bounded stored records","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"date"},"answers":{"type":"number"},"captured_answers":{"type":"number"},"mentions":{"type":"number"},"citations":{"type":"number"},"refreshed_at":{"type":"string","format":"date-time"}}}},"meta":{"$ref":"#/components/schemas/Page"}}}}}},"400":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/competitors":{"get":{"operationId":"list_competitors","summary":"Read competitors","description":"Tracked competitor names, products and stored summaries. No provider diagnostics. Inclusive UTC date filters apply to posted_at for mentions/Context Buzz, day for rollups, and created_at for other resources. UUID feeds order by id descending, not chronology. Follow next_cursor until null. Empty data is a successful read, not an error. Unknown and duplicate query parameters are rejected.","x-required-scope":"competitors:read","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","description":"Use the previous response's meta.next_cursor unchanged.","schema":{"type":"string","format":"uuid"}},{"name":"since","in":"query","description":"UTC date. Defaults to 30 days before today. Maximum 180 inclusive days.","schema":{"type":"string","format":"date"}},{"name":"until","in":"query","description":"Inclusive UTC date. Defaults to today.","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Bounded stored records","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"products":{"type":"string"},"summary":{"type":"object"},"summary_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"}}}},"meta":{"$ref":"#/components/schemas/Page"}}}}}},"400":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/competitor-signals":{"get":{"operationId":"list_competitor_signals","summary":"Read competitor-signals","description":"Stored competitor source evidence and sentiment, linked by competitor_id. Inclusive UTC date filters apply to posted_at for mentions/Context Buzz, day for rollups, and created_at for other resources. UUID feeds order by id descending, not chronology. Follow next_cursor until null. Empty data is a successful read, not an error. Unknown and duplicate query parameters are rejected.","x-required-scope":"competitors:read","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","description":"Use the previous response's meta.next_cursor unchanged.","schema":{"type":"string","format":"uuid"}},{"name":"since","in":"query","description":"UTC date. Defaults to 30 days before today. Maximum 180 inclusive days.","schema":{"type":"string","format":"date"}},{"name":"until","in":"query","description":"Inclusive UTC date. Defaults to today.","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Bounded stored records","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"competitor_id":{"type":"string","format":"uuid"},"source_kind":{"type":"string"},"url":{"type":["string","null"]},"title":{"type":"string"},"body":{"type":["string","null"]},"posted_at":{"type":["string","null"],"format":"date-time"},"sentiment":{"type":"string"},"theme":{"type":["string","null"]}}}},"meta":{"$ref":"#/components/schemas/Page"}}}}}},"400":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/context-buzz":{"get":{"operationId":"list_context_buzz","summary":"Read context-buzz","description":"Nonarchived GitHub evidence with usage, blocker and agent-authorship categories. Inclusive UTC date filters apply to posted_at for mentions/Context Buzz, day for rollups, and created_at for other resources. UUID feeds order by id descending, not chronology. Follow next_cursor until null. Empty data is a successful read, not an error. Unknown and duplicate query parameters are rejected.","x-required-scope":"context-buzz:read","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","description":"Use the previous response's meta.next_cursor unchanged.","schema":{"type":"string","format":"uuid"}},{"name":"since","in":"query","description":"UTC date. Defaults to 30 days before today. Maximum 180 inclusive days.","schema":{"type":"string","format":"date"}},{"name":"until","in":"query","description":"Inclusive UTC date. Defaults to today.","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Bounded stored records","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"url":{"type":["string","null"]},"title":{"type":"string"},"body":{"type":["string","null"]},"posted_at":{"type":["string","null"],"format":"date-time"},"usage_bucket":{"type":["string","null"]},"blocker_bucket":{"type":["string","null"]},"agent_authored":{"type":"boolean"}}}},"meta":{"$ref":"#/components/schemas/Page"}}}}}},"400":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/replies":{"get":{"operationId":"list_replies","summary":"Read replies","description":"Saved reply draft text and review state. Reading or saving content does not publish it. Inclusive UTC date filters apply to posted_at for mentions/Context Buzz, day for rollups, and created_at for other resources. UUID feeds order by id descending, not chronology. Follow next_cursor until null. Empty data is a successful read, not an error. Unknown and duplicate query parameters are rejected.","x-required-scope":"replies:read","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","description":"Use the previous response's meta.next_cursor unchanged.","schema":{"type":"string","format":"uuid"}},{"name":"since","in":"query","description":"UTC date. Defaults to 30 days before today. Maximum 180 inclusive days.","schema":{"type":"string","format":"date"}},{"name":"until","in":"query","description":"Inclusive UTC date. Defaults to today.","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Bounded stored records","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"mention_id":{"type":"string","format":"uuid"},"body":{"type":"string"},"state":{"type":"string"},"version":{"type":"number"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}},"meta":{"$ref":"#/components/schemas/Page"}}}}}},"400":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/campaigns":{"get":{"operationId":"list_campaigns","summary":"Read campaigns","description":"Stored campaign activation and progress associated with individual prompt themes. Inclusive UTC date filters apply to posted_at for mentions/Context Buzz, day for rollups, and created_at for other resources. UUID feeds order by id descending, not chronology. Follow next_cursor until null. Empty data is a successful read, not an error. Unknown and duplicate query parameters are rejected.","x-required-scope":"campaigns:read","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","description":"Use the previous response's meta.next_cursor unchanged.","schema":{"type":"string","format":"uuid"}},{"name":"since","in":"query","description":"UTC date. Defaults to 30 days before today. Maximum 180 inclusive days.","schema":{"type":"string","format":"date"}},{"name":"until","in":"query","description":"Inclusive UTC date. Defaults to today.","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Bounded stored records","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"theme_id":{"type":["string","null"],"format":"uuid"},"prompt":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"current_stage":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}},"meta":{"$ref":"#/components/schemas/Page"}}}}}},"400":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/campaign-stages":{"get":{"operationId":"list_campaign_stages","summary":"Read campaign-stages","description":"Stored campaign assets, citations and approval timestamps. No generation or approval operation. Inclusive UTC date filters apply to posted_at for mentions/Context Buzz, day for rollups, and created_at for other resources. UUID feeds order by id descending, not chronology. Follow next_cursor until null. Empty data is a successful read, not an error. Unknown and duplicate query parameters are rejected.","x-required-scope":"campaigns:read","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","description":"Use the previous response's meta.next_cursor unchanged.","schema":{"type":"string","format":"uuid"}},{"name":"since","in":"query","description":"UTC date. Defaults to 30 days before today. Maximum 180 inclusive days.","schema":{"type":"string","format":"date"}},{"name":"until","in":"query","description":"Inclusive UTC date. Defaults to today.","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Bounded stored records","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"campaign_id":{"type":"string","format":"uuid"},"stage_kind":{"type":"string"},"stage_order":{"type":"number"},"status":{"type":"string"},"title":{"type":"string"},"content":{"type":"object"},"citations":{"type":"array","items":{}},"approved_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}},"meta":{"$ref":"#/components/schemas/Page"}}}}}},"400":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks":{"get":{"operationId":"listWebhooks","x-required-scope":"webhooks:read","summary":"List up to 100 webhook subscriptions","responses":{"200":{"description":"Safe metadata without signing secrets","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"url":{"type":"string","format":"uri"},"events":{"type":"array","items":{"type":"string"}},"created_at":{"type":"string","format":"date-time"},"revoked_at":{"type":["string","null"],"format":"date-time"}}}}}}}}},"400":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createWebhook","x-required-scope":"webhooks:write","summary":"Register a signed webhook","description":"Maximum 10 active subscriptions per workspace. Only exact HTTPS hooks.zapier.com, hook.us1.make.com, hook.us2.make.com and hook.eu1.make.com destinations on port 443. No redirects, credentials or fragments. Request body at most 4 KB. Signing secret returned once. Subscriptions stop when their creating API key expires, is revoked or loses manager access.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["url","events"],"properties":{"url":{"type":"string","format":"uri","maxLength":2048},"events":{"type":"array","minItems":1,"maxItems":3,"items":{"type":"string","enum":["mention.updated","campaign.stage.updated","ground-truth.finding.created"]}}}}}}},"responses":{"201":{"description":"Subscription metadata and one-time signing_secret","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","url","events","signing_secret"],"properties":{"id":{"type":"string","format":"uuid"},"url":{"type":"string","format":"uri"},"events":{"type":"array","items":{"type":"string"}},"signing_secret":{"type":"string","pattern":"^[a-f0-9]{64}$","readOnly":true}}}}}}}},"400":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"revokeWebhook","x-required-scope":"webhooks:write","summary":"Revoke a subscription","parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Revoked subscription id","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"revoked":{"type":"boolean","const":true}}}}}}}},"400":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks/deliveries":{"get":{"operationId":"listWebhookDeliveries","x-required-scope":"webhooks:read","summary":"Read the latest 100 delivery statuses","parameters":[{"name":"id","in":"query","description":"Optional subscription id.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Latest safe delivery metadata. No receiver body or signing secret.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"webhook_id":{"type":"string","format":"uuid"},"event_type":{"type":"string"},"resource_id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["queued","delivered","failed","cancelled"]},"attempts":{"type":"integer"},"response_status":{"type":["integer","null"]},"created_at":{"type":"string","format":"date-time"},"delivered_at":{"type":["string","null"],"format":"date-time"}}}}}}}}},"400":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request failed. No credentials or internal diagnostics are returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"workspaceApiKey":{"type":"http","scheme":"bearer","bearerFormat":"esh_live_ followed by 64 hexadecimal characters","description":"Created by a workspace owner/admin in Settings > API access. Not an OAuth token."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"Page":{"type":"object","properties":{"limit":{"type":"integer","maximum":100},"next_cursor":{"type":["string","null"]},"since":{"type":"string","format":"date"},"until":{"type":"string","format":"date"},"ordering":{"type":"string","enum":["id_desc","day_desc"]}}}}}}