API Evangelist enrichment overlay for Capsule CRM REST Opportunities API
Non-destructive overlay carrying API Evangelist enrichments: proposed operationIds (the base contract declares none), the OAuth 2.0/OIDC schemes Capsule serves from discovery, published rate-limit and error semantics, pagination, and a per-write reversibility record. Apply with an OpenAPI Overlay 1.0.0 processor; the base document in openapi/ is never mutated.
capsule-opportunities-api-openapi.yml
What the actions change
Targets 13
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enrichment overlay for Capsule CRM REST Opportunities API
version: 1.0.0
x-generated: '2026-09-05'
x-method: generated
x-source: https://developer.capsulecrm.com/v2/overview/ + api.capsulecrm.com/.well-known/
description: 'Non-destructive overlay carrying API Evangelist enrichments: proposed operationIds (the
base contract declares none), the OAuth 2.0/OIDC schemes Capsule serves from discovery, published
rate-limit and error semantics, pagination, and a per-write reversibility record. Apply with an OpenAPI
Overlay 1.0.0 processor; the base document in openapi/ is never mutated.'
extends: capsule-opportunities-api-openapi.yml
actions:
- target: $.info
description: Record the API Evangelist enrichment provenance and the runtime semantics Capsule documents
outside the contract.
update:
x-apis-io-enrichment:
generated: '2026-09-05'
artifacts:
- conventions/capsule-conventions.yml
- errors/capsule-problem-types.yml
- rate-limits/capsule-rate-limits.yml
- authentication/capsule-authentication.yml
- scopes/capsule-scopes.yml
- mcp/capsule-mcp.yml
- asyncapi/capsule-rest-hooks-webhooks.yml
x-rate-limit:
limit: 4000
window: hour
scope: per Capsule user
headers:
- X-RateLimit-Limit
- X-RateLimit-Remaining
- X-RateLimit-Reset
status: 429
source: https://developer.capsulecrm.com/v2/overview/handling-api-responses
x-idempotency:
supported: false
coverage: none
source: https://developer.capsulecrm.com/v2/overview/writing-to-the-api
x-error-format:
rfc9457: false
fields:
- message
- resource
- field
source: https://developer.capsulecrm.com/v2/overview/handling-api-responses
- target: $.components.securitySchemes
description: Add the OAuth 2.0 / OpenID Connect schemes Capsule serves from its discovery documents,
alongside the bearer scheme already in the contract.
update:
capsuleOAuth:
type: oauth2
description: Capsule OAuth 2.0 authorization code flow with PKCE. Access tokens expire after 604799
seconds.
flows:
authorizationCode:
authorizationUrl: https://api.capsulecrm.com/oauth/authorise
tokenUrl: https://api.capsulecrm.com/oauth/token
refreshUrl: https://api.capsulecrm.com/oauth/token
scopes:
read: Read-only access to Capsule data
write: Create, update and delete Capsule data
user_preference: Access the authenticated user's preferences
openid: Request an OpenID Connect ID token
profile: OIDC profile claims
email: OIDC email claim
tenant: Capsule tenant/subdomain claim
capsuleOpenId:
type: openIdConnect
openIdConnectUrl: https://api.capsulecrm.com/.well-known/openid-configuration
description: Capsule is a full OpenID Provider; discovery and JWKS are served on the API host.
- target: $.paths['/opportunities'].get
description: Propose a stable operationId for GET /opportunities; the published contract declares none.
update:
operationId: listOpportunities
- target: $.paths['/opportunities'].post
description: Propose a stable operationId for POST /opportunities; the published contract declares none.
update:
operationId: createOpportunities
- target: $.paths['/opportunities/{opportunityId}'].get
description: Propose a stable operationId for GET /opportunities/{opportunityId}; the published contract
declares none.
update:
operationId: getOpportunities
- target: $.paths['/opportunities/{opportunityId}'].put
description: Propose a stable operationId for PUT /opportunities/{opportunityId}; the published contract
declares none.
update:
operationId: updateOpportunities
- target: $.paths['/opportunities/{opportunityId}'].delete
description: Propose a stable operationId for DELETE /opportunities/{opportunityId}; the published contract
declares none.
update:
operationId: deleteOpportunities
- target: $.paths['/opportunities/deleted'].get
description: Propose a stable operationId for GET /opportunities/deleted; the published contract declares
none.
update:
operationId: listDeletedOpportunities
- target: $.paths['/opportunities/search'].get
description: Propose a stable operationId for GET /opportunities/search; the published contract declares
none.
update:
operationId: searchOpportunities
- target: $.paths['/opportunities/{opportunityId}/parties'].get
description: Propose a stable operationId for GET /opportunities/{opportunityId}/parties; the published
contract declares none.
update:
operationId: listOpportunitiesParties
- target: $.paths['/opportunities/{opportunityId}/parties/{partyId}'].post
description: Propose a stable operationId for POST /opportunities/{opportunityId}/parties/{partyId};
the published contract declares none.
update:
operationId: createOpportunitiesParties
- target: $.paths['/opportunities/{opportunityId}/parties/{partyId}'].delete
description: Propose a stable operationId for DELETE /opportunities/{opportunityId}/parties/{partyId};
the published contract declares none.
update:
operationId: deleteOpportunitiesParties
- target: $.paths['/parties/{partyId}/opportunities'].get
description: Propose a stable operationId for GET /parties/{partyId}/opportunities; the published contract
declares none.
update:
operationId: listPartiesOpportunities
- target: $.paths['/opportunities'].get
description: Document the page/perPage pagination and RFC 5988 Link header behaviour on /opportunities.
update:
x-pagination:
style: page-number
params:
page:
default: 1
perPage:
default: 50
max: 100
link_header: true
rels:
- next
- prev
source: https://developer.capsulecrm.com/v2/overview/reading-from-the-api
- target: $.paths['/opportunities'].post
description: Record reversibility for POST /opportunities. Capsule documents no restore path and no
window.
update:
x-reversibility:
grade: none
reversal_operation: null
window: null
source: https://developer.capsulecrm.com/v2/overview/writing-to-the-api
- target: $.paths['/opportunities/{opportunityId}'].put
description: Record reversibility for PUT /opportunities/{opportunityId}. Capsule documents no restore
path and no window.
update:
x-reversibility:
grade: none
reversal_operation: null
window: null
source: https://developer.capsulecrm.com/v2/overview/writing-to-the-api
- target: $.paths['/opportunities/{opportunityId}'].delete
description: Record reversibility for DELETE /opportunities/{opportunityId}. Capsule documents no restore
path and no window.
update:
x-reversibility:
grade: none
reversal_operation: null
window: null
source: https://developer.capsulecrm.com/v2/overview/writing-to-the-api
- target: $.paths['/opportunities/deleted'].get
description: Document the page/perPage pagination and RFC 5988 Link header behaviour on /opportunities/deleted.
update:
x-pagination:
style: page-number
params:
page:
default: 1
perPage:
default: 50
max: 100
link_header: true
rels:
- next
- prev
source: https://developer.capsulecrm.com/v2/overview/reading-from-the-api
- target: $.paths['/opportunities/search'].get
description: Document the page/perPage pagination and RFC 5988 Link header behaviour on /opportunities/search.
update:
x-pagination:
style: page-number
params:
page:
default: 1
perPage:
default: 50
max: 100
link_header: true
rels:
- next
- prev
source: https://developer.capsulecrm.com/v2/overview/reading-from-the-api
- target: $.paths['/opportunities/{opportunityId}/parties'].get
description: Document the page/perPage pagination and RFC 5988 Link header behaviour on /opportunities/{opportunityId}/parties.
update:
x-pagination:
style: page-number
params:
page:
default: 1
perPage:
default: 50
max: 100
link_header: true
rels:
- next
- prev
source: https://developer.capsulecrm.com/v2/overview/reading-from-the-api
- target: $.paths['/opportunities/{opportunityId}/parties/{partyId}'].post
description: Record reversibility for POST /opportunities/{opportunityId}/parties/{partyId}. Capsule
documents no restore path and no window.
update:
x-reversibility:
grade: none
reversal_operation: null
window: null
source: https://developer.capsulecrm.com/v2/overview/writing-to-the-api
- target: $.paths['/opportunities/{opportunityId}/parties/{partyId}'].delete
description: Record reversibility for DELETE /opportunities/{opportunityId}/parties/{partyId}. Capsule
documents no restore path and no window.
update:
x-reversibility:
grade: none
reversal_operation: null
window: null
source: https://developer.capsulecrm.com/v2/overview/writing-to-the-api
- target: $.paths['/parties/{partyId}/opportunities'].get
description: Document the page/perPage pagination and RFC 5988 Link header behaviour on /parties/{partyId}/opportunities.
update:
x-pagination:
style: page-number
params:
page:
default: 1
perPage:
default: 50
max: 100
link_header: true
rels:
- next
- prev
source: https://developer.capsulecrm.com/v2/overview/reading-from-the-api
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/overlays/capsule-opportunities-api-overlay"
curl "https://apis.io/api/v1/overlays?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.