AsyncAPI Specification
generated: '2026-08-27'
method: searched
source: >-
https://github.com/forcedotcom/pub-sub-api (pubsub_api.proto saved verbatim to
grpc/service-cloud-pubsub-api.proto), https://api.pubsub.salesforce.com (probed 415, 2026-08-27),
and the Salesforce Streaming API / Platform Events documentation.
asyncapi_published: false
asyncapi_note: >-
Salesforce publishes NO AsyncAPI document for any of its event surfaces. The machine-readable
contract for the modern surface is a gRPC .proto plus per-topic Avro schemas fetched at runtime,
which is a real contract but not an AsyncAPI one. Nothing was authored on Salesforce's behalf.
event_surfaces:
- name: Pub/Sub API
style: gRPC bidirectional streaming
contract: grpc/service-cloud-pubsub-api.proto
contract_type: protobuf3
service: eventbus.v1.PubSub
endpoint: api.pubsub.salesforce.com:7443
probed: {url: 'https://api.pubsub.salesforce.com', status: 415, note: 'gRPC host live; rejects a plain HTTP GET'}
status: GA
payload_encoding: Avro
schema_discovery: 'GetSchema(SchemaRequest) returns SchemaInfo — the Avro schema JSON for a topic.'
rpcs:
- {name: Subscribe, signature: 'stream FetchRequest -> stream FetchResponse', purpose: 'Client-managed replay-tracked event subscription.'}
- {name: ManagedSubscribe, signature: 'stream ManagedFetchRequest -> stream ManagedFetchResponse', purpose: 'Server-managed subscription; Salesforce tracks the replay position.'}
- {name: Publish, signature: 'PublishRequest -> PublishResponse', purpose: 'Publish one batch of events.'}
- {name: PublishStream, signature: 'stream PublishRequest -> stream PublishResponse', purpose: 'Streaming publish.'}
- {name: GetSchema, signature: 'SchemaRequest -> SchemaInfo', purpose: 'Retrieve the Avro schema for a topic.'}
- {name: GetTopic, signature: 'TopicRequest -> TopicInfo', purpose: 'Topic metadata plus can_publish / can_subscribe permissions.'}
auth: 'OAuth access token + instance URL + tenant id passed as gRPC metadata.'
- name: Platform Events
style: publish/subscribe over Pub/Sub API or Streaming API
contract: 'per-event custom object schema (__e), described per org'
status: GA
note: >-
Custom event types defined in the org. The event schema is org-specific, which is why there
is no static catalogue to capture — GetTopic + GetSchema is the discovery path.
- name: Change Data Capture
style: publish/subscribe
channels: '/data/{SObject}ChangeEvent, e.g. /data/CaseChangeEvent, /data/KnowledgeArticleVersionChangeEvent'
status: GA
note: >-
The Service-Cloud-relevant event stream: record-level create/update/delete/undelete events for
Case and the rest, delivered as platform events over the same Pub/Sub transport.
- name: Streaming API (PushTopic / generic streaming)
style: CometD / Bayeux long-poll
endpoint: 'https://{MyDomainName}.my.salesforce.com/cometd/{version}'
status: GA (legacy)
note: The older transport. Pub/Sub API is the recommended surface for new integrations.
- name: Outbound Messages
style: server-initiated HTTP callout (webhook-equivalent)
protocol: SOAP over HTTPS
status: GA
note: >-
Workflow-triggered SOAP messages POSTed to a customer-supplied endpoint, with automatic retry
for 24 hours until the endpoint ACKs. This is Salesforce's nearest thing to a classic webhook
and it is SOAP, not JSON. The notification WSDL is generated per outbound-message definition
inside the org and is not publishable here.
- name: Apex callouts / Flow HTTP callout
style: org-authored outbound HTTP
note: An org can be configured to POST arbitrary JSON on record events. Consumer-defined, not a published surface.
webhooks:
advertised: true
form: >-
Outbound Messages (SOAP callout with 24-hour retry) and Change Data Capture over Pub/Sub. There
is no JSON webhook subscription API, no signing-secret scheme and no published event-type catalogue.
gap: >-
An agent integrating with Service Cloud cannot subscribe to case events over plain HTTPS JSON.
It must speak gRPC + Avro, CometD, or stand up a SOAP listener.
Work with this as data
Every AsyncAPI spec 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 asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec 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
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/service-cloud-event-surface"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?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.