Slash Webhook API
The Webhook API from Slash — 2 operation(s) for webhook.
The Webhook API from Slash — 2 operation(s) for webhook.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/joinslash-com:joinslash-com-webhook-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
openapi: 3.2.0
info:
title: Slash Public Webhook API
description: API description
version: 0.0.1
contact: {}
servers:
- url: https://api.slash.com
description: production
security:
- api_key: []
- partner_api_key: []
- bearer: []
- developer_application: []
tags:
- name: Webhook
paths:
/webhook:
x-api-key-scopes:
- revenue
x-reference-path: paths/webhook/route.yaml
get:
description: Get all webhooks
parameters:
- name: filter:legalEntityId
in: query
description: Pass in a legal entity ID to filter for webhooks under a specific legal entity.
required: false
schema:
type: string
- name: cursor
required: false
in: query
schema:
type: string
description: A cursor string to fetch the next page of results
x-reference-path: schemas/Pagination/CursorParameter.yaml
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Webhook'
x-entrypoint:
virtualPath: schemas/Webhook
sourcePath: schemas/Webhook.yaml
title: Webhook
origin: ./src/publicApi
metadata:
$ref: '#/components/schemas/Pagination.PaginationResponse'
x-entrypoint:
virtualPath: schemas/Pagination/PaginationResponse
sourcePath: schemas/Pagination/PaginationResponse.yaml
title: PaginationResponse
origin: ./src/publicApi
required:
- items
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: TooManyRequests
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- api_key: []
- bearer: []
tags:
- Webhook
summary: Get webhook
x-summary-source: derived
operationId: getWebhook
x-operation-id-source: derived
post:
description: Create a new webhook endpoint
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
legalEntityId:
type: string
description: The ID of the LegalEntity to create the webhook for. You can get this by calling `GET /legal-entity`. This field is required unless you are authenticating via API key.
url:
type: string
description: The URL that will receive the webhook payload
name:
type: string
required:
- url
- name
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
x-entrypoint:
virtualPath: schemas/Webhook
sourcePath: schemas/Webhook.yaml
title: Webhook
origin: ./src/publicApi
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
x-entrypoint:
virtualPath: schemas/Webhook
sourcePath: schemas/Webhook.yaml
title: Webhook
origin: ./src/publicApi
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: TooManyRequests
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- api_key: []
- bearer: []
tags:
- Webhook
summary: Create webhook
x-summary-source: derived
operationId: postWebhook
x-operation-id-source: derived
/webhook/{webhookId}:
x-api-key-scopes:
- revenue
x-reference-path: paths/webhook/{webhookId}/route.yaml
get:
description: Get a webhook endpoint by ID
parameters:
- name: webhookId
in: path
schema:
type: string
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
x-entrypoint:
virtualPath: schemas/Webhook
sourcePath: schemas/Webhook.yaml
title: Webhook
origin: ./src/publicApi
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: TooManyRequests
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- api_key: []
- bearer: []
tags:
- Webhook
summary: Get webhook by webhook id
x-summary-source: derived
operationId: getWebhookByWebhookId
x-operation-id-source: derived
patch:
description: 'Update a webhook endpoint''s status, enabled events, or both atomically.
Provide at least one of `status` or `enabledEvents`. Omitted fields remain unchanged.
Set `enabledEvents` to a nonempty array of recognized webhook event names to replace the current selection,
or to `null` to receive all events. Omit it to keep the current selection.
**Status transitions:**
- `active`: Re-enables the endpoint. Use this to:
- Unpause a paused endpoint
- Re-enable an endpoint that is backing-off or disabled due to delivery failures
- When re-enabled, any queued notifications will be sent
- `paused`: Pauses the endpoint. While paused:
- New notifications are queued (not lost)
- No delivery attempts are made
- Use `active` to resume and process queued notifications
- `archived`: Permanently archives the endpoint (soft delete)
**Note:** The `backing-off` and `disabled` statuses are system-managed and cannot be set directly.
These occur automatically when delivery failures are detected. Use `active` to re-enable.'
parameters:
- name: webhookId
in: path
schema:
type: string
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
x-optional:
- status
- reason
- enabledEvents
properties:
status:
type: string
enum:
- active
- paused
- archived
description: 'The desired status for the endpoint:
- `active`: Enable/re-enable the endpoint
- `paused`: Pause the endpoint (notifications are queued)
- `archived`: Archive the endpoint (soft delete)
'
reason:
type: string
description: Optional reason for the status change (for audit purposes)
enabledEvents:
type: array
nullable: true
minItems: 1
items:
type: string
description: 'Replaces the events this endpoint receives. Use recognized event names from the webhook event schema.
Set to null to receive all events, or omit to keep the current selection. Empty arrays are not supported.
'
example:
- payments.payment_intent.created
- payments.payment_intent.updated
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
x-entrypoint:
virtualPath: schemas/Webhook
sourcePath: schemas/Webhook.yaml
title: Webhook
origin: ./src/publicApi
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: TooManyRequests
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- api_key: []
- bearer: []
tags:
- Webhook
summary: Update webhook by webhook id
x-summary-source: derived
operationId: patchWebhookByWebhookId
x-operation-id-source: derived
components:
schemas:
Error:
type: object
properties:
message:
type: string
name:
type: string
identifier:
type: string
rawStatus:
type: number
meta:
type: object
additionalProperties: true
required:
- message
- name
- identifier
- rawStatus
x-entrypoint:
origin: ./src/publicApi
sourcePath: ./src/publicApi/main.yaml
title: Error
virtualPath: components/Error
title: Error
Webhook:
type: object
properties:
id:
type: string
createdAt:
type: string
archivedAt:
type: string
url:
type: string
description: The URL that will receive the webhook payload
name:
type: string
description: The name of the webhook
status:
type: string
description: 'The current status of the webhook endpoint:
- `active`: The webhook is enabled and receiving events normally.
- `paused`: The webhook has been paused by the user. Events are queued and will be delivered when the endpoint is set back to `active`.
- `backing-off`: The system is temporarily backing off due to delivery failures. Delivery will be automatically retried at `backingOffUntil`. You can also immediately re-enable by setting status to `active` via the PATCH endpoint.
- `disabled`: The webhook has been automatically disabled due to repeated delivery failures. Re-enable by setting status to `active` via the PATCH endpoint.
'
enum:
- active
- paused
- backing-off
- disabled
pausedAt:
type: string
description: When the endpoint was paused by the user (ISO 8601 timestamp)
backingOffUntil:
type: string
description: When the system will automatically retry delivery (ISO 8601 timestamp). Only present when status is `backing-off`.
disabledAt:
type: string
description: When the endpoint was automatically disabled due to repeated failures (ISO 8601 timestamp). Only present when status is `disabled`.
enabledEvents:
type: array
description: Public webhook event types this endpoint receives. Omitted means all events.
items:
type: string
required:
- id
- createdAt
- url
- name
- status
x-entrypoint:
virtualPath: schemas/Webhook
sourcePath: schemas/Webhook.yaml
title: Webhook
origin: ./src/publicApi
title: Webhook
Pagination.PaginationResponse:
type: object
description: Response sent when requesting a list of data
properties:
nextCursor:
type: string
description: The cursor to use to retrieve the next page of data. If this is not sent, there is no more data to retrieve.
count:
type: number
description: The number of items in the current page of data.
x-entrypoint:
virtualPath: schemas/Pagination/PaginationResponse
sourcePath: schemas/Pagination/PaginationResponse.yaml
title: PaginationResponse
origin: ./src/publicApi
title: PaginationResponse
securitySchemes:
api_key:
type: apiKey
description: "API key authentication for public API requests.\n\nKeys come in two flavors:\n\n- *Legal-entity-scoped keys* are pinned to a single legal entity.\n Minted via the dashboard under a specific entity; every request\n acts on that entity.\n- *User-scoped keys* are pinned to a user and span every legal\n entity that user has access to. Every request made with a\n user-scoped key (except `GET /legal-entity`, which lists the\n legal entities the user can access) must include an\n `x-legal-entity` header naming the legal entity the request is\n operating on. Requests without the header are rejected with\n `400`. The authenticated user must have an active permission\n role on the supplied legal entity, otherwise the request is\n rejected with `403`.\n"
name: X-API-Key
in: header
partner_api_key:
type: apiKey
description: 'Partner-program API key authentication.
Keys are minted in the partner dashboard (Developers → API Keys),
are scoped to a single partner program, and are prefixed with
`sk_partner_`. Partner keys are only accepted by routes that
declare this scheme; they are rejected by `api_key` routes and
vice versa.
'
name: X-API-Key
in: header
bearer:
type: http
scheme: bearer
developer_application:
type: http
scheme: basic