{"openapi":"3.1.0","info":{"title":"Ranklybee Public API","version":"1.0.0","description":"Read RanklyBee workspace, prospecting, outreach, and backlink data with a scoped API token. Backlink submission automation is intentionally handled by the RanklyBee plugin and is not part of this public API reference."},"servers":[{"url":"/api/public/v1","description":"Current API server"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Account","description":"Inspect the account and token making the request."},{"name":"Workspaces","description":"Discover workspaces allowed by the current token."},{"name":"Sites","description":"Read websites linked to a workspace."},{"name":"Prospects","description":"Read discovered link-building prospects."},{"name":"Contacts","description":"Read contacts discovered for prospects and websites."},{"name":"Drafts","description":"Read generated outreach drafts."},{"name":"Inbox","description":"Read outreach conversations and inbound events."},{"name":"Keywords","description":"Read the keyword profile for a website."},{"name":"Email accounts","description":"Read safe mailbox and sender health status."},{"name":"Blocked domains","description":"Read domains excluded from prospect discovery."},{"name":"Discovery jobs","description":"Read prospect discovery job progress."},{"name":"Backlinks","description":"Read tracked backlinks and their current status."}],"paths":{"/me":{"get":{"operationId":"getCurrentAccount","tags":["Account"],"summary":"Get the current API account","description":"Returns the token owner, token metadata, workspace count, active token count, and current API limits.","responses":{"200":{"description":"Current account and token information.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/Me"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces":{"get":{"operationId":"listWorkspaces","tags":["Workspaces"],"summary":"List accessible workspaces","responses":{"200":{"description":"Workspaces available to the API token.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/Workspace"}}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}":{"get":{"operationId":"getWorkspace","tags":["Workspaces"],"summary":"Get a workspace","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."}],"responses":{"200":{"description":"Workspace details.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/WorkspaceDetail"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/sites":{"get":{"operationId":"listSites","tags":["Sites"],"summary":"List workspace websites","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."}],"responses":{"200":{"description":"Websites linked to the workspace.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/Site"}}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/sites/{siteId}":{"get":{"operationId":"getSite","tags":["Sites"],"summary":"Get a website","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."}],"responses":{"200":{"description":"Website details.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/SiteDetail"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/prospects":{"get":{"operationId":"listProspects","tags":["Prospects"],"summary":"List prospects","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results to one website."},{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"status","in":"query","schema":{"type":"string","enum":["proposed","rejected","blocked"]}}],"responses":{"200":{"description":"Paginated discovered prospects.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/ProspectPage"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/prospects/{prospectId}":{"get":{"operationId":"getProspect","tags":["Prospects"],"summary":"Get a prospect","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"prospectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Prospect details.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/Prospect"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}},"delete":{"operationId":"deleteProspect","tags":["Prospects"],"summary":"Remove a prospect","description":"Requires the prospects:write scope. This is a soft removal that marks the prospect rejected.","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"prospectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Prospect removed from the active pipeline.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/DeleteProspectResult"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/sites/{siteId}/contacts":{"get":{"operationId":"listContacts","tags":["Contacts"],"summary":"List contacts for a website","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."},{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"status","in":"query","schema":{"type":"string","enum":["active","suppressed","invalid"]}},{"name":"verificationStatus","in":"query","schema":{"type":"string","enum":["unverified","valid","risky","invalid"]}}],"responses":{"200":{"description":"Paginated website contacts.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/ContactPage"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/prospects/{prospectId}/contacts":{"get":{"operationId":"listProspectContacts","tags":["Contacts"],"summary":"List contacts for a prospect","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"prospectId","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"Contacts linked to the prospect.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/ContactPage"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/sites/{siteId}/contacts/{contactId}":{"get":{"operationId":"getContact","tags":["Contacts"],"summary":"Get a contact","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."},{"name":"contactId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Contact details.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/Contact"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/sites/{siteId}/drafts":{"get":{"operationId":"listDrafts","tags":["Drafts"],"summary":"List outreach drafts","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"status","in":"query","schema":{"type":"string","enum":["draft","awaiting_approval","changes_requested","approved"]}}],"responses":{"200":{"description":"Paginated outreach drafts.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/DraftPage"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/sites/{siteId}/drafts/{draftId}":{"get":{"operationId":"getDraft","tags":["Drafts"],"summary":"Get an outreach draft","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."},{"name":"draftId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Outreach draft details.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/Draft"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}},"patch":{"operationId":"editDraft","tags":["Drafts"],"summary":"Edit an outreach draft","description":"Requires the outreach:write scope.","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."},{"name":"draftId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DraftUpdateRequest"}}}},"responses":{"200":{"description":"Updated draft.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/Draft"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/sites/{siteId}/threads":{"get":{"operationId":"listThreads","tags":["Inbox"],"summary":"List outreach conversations","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"Paginated outreach conversations.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/ThreadPage"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/sites/{siteId}/threads/{threadId}":{"get":{"operationId":"getThread","tags":["Inbox"],"summary":"Get a conversation thread","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."},{"name":"threadId","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"Conversation details and inbound events.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/Thread"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/sites/{siteId}/keywords":{"get":{"operationId":"listKeywords","tags":["Keywords"],"summary":"List site keywords","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."}],"responses":{"200":{"description":"Keywords from the site's profile.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/Keywords"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/sites/{siteId}/email-accounts":{"get":{"operationId":"listEmailAccounts","tags":["Email accounts"],"summary":"List email accounts","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."}],"responses":{"200":{"description":"Safe mailbox connection and sender status. Credentials are never returned.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/EmailAccounts"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/sites/{siteId}/blocked-domains":{"get":{"operationId":"listBlockedDomains","tags":["Blocked domains"],"summary":"List blocked domains","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"Domains excluded from prospect discovery.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/BlockedDomainPage"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}},"post":{"operationId":"blockDomain","tags":["Blocked domains"],"summary":"Block a prospect domain","description":"Requires the blocked-domains:write scope.","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockDomainRequest"}}}},"responses":{"200":{"description":"Domain blocked and related outreach stopped.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/BlockedDomainResult"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/sites/{siteId}/discovery-jobs":{"get":{"operationId":"listDiscoveryJobs","tags":["Discovery jobs"],"summary":"List prospect discovery jobs","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"Paginated prospect discovery jobs.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/DiscoveryJobPage"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}},"post":{"operationId":"startDiscoveryJob","tags":["Discovery jobs"],"summary":"Start prospect discovery","description":"Requires the prospects:write scope. Discovery runs asynchronously.","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoveryStartRequest"}}}},"responses":{"202":{"description":"Discovery job queued.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/DiscoveryStart"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/sites/{siteId}/discovery-jobs/{jobId}":{"get":{"operationId":"getDiscoveryJob","tags":["Discovery jobs"],"summary":"Get a discovery job","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."},{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"Discovery job progress and query-level results.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/DiscoveryJob"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/prospects/{prospectId}/status":{"patch":{"operationId":"setProspectStatus","tags":["Prospects"],"summary":"Set prospect pipeline status","description":"Requires the prospects:write scope.","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"prospectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProspectStatusRequest"}}}},"responses":{"200":{"description":"Prospect status updated.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/ProspectMutation"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/prospects/{prospectId}/contact-discovery":{"post":{"operationId":"discoverProspectContact","tags":["Contacts"],"summary":"Find a contact for a prospect","description":"Requires the contacts:write scope. Contact discovery may run asynchronously.","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"prospectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdempotencyRequest"}}}},"responses":{"202":{"description":"Contact discovery started or completed.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/ContactDiscoveryResult"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/prospects/{prospectId}/contact":{"patch":{"operationId":"selectProspectContact","tags":["Contacts"],"summary":"Choose a prospect contact","description":"Requires the contacts:write scope.","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"prospectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactSelectionRequest"}}}},"responses":{"200":{"description":"Selected contact.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/Contact"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/sites/{siteId}/contacts/{contactId}/verify":{"post":{"operationId":"verifyContact","tags":["Contacts"],"summary":"Verify a contact address","description":"Requires the contacts:write scope.","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."},{"name":"contactId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactVerificationRequest"}}}},"responses":{"200":{"description":"Verified contact.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/Contact"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/prospects/{prospectId}/draft":{"post":{"operationId":"prepareProspectDraft","tags":["Drafts"],"summary":"Prepare an outreach draft","description":"Requires the outreach:write scope.","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"prospectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactIdRequest"}}}},"responses":{"200":{"description":"Draft prepared.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/DraftPreparation"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/prospects/{prospectId}/outreach":{"post":{"operationId":"queueProspectOutreach","tags":["Drafts"],"summary":"Queue outreach for a prospect","description":"Requires the outreach:write and outreach:send scopes.","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"prospectId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutreachQueueRequest"}}}},"responses":{"202":{"description":"Outreach queued or sent.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/OutreachQueueResult"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/sites/{siteId}/drafts/{draftId}/regenerate":{"post":{"operationId":"regenerateDraft","tags":["Drafts"],"summary":"Regenerate an outreach draft","description":"Requires the outreach:write scope.","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."},{"name":"draftId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":120},"description":"A stable key for safely retrying this operation."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DraftRegenerateRequest"}}}},"responses":{"200":{"description":"Regenerated draft.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/Draft"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"The same draft regeneration is already running.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/sites/{siteId}/threads/{threadId}/replies":{"post":{"operationId":"replyToThread","tags":["Inbox"],"summary":"Reply to an outreach thread","description":"Requires the outreach:send scope.","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."},{"name":"threadId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplyRequest"}}}},"responses":{"202":{"description":"Reply queued.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/OperationStatus"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/sites/{siteId}/threads/{threadId}/cancel":{"post":{"operationId":"cancelQueuedOutreach","tags":["Inbox"],"summary":"Cancel queued outreach","description":"Requires the outreach:send scope.","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"path","required":true,"schema":{"type":"string"},"description":"Site ID returned by GET /workspaces/{workspaceId}/sites."},{"name":"threadId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelRequest"}}}},"responses":{"200":{"description":"Queued outreach canceled.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/OperationStatus"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/prospects/{prospectId}/block":{"delete":{"operationId":"unblockProspectDomain","tags":["Blocked domains"],"summary":"Unblock a prospect domain","description":"Requires the blocked-domains:write scope.","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"prospectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Domain unblocked.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/UnblockDomainResult"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/backlinks":{"get":{"operationId":"listBacklinks","tags":["Backlinks"],"summary":"List tracked backlinks","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"siteId","in":"query","required":false,"schema":{"type":"string"},"description":"Filter results to one website."},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["pending","live","changed","lost","blocked","error","closed"]}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"description":"One-based page number. Out-of-range pages return an empty data array."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25},"description":"Results per page. The legacy pageSize alias is also accepted."}],"responses":{"200":{"description":"Paginated backlink records.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/BacklinkPage"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/workspaces/{workspaceId}/backlinks/{backlinkId}":{"get":{"operationId":"getBacklink","tags":["Backlinks"],"summary":"Get a backlink","parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"},"description":"Workspace ID returned by GET /workspaces."},{"name":"backlinkId","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"Backlink details and check history.","content":{"application/json":{"schema":{"type":"object","required":["ok","data"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/BacklinkDetail"}}}}}},"401":{"description":"The bearer token is missing, invalid, expired, or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"402":{"description":"An active paid membership is required for this API resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"The token does not include the required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"The requested resource is not available to this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"A query parameter is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"A per-token API rate limit or a resource-specific rate limit was exceeded; inspect error.code.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"}},"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Something failed on the server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API token","description":"Use a token created in Settings → API access."}},"schemas":{"Account":{"type":"object","required":["id","name","email"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string","format":"email"}}},"ApiToken":{"type":"object","required":["id","name","tokenPrefix","scopes","allWorkspaces","workspaceIds","expiresAt","lastUsedAt"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"tokenPrefix":{"type":"string","example":"rk_live_abc123"},"scopes":{"type":"array","description":"Public read scopes are documented here. A token used by the RanklyBee plugin may also contain plugin-only scopes that are intentionally outside this API reference.","items":{"type":"string"}},"allWorkspaces":{"type":"boolean"},"workspaceIds":{"type":"array","items":{"type":"string"}},"expiresAt":{"type":["string","null"],"format":"date-time"},"lastUsedAt":{"type":["string","null"],"format":"date-time"}}},"Limits":{"type":"object","required":["requestsPerMinute","maxActiveTokens"],"properties":{"requestsPerMinute":{"type":"integer","example":100},"maxActiveTokens":{"type":"integer","example":10}}},"Me":{"type":"object","required":["account","token","workspaceCount","activeTokenCount","limits"],"properties":{"account":{"$ref":"#/components/schemas/Account"},"token":{"$ref":"#/components/schemas/ApiToken"},"workspaceCount":{"type":"integer"},"activeTokenCount":{"type":"integer"},"limits":{"$ref":"#/components/schemas/Limits"}}},"Workspace":{"type":"object","required":["id","name","slug","createdAt"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"WorkspaceDetail":{"type":"object","required":["id","name","slug","timeZone","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"timeZone":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"Site":{"type":"object","required":["id","name","domain","url","status","createdAt"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"domain":{"type":"string"},"url":{"type":"string","format":"uri"},"status":{"type":"string","enum":["active","archived"]},"createdAt":{"type":"string","format":"date-time"}}},"SiteDetail":{"allOf":[{"$ref":"#/components/schemas/Site"},{"type":"object","required":["updatedAt"],"properties":{"updatedAt":{"type":"string","format":"date-time"}}}]},"Prospect":{"type":"object","required":["id","siteId","source","status","url","domain","title","pageType","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"siteId":{"type":"string"},"sourceJobId":{"type":["string","null"]},"source":{"type":"string"},"status":{"type":"string","enum":["proposed","rejected","blocked"]},"url":{"type":"string","format":"uri"},"normalizedUrl":{"type":"string"},"canonicalUrl":{"type":["string","null"],"format":"uri"},"domain":{"type":"string"},"title":{"type":"string"},"description":{"type":["string","null"]},"contentExcerpt":{"type":["string","null"]},"pageType":{"type":"string"},"opportunityType":{"type":["string","null"]},"suggestedPlacement":{"type":["string","null"]},"contactPaths":{"type":"array","items":{"type":"object"}},"relevanceScore":{"type":"integer"},"qualityScore":{"type":"integer"},"riskScore":{"type":"integer"},"matchReasons":{"type":"array","items":{"type":"string"}},"riskFlags":{"type":"array","items":{"type":"string"}},"domainAuthority":{"type":["integer","null"]},"estimatedMonthlyTraffic":{"type":["integer","null"]},"rankingPosition":{"type":["integer","null"]},"rankingKeyword":{"type":["string","null"]},"searchMarket":{"type":["string","null"]},"searchLanguage":{"type":["string","null"]},"crawlStatus":{"type":"string"},"lastCrawledAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"ProspectPage":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Prospect"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}},"Contact":{"type":"object","required":["id","email","fullName","role","status","verificationStatus","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"email":{"type":"string","format":"email"},"fullName":{"type":"string"},"role":{"type":"string"},"roleCategory":{"type":"string"},"company":{"type":["string","null"]},"source":{"type":"string"},"sourceProvider":{"type":["string","null"]},"sourceUrl":{"type":["string","null"],"format":"uri"},"sourceReference":{"type":["string","null"]},"status":{"type":"string"},"verificationStatus":{"type":"string"},"lastVerifiedAt":{"type":["string","null"],"format":"date-time"},"suppressionReason":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"ContactPage":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Contact"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}},"Draft":{"type":"object","required":["id","prospectId","contactId","status","message","prospect","contact"],"properties":{"id":{"type":"string"},"prospectId":{"type":"string"},"contactId":{"type":"string"},"status":{"type":"string"},"purpose":{"type":"string"},"starredAt":{"type":["string","null"],"format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"message":{"$ref":"#/components/schemas/DraftMessage"},"prospect":{"$ref":"#/components/schemas/ProspectPreview"},"contact":{"$ref":"#/components/schemas/ContactPreview"}}},"DraftMessage":{"type":"object","required":["id","subject","body","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"subject":{"type":"string"},"body":{"type":"string"},"personalization":{"type":"object"},"groundingSummary":{"type":["string","null"]},"generationProvider":{"type":"string"},"generationModel":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"DraftPage":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Draft"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}},"ThreadSummary":{"type":"object","required":["id","prospectId","contactId","status","purpose","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"prospectId":{"type":"string"},"contactId":{"type":"string"},"status":{"type":"string"},"purpose":{"type":"string"},"starredAt":{"type":["string","null"],"format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"ThreadMessage":{"type":"object","required":["id","subject","body","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"subject":{"type":"string"},"body":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"Conversation":{"type":"object","required":["id","threadId","contactId","status","outcome","classification","inboundCount","outboundCount","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"threadId":{"type":"string"},"contactId":{"type":"string"},"status":{"type":"string"},"outcome":{"type":"string"},"outcomeReason":{"type":["string","null"]},"outcomeAt":{"type":["string","null"],"format":"date-time"},"classification":{"type":"string"},"inboundCount":{"type":"integer"},"outboundCount":{"type":"integer"},"lastInboundAt":{"type":["string","null"],"format":"date-time"},"lastOutboundAt":{"type":["string","null"],"format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"InboundEvent":{"type":"object","required":["id","type","classification","receivedAt"],"properties":{"id":{"type":"string"},"type":{"type":"string"},"classification":{"type":"string"},"subject":{"type":["string","null"]},"snippet":{"type":["string","null"]},"receivedAt":{"type":"string","format":"date-time"}}},"ContactPreview":{"type":"object","required":["fullName","email"],"properties":{"id":{"type":"string"},"fullName":{"type":"string"},"email":{"type":"string","format":"email"},"role":{"type":["string","null"]},"company":{"type":["string","null"]}}},"ProspectPreview":{"type":"object","required":["id","title","url","domain"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"url":{"type":"string","format":"uri"},"domain":{"type":"string"}}},"ThreadListItem":{"type":"object","required":["id","threadId","contactId","status","outcome","classification","contact","prospect"],"properties":{"id":{"type":"string"},"threadId":{"type":"string"},"contactId":{"type":"string"},"status":{"type":"string"},"outcome":{"type":"string"},"classification":{"type":"string"},"inboundCount":{"type":"integer"},"outboundCount":{"type":"integer"},"lastInboundAt":{"type":["string","null"],"format":"date-time"},"lastOutboundAt":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"contact":{"$ref":"#/components/schemas/ContactPreview"},"prospect":{"$ref":"#/components/schemas/ProspectPreview"}}},"Thread":{"type":"object","required":["thread","events","pagination"],"properties":{"thread":{"$ref":"#/components/schemas/ThreadSummary"},"message":{"oneOf":[{"$ref":"#/components/schemas/ThreadMessage"},{"type":"null"}]},"conversation":{"oneOf":[{"$ref":"#/components/schemas/Conversation"},{"type":"null"}]},"events":{"type":"array","items":{"$ref":"#/components/schemas/InboundEvent"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}},"ThreadPage":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ThreadListItem"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}},"Keywords":{"type":"object","required":["siteId","keywords","keywordMetadata","updatedAt"],"properties":{"siteId":{"type":"string"},"keywords":{"type":"array","items":{"type":"string"}},"keywordMetadata":{"type":"object"},"updatedAt":{"type":"string","format":"date-time"}}},"EmailConnection":{"type":"object","required":["id","provider","status","accountEmail","hasError","connectedAt","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"provider":{"type":"string"},"status":{"type":"string"},"accountEmail":{"type":"string","format":"email"},"providerRegion":{"type":["string","null"]},"hasError":{"type":"boolean"},"connectedAt":{"type":"string","format":"date-time"},"lastTestedAt":{"type":["string","null"],"format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"SenderIdentity":{"type":"object","required":["id","source","status","verificationStatus","displayName","email","replyToEmail","dailyLimit","healthStatus","warmupStatus","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"connectionId":{"type":["string","null"]},"source":{"type":"string"},"status":{"type":"string"},"verificationStatus":{"type":"string"},"displayName":{"type":"string"},"email":{"type":"string","format":"email"},"replyToEmail":{"type":"string","format":"email"},"dailyLimit":{"type":"integer"},"healthStatus":{"type":"string"},"warmupStatus":{"type":"string"},"healthScore":{"type":["integer","null"]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"EmailAccounts":{"type":"object","required":["connections","senders"],"properties":{"connections":{"type":"array","items":{"$ref":"#/components/schemas/EmailConnection"}},"senders":{"type":"array","items":{"$ref":"#/components/schemas/SenderIdentity"}}}},"BlockedDomain":{"type":"object","required":["id","domain","reason","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"domain":{"type":"string"},"reason":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"BlockedDomainPage":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/BlockedDomain"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}},"DiscoveryJobRecord":{"type":"object","required":["id","type","status","currentAttempt","maxAttempts","scheduledAt","createdAt","updatedAt"],"properties":{"id":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"subjectType":{"type":["string","null"]},"subjectId":{"type":["string","null"]},"currentAttempt":{"type":"integer"},"maxAttempts":{"type":"integer"},"scheduledAt":{"type":"string","format":"date-time"},"canceledAt":{"type":["string","null"],"format":"date-time"},"completedAt":{"type":["string","null"],"format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"DiscoveryQuery":{"type":"object","required":["id","query","status","opportunityType","rawResultCount","uniqueCandidateCount","qualifiedCount","hasError"],"properties":{"id":{"type":"string"},"query":{"type":"string"},"status":{"type":"string"},"opportunityType":{"type":"string"},"rawResultCount":{"type":"integer"},"uniqueCandidateCount":{"type":"integer"},"qualifiedCount":{"type":"integer"},"startedAt":{"type":["string","null"],"format":"date-time"},"completedAt":{"type":["string","null"],"format":"date-time"},"errorCode":{"type":["string","null"]},"hasError":{"type":"boolean"}}},"DiscoveryJob":{"type":"object","required":["job","queryCount","queries","pagination"],"properties":{"job":{"$ref":"#/components/schemas/DiscoveryJobRecord"},"queryCount":{"type":"integer"},"queries":{"type":"array","items":{"$ref":"#/components/schemas/DiscoveryQuery"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}},"DiscoveryJobPage":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DiscoveryJobRecord"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}},"Pagination":{"type":"object","required":["page","limit","total","hasMore"],"properties":{"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"hasMore":{"type":"boolean"}}},"BacklinkDetail":{"allOf":[{"$ref":"#/components/schemas/Backlink"},{"type":"object","required":["checks","pagination","hasCheckError"],"properties":{"hasCheckError":{"type":"boolean"},"checks":{"type":"array","items":{"$ref":"#/components/schemas/BacklinkCheck"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}}]},"BacklinkCheck":{"type":"object","required":["id","status","requestedSourceUrl","targetFound","checkedAt","hasError"],"properties":{"id":{"type":"string"},"status":{"type":"string"},"requestedSourceUrl":{"type":"string","format":"uri"},"finalSourceUrl":{"type":["string","null"],"format":"uri"},"httpStatus":{"type":["integer","null"]},"targetFound":{"type":"boolean"},"observedTargetUrl":{"type":["string","null"],"format":"uri"},"observedAnchor":{"type":["string","null"]},"observedRel":{"type":"array","items":{"type":"string"}},"hasError":{"type":"boolean"},"checkedAt":{"type":"string","format":"date-time"}}},"Backlink":{"type":"object","required":["id","siteId","source","sourceUrl","targetUrl","status","createdAt","updatedAt","acquisitionOrigin"],"properties":{"id":{"type":"string"},"siteId":{"type":"string"},"source":{"type":"string","enum":["outreach","manual","featured","imported"]},"acquisitionOrigin":{"type":"string","enum":["unknown","preexisting","ranklybee_submission","outreach","manual"]},"sourceUrl":{"type":"string","format":"uri"},"targetUrl":{"type":"string","format":"uri"},"category":{"type":"string"},"status":{"type":"string","enum":["pending","live","changed","lost","blocked","error","closed"]},"observedAnchor":{"type":["string","null"]},"lastCheckedAt":{"type":["string","null"],"format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"BacklinkPage":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Backlink"}},"pagination":{"type":"object","required":["page","limit","total","hasMore"],"properties":{"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"hasMore":{"type":"boolean"}}}}},"DiscoveryStartRequest":{"type":"object","properties":{"goal":{"type":"string","enum":["all","editorial_outreach","paid_placements"]},"selectedKeywords":{"type":"array","items":{"type":"string"},"maxItems":10},"confirmedKeywords":{"type":"array","items":{"type":"string"},"minItems":2,"maxItems":2},"refresh":{"type":"boolean","default":false},"requestKey":{"type":"string","minLength":8,"maxLength":160,"description":"Required when refresh is true; reuse it to safely retry the request."}}},"DiscoveryStart":{"type":"object","required":["jobId","status"],"properties":{"jobId":{"type":"string"},"status":{"type":"string"}}},"ProspectStatusRequest":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["rejected","blocked"]},"reason":{"type":"string","maxLength":500}}},"ProspectMutation":{"type":"object","required":["id","siteId","status","updatedAt"],"properties":{"id":{"type":"string"},"siteId":{"type":"string"},"status":{"type":"string","enum":["proposed","rejected","blocked"]},"decisionReason":{"type":["string","null"]},"decidedAt":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"DeleteProspectResult":{"type":"object","required":["id","status","deleted"],"properties":{"id":{"type":"string"},"status":{"const":"rejected"},"deleted":{"const":true}}},"IdempotencyRequest":{"type":"object","required":["idempotencyKey"],"properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":160}}},"ContactDiscoveryResult":{"type":"object","required":["outcome","contact"],"properties":{"outcome":{"type":"string","enum":["created","discovered","no_result"]},"contact":{"oneOf":[{"$ref":"#/components/schemas/Contact"},{"type":"null"}]}}},"ContactSelectionRequest":{"type":"object","required":["email","idempotencyKey"],"properties":{"email":{"type":"string","format":"email"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":160}}},"ContactVerificationRequest":{"type":"object","required":["idempotencyKey"],"description":"RanklyBee verifies the address with the configured Hunter provider.","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":160}}},"ContactIdRequest":{"type":"object","required":["contactId"],"properties":{"contactId":{"type":"string"}}},"DraftPreparation":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["created","existing"]},"draft":{"$ref":"#/components/schemas/Draft"}}},"OutreachQueueRequest":{"type":"object","required":["contactId","idempotencyKey"],"properties":{"contactId":{"type":"string"},"mode":{"type":"string","enum":["simulation","live"],"default":"live"},"sendNow":{"type":"boolean","default":false},"idempotencyKey":{"type":"string","minLength":8,"maxLength":160}}},"OutreachQueueResult":{"type":"object","required":["threadId","status","draftStatus"],"properties":{"threadId":{"type":"string"},"status":{"type":"string","enum":["queued","sent"]},"draftStatus":{"type":"string","enum":["created","existing"]}}},"DraftRegenerateRequest":{"type":"object","required":["instruction"],"properties":{"instruction":{"type":"string","minLength":3,"maxLength":500}}},"DraftUpdateRequest":{"type":"object","required":["subject","body"],"properties":{"subject":{"type":"string","minLength":3,"maxLength":300},"body":{"type":"string","minLength":20,"maxLength":10000}}},"ReplyRequest":{"type":"object","required":["body","idempotencyKey"],"properties":{"body":{"type":"string","minLength":10,"maxLength":10000},"ccEmails":{"type":"array","items":{"type":"string","format":"email"},"maxItems":10},"idempotencyKey":{"type":"string","minLength":8,"maxLength":160}}},"CancelRequest":{"type":"object","required":["reason"],"properties":{"reason":{"type":"string","minLength":5,"maxLength":500}}},"OperationStatus":{"type":"object","required":["threadId","status"],"properties":{"threadId":{"type":"string"},"status":{"type":"string"}}},"BlockDomainRequest":{"type":"object","required":["prospectId","reason"],"properties":{"prospectId":{"type":"string"},"reason":{"type":"string","minLength":5,"maxLength":500}}},"BlockedDomainResult":{"type":"object","required":["domain","prospectId","status"],"properties":{"domain":{"type":"string"},"prospectId":{"type":"string"},"status":{"type":"string","enum":["blocked"]},"reason":{"type":["string","null"]}}},"UnblockDomainResult":{"type":"object","required":["domain","restoredProspects"],"properties":{"domain":{"type":"string"},"restoredProspects":{"type":"integer"}}},"ErrorDetail":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["UNAUTHORIZED","SCOPE_REQUIRED","NOT_FOUND","RATE_LIMIT_EXCEEDED","VALIDATION_ERROR","SITE_REQUIRED","UPGRADE_REQUIRED","CONFLICT","OPERATION_FAILED","SETUP_REQUIRED","OPERATION_IN_PROGRESS","INTERNAL_ERROR"],"example":"NOT_FOUND"},"message":{"type":"string"}}},"ErrorEnvelope":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"$ref":"#/components/schemas/ErrorDetail"}}}}}}