Coda Project Webhooks API
The Webhooks API from Coda Project — 3 operation(s) for webhooks.
The Webhooks API from Coda Project — 3 operation(s) for webhooks.
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/coda-project-webhooks-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:
version: 0.0.2
title: Superhuman Docs Admin Webhooks API
license:
name: Superhuman Developer Terms
url: https://docs.superhuman.com/trust/developer
description: '# Introduction
The Superhuman Docs Admin API is a RESTful API that allows programmatic access to administrative reports & capabilities within Superhuman Docs (formerly Coda).'
termsOfService: https://superhuman.com/legal/terms
contact:
name: Developer Support
url: https://superhuman.com/developers
email: care@superhuman.com
x-logo:
url: https://cdn.coda.io/icons/png/color/superhuman-docs-128.png
backgroundColor: transparent
altText: Superhuman Docs Admin API
href: '#'
servers:
- url: https://docs.superhuman.com/apis/admin/v1
description: Superhuman Docs Admin API (v1)
security:
- Bearer: []
tags:
- name: Webhooks
paths:
/organizations/{organizationId}/webhooks:
get:
summary: List webhooks
description: Returns a list of webhooks in the organization
operationId: listWebhooks
tags:
- Webhooks
parameters:
- $ref: '#/components/parameters/organizationId'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/pageToken'
responses:
'200':
description: List of Superhuman Docs webhook subscriptions.
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookList'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'429':
$ref: '#/components/responses/TooManyRequestsError'
x-codeSamples:
- label: Python 3.13
lang: python
source: 'import requests
headers = {''Authorization'': ''Bearer <your API token>''}
uri = ''https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/webhooks''
res = requests.get(uri, headers=headers).json()
print(f''First webhook is: {res["items"][0]["name"]}'')
'
- label: Shell
lang: shell
source: "curl -s -H 'Authorization: Bearer <your API token>' \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/webhooks' |\n jq .items[0].name\n"
post:
summary: Create new webhook subscription
description: Creates a new webhook subscription for the organization.
operationId: addWebhook
tags:
- Webhooks
parameters:
- $ref: '#/components/parameters/organizationId'
requestBody:
description: Parameters for adding the new webhook subscription.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddWebhookRequest'
responses:
'200':
description: Confirmation that the webhook subscription was created.
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'429':
$ref: '#/components/responses/TooManyRequestsError'
x-codeSamples:
- label: Python 3.13
lang: python
source: "import requests\n\nheaders = {'Authorization': 'Bearer <your API token>'}\nuri = f'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/webhooks'\npayload = {\n 'name': 'My Webhook',\n 'resource': 'auditEvents',\n 'target': 'https://example.com/webhook/endpoint',\n 'filters': [\n {'action': 'EditDoc'},\n {'action': 'UpdateDocPermissions'},\n ],\n}\nres = requests.post(uri, headers=headers, json=payload)\n\n# => Create a new webhook that sends EditDoc and UpdateDocPermissions event notifications\n"
- label: Shell
lang: shell
source: "curl -s -H 'Authorization: Bearer <your API token>' -X POST \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/webhooks' \\\n -d '{\\\n \"name\": \"My Webhook\",\\\n \"resource\": \"auditEvents\",\\\n \"target\": \"https://example.com/webhook/endpoint\",\\\n \"filters\": [{\"action\": \"EditDoc\"}, {\"action\": \"UpdateDocPermissions\"}]\\\n }'\n# => Create a new webhook that sends EditDoc and UpdateDocPermissions event notifications\n"
/organizations/{organizationId}/webhooks/{webhookId}:
get:
summary: Get a webhook subscription
description: Returns the requested webhook subscription.
operationId: getWebhook
tags:
- Webhooks
parameters:
- $ref: '#/components/parameters/organizationId'
- $ref: '#/components/parameters/webhookId'
responses:
'200':
description: The requested Superhuman Docs webhook subscription.
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'429':
$ref: '#/components/responses/TooManyRequestsError'
x-codeSamples:
- label: Python 3.13
lang: python
source: 'import requests
headers = {''Authorization'': ''Bearer <your API token>''}
uri = ''https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/webhooks/<your webhook id>''
res = requests.get(uri, headers=headers).json()
print(f''Webhook name is: {res["name"]}'')
'
- label: Shell
lang: shell
source: "curl -s -H 'Authorization: Bearer <your API token>' \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/webhooks/<your webhook id>' |\n jq .name\n"
put:
summary: Update a webhook subscription
description: Updates parameters for an existing webhook subscription.
operationId: updateWebhook
tags:
- Webhooks
parameters:
- $ref: '#/components/parameters/organizationId'
- $ref: '#/components/parameters/webhookId'
requestBody:
description: Parameters for the webhook subscription.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateWebhookRequest'
responses:
'200':
description: The webhook subscription was updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'429':
$ref: '#/components/responses/TooManyRequestsError'
x-codeSamples:
- label: Python 3.13
lang: python
source: "import requests\n\nheaders = {'Authorization': 'Bearer <your API token>'}\nuri = 'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/webhooks/<your webhook id>'\nbody = {\n 'target': 'https://example.com/my/new/target',\n}\nres = requests.put(uri, headers=headers, params=params, json=body).json()\n\nprint(f'Updated the webhook target URL')\n"
delete:
summary: Deletes a webhook subscription
description: Deletes a webhook subscription.
operationId: removeWebhook
tags:
- Webhooks
parameters:
- $ref: '#/components/parameters/organizationId'
- $ref: '#/components/parameters/webhookId'
responses:
'200':
description: Response indicating the webhook was deleted.
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteWebhookResult'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'429':
$ref: '#/components/responses/TooManyRequestsError'
x-codeSamples:
- label: Python 3.13
lang: python
source: 'import requests
headers = {''Authorization'': ''Bearer <your API token>''}
uri = ''https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/webhooks/<your webhook id>''
res = requests.delete(uri, headers=headers, params=params, json=body).json()
print(f''Deleted the webhook subscription'')
'
/organizations/{organizationId}/webhooks/{webhookId}/reset:
post:
summary: Reset a webhook subscription
description: Resets a webhook subscription. Will force re-initialization of the webhook subscription, including the initial handshake process. Used to re-start a webhook that previously failed the initial handshake or that has become disabled due to the target failing too many consecutive webhook payloads.
operationId: resetWebhook
tags:
- Webhooks
parameters:
- $ref: '#/components/parameters/organizationId'
- $ref: '#/components/parameters/webhookId'
responses:
'200':
description: Response indicating the webhook was reset.
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'429':
$ref: '#/components/responses/TooManyRequestsError'
x-codeSamples:
- label: Python 3.13
lang: python
source: 'import requests
headers = {''Authorization'': ''Bearer <your API token>''}
uri = ''https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/webhooks/<your webhook id>/reset''
res = requests.post(uri, headers=headers).json()
print(f''Webhook subscription has been reset'')
'
- label: Shell
lang: shell
source: "curl -s -H 'Authorization: Bearer <your API token>' \\\n 'https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/webhooks/<your webhook id>/reset'\n"
components:
schemas:
Webhook:
x-schema-name: Webhook
description: Info about a webhook subscription.
type: object
additionalProperties: false
required:
- type
- id
- resource
- target
- createdAt
- state
properties:
type:
type: string
description: The type of this resource.
enum:
- webhook
x-tsType: Type.Webhook
id:
type: string
description: ID of the Superhuman Docs webhook subscription.
example: f88ba9d9-037d-41df-a49c-49798701ed41
name:
type: string
description: Name of the webhook subscription.
example: My webhook
signatureKey:
type: string
description: 'Key used to generate HMAC payload signatures; should be used to verify the signature of incoming webhook notifications.
'
resource:
$ref: '#/components/schemas/WebhookWatchedResource'
target:
type: string
format: url
description: The target URL where webhook payloads will be sent
example: https://example.com/webhook/endpoint
filters:
$ref: '#/components/schemas/WebhookFilter'
createdAt:
type: string
format: date-time
description: Timestamp for when the webhook subscription was created.
example: '2018-04-11T00:18:57.946Z'
state:
type: string
description: The current state of the webhook subscription.
example: Active
lastFailureAt:
type: string
format: date-time
description: Timestamp for when the webhook last received an error while attempting to send a payload to the target.
example: '2018-04-11T00:18:57.946Z'
lastFailureContent:
type: string
description: Last error reported by the target.
example: 500 Server Error
lastSuccessAt:
type: string
format: date-time
description: Timestamp for when the webhook last successfully sent a payload to the target.
example: '2018-04-11T00:18:57.946Z'
NextPageToken:
description: If specified, an opaque token used to fetch the next page of results.
type: string
example: eyJsaW1pd
DeleteWebhookResult:
x-schema-name: DeleteWebhookResult
description: The result of deleting a webhook subscription.
type: object
additionalProperties: false
properties: {}
WebhookList:
x-schema-name: WebhookList
description: List of webhooks.
type: object
required:
- items
- href
additionalProperties: false
properties:
items:
type: array
items:
$ref: '#/components/schemas/Webhook'
href:
type: string
format: url
description: API link to these results
example: https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/webhooks
nextPageToken:
$ref: '#/components/schemas/NextPageToken'
nextPageLink:
allOf:
- $ref: '#/components/schemas/NextPageLink'
- type: string
example: https://docs.superhuman.com/apis/admin/v1/organizations/<your organization id>/webhooks?pageToken=eyJsaW1pd
UpdateWebhookRequest:
x-schema-name: UpdateWebhookRequest
description: Payload for creating or updating a webhook subscription.
type: object
additionalProperties: false
properties:
name:
type: string
description: Name of the webhook subscription.
example: My webhook
target:
type: string
format: url
description: The target URL where webhook payloads will be sent
example: https://example.com/webhook/endpoint
filters:
$ref: '#/components/schemas/WebhookFilter'
WebhookFilter:
x-schema-name: WebhookFilter
description: Filter set for the webhook subscription.
type: object
additionalProperties: false
properties:
or:
type: array
items:
$ref: '#/components/schemas/WebhookFilterPredicate'
WebhookWatchedResource:
x-schema-name: WebhookWatchedResource
description: Type of resource a webhook is subscribed to.
type: string
enum:
- auditEvents
x-tsEnumNames:
- AuditEvents
AddWebhookRequest:
x-schema-name: AddWebhookRequest
description: Payload for creating or updating a webhook subscription.
type: object
required:
- resource
- target
additionalProperties: false
properties:
name:
type: string
description: Name of the webhook subscription.
example: My webhook
resource:
$ref: '#/components/schemas/WebhookWatchedResource'
target:
type: string
format: url
description: The target URL where webhook payloads will be sent
example: https://example.com/webhook/endpoint
filters:
$ref: '#/components/schemas/WebhookFilter'
NextPageLink:
description: If specified, a link that can be used to fetch the next page of results.
type: string
format: url
WebhookFilterPredicate:
x-schema-name: WebhookFilterPredicate
description: One entry in a webhook subscription filter.
type: object
required:
- action
additionalProperties: false
properties:
action:
type: string
description: The event action.
example: EditDoc
parameters:
organizationId:
name: organizationId
description: ID of the organization.
in: path
required: true
example: org-AbCDeFGHIj
schema:
type: string
pageToken:
name: pageToken
description: An opaque token used to fetch the next page of results.
in: query
example: eyJsaW1pd
schema:
type: string
webhookId:
name: webhookId
description: ID of the webhook subscription.
in: path
required: true
example: f88ba9d9-037d-41df-a49c-49798701ed41
schema:
type: string
format: uuid
limit:
name: limit
description: Maximum number of results to return in this query.
in: query
example: 10
schema:
type: integer
minimum: 1
default: 100
maximum: 500
responses:
NotFoundError:
description: The resource could not be located with the current API token.
content:
application/json:
schema:
description: An HTTP error resulting from an unsuccessful request.
required:
- statusCode
- statusMessage
- message
additionalProperties: false
properties:
statusCode:
type: number
description: HTTP status code of the error.
example: 404
statusMessage:
type: string
description: HTTP status message of the error.
example: Not Found
message:
type: string
description: Any additional context on the error, or the same as `statusMessage` otherwise.
example: Not Found
TooManyRequestsError:
description: The client has sent too many requests.
content:
application/json:
schema:
description: An HTTP error resulting from an unsuccessful request.
required:
- statusCode
- statusMessage
- message
additionalProperties: false
properties:
statusCode:
type: number
description: HTTP status code of the error.
example: 429
statusMessage:
type: string
description: HTTP status message of the error.
example: Too Many Requests
message:
type: string
description: Any additional context on the error, or the same as `statusMessage` otherwise.
example: Too Many Requests
ForbiddenError:
description: The API token does not grant access to this resource.
content:
application/json:
schema:
description: An HTTP error resulting from an unsuccessful request.
required:
- statusCode
- statusMessage
- message
additionalProperties: false
properties:
statusCode:
type: number
description: HTTP status code of the error.
example: 403
statusMessage:
type: string
description: HTTP status message of the error.
example: Forbidden
message:
type: string
description: Any additional context on the error, or the same as `statusMessage` otherwise.
example: Forbidden
BadRequestError:
description: The request parameters did not conform to expectations.
content:
application/json:
schema:
description: An HTTP error resulting from an unsuccessful request.
required:
- statusCode
- statusMessage
- message
additionalProperties: false
properties:
statusCode:
type: number
description: HTTP status code of the error.
example: 400
statusMessage:
type: string
description: HTTP status message of the error.
example: Bad Request
message:
type: string
description: Any additional context on the error, or the same as `statusMessage` otherwise.
example: Bad Request
UnauthorizedError:
description: The API token is invalid or has expired.
content:
application/json:
schema:
description: An HTTP error resulting from an unsuccessful request.
required:
- statusCode
- statusMessage
- message
additionalProperties: false
properties:
statusCode:
type: number
description: HTTP status code of the error.
example: 401
statusMessage:
type: string
description: HTTP status message of the error.
example: Unauthorized
message:
type: string
description: Any additional context on the error, or the same as `statusMessage` otherwise.
example: Unauthorized
securitySchemes:
Bearer:
description: 'The Superhuman Docs Admin API can be accessed using an API token, which can be obtained from [*My account*](https://docs.superhuman.com/account)
in Superhuman Docs. This token should be specified by setting a header as follows.
```Authorization: Bearer <api_token>```
Keep your token safe, as anyone who gets access to it can access your account. Once a token is created
it cannot be viewed or modified, so don''t lose it.
'
type: http
scheme: bearer
bearerFormat: UUID
x-tagGroups:
- name: API Tokens
tags:
- API Tokens
- name: Docs
tags:
- Docs
- Doc Permissions
- Doc Export
- name: Doc Structure
tags:
- Pages
- name: Events
tags:
- Events
- name: Folders
tags:
- Folders
- Folder Permissions
- name: Groups
tags:
- Groups
- name: Import
tags:
- Preferences
- name: LegalHolds
tags:
- LegalHolds
- name: Organizations
tags:
- Organizations
- Organization Users
- Pack Controls
- Pack Configurations
- name: Packs
tags:
- Packs
- name: Webhooks
tags:
- Webhooks
- name: Workspaces
tags:
- Workspaces
- Workspace Users