Eventship Broadcast API
The Broadcast API from Eventship — 2 operation(s) for broadcast.
The Broadcast API from Eventship — 2 operation(s) for broadcast.
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/eventship-com:eventship-com-broadcast-api"
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.
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: Eventship Com Broadcast API
version: '1.0'
description: 'Operations tagged Broadcast across 2 of this provider''s published API definitions: developer.eventship.com.json, eventship-com-openapi.json. Each path carries the servers of the definition it was published in.'
security:
- ApiKeyAuth: []
tags:
- name: Broadcast
paths:
/v1/events/{event_slug}/broadcast:
post:
tags:
- Broadcast
summary: Send Broadcast
description: 'Send a message to attendees of an event.
Supports the same filtering options as the web app''s broadcast composer:
- Filter by registration status (``confirmed``, ``pending``, ``invited``,
``waitlisted``, ``cancelled``, ``declined``). Omit to target the
default set (confirmed + pending + invited).
- Filter by specific ticket type IDs. Omit to include all ticket types.
- Optionally post the message to the event feed.
Recipients who have opted out of event messages for this host are
automatically excluded. Free-tier hosts are subject to the monthly
email quota; upgrade to Pro for a higher allowance.'
operationId: send_broadcast_v1_events__event_slug__broadcast_post
parameters:
- name: event_slug
in: path
required: true
schema:
type: string
title: Event Slug
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ExternalBroadcastRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse_ExternalBroadcastResponse_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/events/{event_slug}/broadcast/count:
post:
tags:
- Broadcast
summary: Preview Broadcast Count
description: 'Preview how many recipients a broadcast would reach with the given filters.
Useful for verifying targeting before sending. Applies the same opt-out
and email-presence filters as the send endpoint.'
operationId: preview_broadcast_count_v1_events__event_slug__broadcast_count_post
parameters:
- name: event_slug
in: path
required: true
schema:
type: string
title: Event Slug
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ExternalBroadcastCountRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse_ExternalBroadcastCountResponse_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
ApiResponse_ExternalBroadcastResponse_:
properties:
data:
$ref: '#/components/schemas/ExternalBroadcastResponse'
success:
type: boolean
title: Success
default: true
message:
anyOf:
- type: string
- type: 'null'
title: Message
type: object
required:
- data
title: ApiResponse[ExternalBroadcastResponse]
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ApiResponse_ExternalBroadcastCountResponse_:
properties:
data:
$ref: '#/components/schemas/ExternalBroadcastCountResponse'
success:
type: boolean
title: Success
default: true
message:
anyOf:
- type: string
- type: 'null'
title: Message
type: object
required:
- data
title: ApiResponse[ExternalBroadcastCountResponse]
ExternalBroadcastCountRequest:
properties:
registrationStatuses:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Registrationstatuses
ticketTypeIds:
anyOf:
- items:
type: integer
type: array
- type: 'null'
title: Tickettypeids
additionalProperties: false
type: object
title: ExternalBroadcastCountRequest
description: Request to preview how many recipients a broadcast would target.
ExternalBroadcastRequest:
properties:
subject:
anyOf:
- type: string
maxLength: 500
- type: 'null'
title: Subject
description: Email subject line. Optional — if omitted or blank, defaults to "📣 {event title} update" (the same placeholder the web composer pre-fills for hosts).
bodyHtml:
type: string
minLength: 1
title: Bodyhtml
description: Email body. Plain text or safe HTML.
registrationStatuses:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Registrationstatuses
description: 'Filter by registration status. Valid values: ''confirmed'', ''pending'', ''invited'', ''waitlisted'', ''cancelled'', ''declined''. Omit to target the default set (confirmed, pending, invited).'
ticketTypeIds:
anyOf:
- items:
type: integer
type: array
- type: 'null'
title: Tickettypeids
description: Filter by ticket type IDs. Omit to include all ticket types.
postToFeed:
type: boolean
title: Posttofeed
description: If true, also post the message to the event's feed.
default: false
additionalProperties: false
type: object
required:
- bodyHtml
title: ExternalBroadcastRequest
description: 'Request to send a broadcast message to event attendees via the API.
Mirrors the filtering / targeting options available in the web app''s
broadcast composer: filter by registration status, ticket type, or both.
Omit both filters to target the default audience (confirmed + pending +
invited attendees who haven''t opted out of event messages).'
ExternalBroadcastCountResponse:
properties:
recipientsCount:
type: integer
title: Recipientscount
type: object
required:
- recipientsCount
title: ExternalBroadcastCountResponse
description: Recipient count for a hypothetical broadcast with the given filters.
ExternalBroadcastResponse:
properties:
broadcastId:
type: string
title: Broadcastid
recipientsCount:
type: integer
title: Recipientscount
status:
type: string
title: Status
description: '`sent`, or `held` when the message is waiting for review before it goes out. A held message sends once approved; do not resend it. `recipientsCount` is then the audience it will reach.'
default: sent
type: object
required:
- broadcastId
- recipientsCount
title: ExternalBroadcastResponse
description: Result of sending a broadcast via the external API.
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
description: Your host API key. Create one from your host dashboard settings.
x-refined-from:
- developer.eventship.com.json
- eventship-com-openapi.json