Every API 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 apis
7 MCP tools reach this
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.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/eventsend-io:eventsend-io-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.
openapi: 3.1.0
info:
title: EventSend API
version: '2026-11-07'
description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-07: 9 operation(s) read from 9 public documentation page(s) (each operation
names its page in x-source). This is not the provider''s published contract; EventSend has published no machine-readable contract that the
pipeline could find. Engine: oss.'
x-evidence-tiers:
code-example: 4
documentation: 5
pages-with-code: 6
pages-read: 9
x-generated-from: documentation
x-provenance: generated
x-authored-by: API Evangelist
x-generated: '2026-11-07'
x-generator: generate-contract-from-docs.py
x-engine: oss
x-sources:
- https://eventsend.io/docs/api
- https://eventsend.io/docs/quickstart
- https://eventsend.io/alternatives/zapier
- https://eventsend.io/docs/webhook-signatures
- https://eventsend.io/docs/mcp
- https://eventsend.io/docs/recipes/deploy-notifications
- https://eventsend.io/docs/recipes/telegram-error-alerts
- https://eventsend.io/alternatives/logsnag
- https://eventsend.io/alternatives/pagerduty
paths:
/api/events:
get:
operationId: get_api_events
tags:
- Api
summary: GET /api/events
x-source: https://eventsend.io/docs/quickstart
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetApiEventsResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl, JavaScript, Python, Elixir, and Go. \n Tracking an event is a single HTTP POST to your route's URL. There is no SDK, no\
\ client library, and\nnothing to install — if your language can make an HTTP request, it can track events. \n 1. Get your route token\
\ \n In the dashboard, open Routes and create a route (or open an existing one). The route card shows\nits route token — a value starting\
\ with es_ —"
post:
operationId: post_api_events
tags:
- Api
summary: Reference for POST /api/events — fields, limits, levels, idempotency, rate limits, and every response code.
description: One endpoint, one method, JSON in. Every accepted event is recorded in your event history and analytics, then routed by the
topics you set up in the dashboard.
x-source: https://eventsend.io/docs/api
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostApiEventsRequest'
responses:
'202':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostApiEventsResponse'
x-evidence:
kind: documentation
/api/events/es_YOUR_TOKEN:
post:
operationId: post_api_events_es_YOUR_TOKEN
tags:
- Api
summary: The path form POST https://eventsend.io/api/events/es_YOUR_TOKEN is the original form and stays supported indefinitely.
description: Same authorization, idempotency, quota, and response codes as the header form; token is supplied in the URL path.
x-source: https://eventsend.io/docs/api
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostApiEventsEsYourTokenRequest'
responses:
'202':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostApiEventsEsYourTokenResponse'
x-evidence:
kind: documentation
/api/sources/{token}:
post:
operationId: post_api_sources_token
tags:
- Api
summary: 'Events from a third‑party provider use a different endpoint: POST /api/sources/:token.'
description: The token starts with src_. EventSend verifies the provider's signature over the raw request body before parsing.
x-source: https://eventsend.io/docs/api
parameters:
- name: token
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostApiSourcesTokenResponse'
x-evidence:
kind: documentation
/hooks/catch/{catchid}/abcdefg:
post:
operationId: post_hooks_catch_catchid_abcdefg
tags:
- Hooks
summary: POST /hooks/catch/{catchId}/abcdefg
x-source: https://eventsend.io/alternatives/zapier
parameters:
- name: catchid
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostHooksCatchCatchidAbcdefgRequest'
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -X POST https://hooks.zapier.com/hooks/catch/1234567/abcdefg/ -H \"Content-Type: application/json\" -d '{\n \"type\"\
: \"payment_failed\",\n \"customer\": \" [email protected] \",\n \"amount\": \"49.00\"\n }' \n after: EventSend"
/mcp:
post:
operationId: post_mcp
tags:
- Mcp
summary: POST https://eventsend.io/mcp
description: The server speaks the MCP Streamable HTTP transport and answers every request with a plain JSON response. The request body
is capped at 64 KB.
x-source: https://eventsend.io/docs/mcp
parameters:
- name: Authorization
in: header
required: true
schema:
type: string
description: Bearer token for authentication, e.g., mcp_YOUR_KEY
- name: Content-Type
in: header
required: true
schema:
type: string
description: Must be application/json
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: documentation
/v1/log:
post:
operationId: post_v1_log
tags:
- Log
summary: POST /v1/log
x-source: https://eventsend.io/alternatives/logsnag
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostV1LogRequest'
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -X POST https://api.logsnag.com/v1/log -H \"Authorization: Bearer $LOGSNAG_TOKEN\" -H \"Content-Type: application/json\"\
\ -d '{\n \"project\": \"my-saas\",\n \"channel\": \"payments\",\n \"event\": \"New Payment\",\n \"description\": \"$49 from [email protected]\
\ \",\n \"icon\": \"\U0001F4B0\",\n \"notify\": true,\n \"user_id\": \"cus_9Xk2\",\n \"timestamp\": 1789000000,\n \"tags\": {\"plan\"\
: \"pro\"}\n }' \n after: EventSend"
/v2/enqueue:
post:
operationId: post_v2_enqueue
tags:
- Enqueue
summary: POST /v2/enqueue
x-source: https://eventsend.io/alternatives/pagerduty
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostV2EnqueueRequest'
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -X POST https://events.pagerduty.com/v2/enqueue -H \"Content-Type: application/json\" -d '{\n \"routing_key\": \"YOUR_INTEGRATION_KEY\"\
,\n \"event_action\": \"trigger\",\n \"dedup_key\": \"db-primary-disk\",\n \"payload\": {\n \"summary\": \"Disk 95% full on db-primary\"\
,\n \"source\": \"db-primary\",\n \"severity\": \"critical\",\n \"custom_details\": {\"free_gb\": 4}\n }\n }' \n after: EventSend"
/your-endpoint:
post:
operationId: post_your_endpoint
tags:
- Your Endpoint
summary: Verify that a webhook delivery really came from EventSend using HMAC‑SHA256
description: EventSend sends webhook deliveries to your endpoint with a JSON body and signature headers. Respond with any 2xx after verification.
x-source: https://eventsend.io/docs/webhook-signatures
parameters:
- name: Content-Type
in: header
required: true
schema:
type: string
description: Must be "application/json".
- name: X-EventSend-Signature
in: header
required: true
schema:
type: string
description: sha256= followed by a lowercase hex HMAC‑SHA256 digest of the timestamp and raw body.
- name: X-EventSend-Timestamp
in: header
required: true
schema:
type: string
description: Unix time in seconds when the delivery was signed.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostYourEndpointRequest'
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: documentation
components:
schemas:
GetApiEventsResponse:
type: object
properties:
success:
type: boolean
message:
type: string
PostApiEventsRequest:
type: object
properties:
event:
type: string
description: The event name, 4–64 characters. Analytics count by it, search matches it, and topic patterns match against it.
message:
type: string
description: Human‑readable text, 4–500 characters. It is searchable in your event history and is the body of the delivered message.
payload:
type: object
description: Structured data, at most 4096 bytes once JSON‑encoded. Send {} if you have nothing to attach.
level:
type: string
description: One of default, success, warning, error, critical. Defaults to default.
icon:
type: string
description: An emoji or short string, 1–16 characters, shown next to the message.
unique_key:
type: string
description: 4–128 characters. Makes the request idempotent.
user_id:
type: string
description: 1–128 characters. Your own stable identifier for the customer this event is about.
occurred_at:
type: string
description: ISO‑8601 timestamp of when the thing happened. Defaults to receipt time. Must be within allowed range.
required:
- event
- message
- payload
PostApiEventsResponse:
type: object
properties:
success:
type: boolean
description: Indicates whether the request succeeded.
message:
type: string
description: Human‑readable description of the result.
error:
type: string
description: Error identifier when success is false.
details:
type: object
description: Additional validation error details (present on 422).
PostApiEventsEsYourTokenRequest:
type: object
properties:
event:
type: string
description: The event name, 4–64 characters.
message:
type: string
description: Human‑readable text, 4–500 characters.
payload:
type: object
description: Structured data, at most 4096 bytes once JSON‑encoded.
level:
type: string
description: One of default, success, warning, error, critical.
icon:
type: string
description: An emoji or short string, 1–16 characters.
unique_key:
type: string
description: 4–128 characters. Makes the request idempotent.
user_id:
type: string
description: 1–128 characters. Your own stable identifier for the customer.
occurred_at:
type: string
description: ISO‑8601 timestamp of when the thing happened.
required:
- event
- message
- payload
PostApiEventsEsYourTokenResponse:
type: object
properties:
success:
type: boolean
description: Indicates whether the request succeeded.
message:
type: string
description: Human‑readable description of the result.
error:
type: string
description: Error identifier when success is false.
details:
type: object
description: Additional validation error details (present on 422).
PostApiSourcesTokenResponse:
type: object
properties:
success:
type: boolean
description: Indicates whether the request succeeded.
error:
type: string
description: Error identifier when success is false (e.g., invalid signature, unknown token).
message:
type: string
description: Human‑readable description of the result.
PostHooksCatchCatchidAbcdefgRequest:
type: object
properties:
type:
type: string
customer:
type: string
amount:
type: string
PostV1LogRequest:
type: object
properties:
project:
type: string
channel:
type: string
event:
type: string
description:
type: string
icon:
type: string
notify:
type: boolean
user_id:
type: string
timestamp:
type: integer
tags:
type: object
properties:
plan:
type: string
PostV2EnqueueRequest:
type: object
properties:
routing_key:
type: string
event_action:
type: string
dedup_key:
type: string
payload:
type: object
properties:
summary:
type: string
source:
type: string
severity:
type: string
custom_details:
type: object
properties:
free_gb:
type: integer
PostYourEndpointRequest:
type: object
properties:
id:
type: string
description: The event's stable public identifier (e.g., "evt_AZO48DwqfB6fWitt1Mjhpw").
event:
type: string
description: Name of the event (e.g., "user-signup").
level:
type: string
description: Severity level of the event (e.g., "success").
message:
type: string
description: Human‑readable description of the event.
payload:
type: object
description: Arbitrary event‑specific data (e.g., {"user_id":123,"plan":"free"}).
timestamp:
type: string
description: ISO‑8601 timestamp of the event (e.g., "2026-07-17T12:33:20.000000Z").
required:
- id
- event
- level
- message
- payload
- timestamp
securitySchemes:
bearer:
type: http
scheme: bearer
security:
- bearer: []
tags:
- name: Api
- name: Enqueue
- name: Hooks
- name: Log
- name: Mcp
- name: Your Endpoint