Eventship Speakers API
The Speakers API from Eventship — 3 operation(s) for speakers.
The Speakers API from Eventship — 3 operation(s) for speakers.
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-speakers-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 Speakers API
version: '1.0'
description: 'Operations tagged Speakers 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: Speakers
paths:
/v1/speakers/search:
get:
tags:
- Speakers
summary: Search Speakers
description: 'Search the shared speaker directory by name.
Speaker profiles are reusable across events, so call this first and reuse a
match (pass its ``id`` as ``speakerId`` when adding) instead of creating a
duplicate. This is the same search-first flow the web editor uses.'
operationId: search_speakers_v1_speakers_search_get
parameters:
- name: q
in: query
required: true
schema:
type: string
minLength: 1
maxLength: 100
description: Search query
title: Q
description: Search query
- name: limit
in: query
required: false
schema:
type: integer
maximum: 50
minimum: 1
default: 10
title: Limit
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse_list_SpeakerSearchResult__'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/events/{event_slug}/speakers:
get:
tags:
- Speakers
summary: List Event Speakers
description: 'List the speakers on an event.
Each entry''s ``id`` is the appearance id used to update or remove that
speaker, ``speakerId`` is the shared profile id, ``sessionIds`` are the
sessions they speak at, and ``createdByMe`` indicates whether you created the
profile (only then can you edit its canonical name).'
operationId: list_event_speakers_v1_events__event_slug__speakers_get
parameters:
- name: event_slug
in: path
required: true
schema:
type: string
title: Event Slug
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse_list_Speaker__'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
post:
tags:
- Speakers
summary: Add Event Speaker
description: 'Add a speaker to an event.
Provide ``speakerId`` (from ``GET /v1/speakers/search``) to reuse an existing
profile, or ``name`` (plus optional ``title``/``company``/``bio``/
``headshot``/``linkedin``) to create a new one. When reusing a profile, any
fields you send backfill the shared profile if it was empty, otherwise apply
only to this event.'
operationId: add_event_speaker_v1_events__event_slug__speakers_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/api__schemas__event__SpeakerCreateRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse_Speaker_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/events/{event_slug}/speakers/{appearance_id}:
patch:
tags:
- Speakers
summary: Update Event Speaker
description: 'Update a speaker on an event.
``appearance_id`` is the ``id`` from ``GET /v1/events/{event_slug}/speakers``.
Send ``""`` to clear a field for this event; omit a field to leave it
unchanged. The canonical ``name`` changes only if you created the profile.'
operationId: update_event_speaker_v1_events__event_slug__speakers__appearance_id__patch
parameters:
- name: event_slug
in: path
required: true
schema:
type: string
title: Event Slug
- name: appearance_id
in: path
required: true
schema:
type: string
title: Appearance Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/api__schemas__event__SpeakerUpdateRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse_Speaker_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Speakers
summary: Delete Event Speaker
description: 'Remove a speaker from an event.
Deletes the appearance (all sessions for that speaker on this event); the
shared speaker profile itself is never deleted.'
operationId: delete_event_speaker_v1_events__event_slug__speakers__appearance_id__delete
parameters:
- name: event_slug
in: path
required: true
schema:
type: string
title: Event Slug
- name: appearance_id
in: path
required: true
schema:
type: string
title: Appearance Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse_dict_'
'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
api__schemas__event__SpeakerCreateRequest:
properties:
speakerId:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Speakerid
name:
anyOf:
- type: string
maxLength: 255
- type: 'null'
title: Name
title:
anyOf:
- type: string
maxLength: 255
- type: 'null'
title: Title
company:
anyOf:
- type: string
maxLength: 255
- type: 'null'
title: Company
companyId:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Companyid
bio:
anyOf:
- type: string
- type: 'null'
title: Bio
headshot:
anyOf:
- type: string
maxLength: 2048
- type: 'null'
title: Headshot
linkedin:
anyOf:
- type: string
maxLength: 2048
- type: 'null'
title: Linkedin
sessionIds:
items:
type: integer
type: array
title: Sessionids
role:
anyOf:
- type: string
maxLength: 100
- type: 'null'
title: Role
customTitle:
anyOf:
- type: string
maxLength: 255
- type: 'null'
title: Customtitle
customBio:
anyOf:
- type: string
- type: 'null'
title: Custombio
type: object
title: SpeakerCreateRequest
description: Request to add a speaker to an event (creates appearance).
ApiResponse_Speaker_:
properties:
data:
$ref: '#/components/schemas/Speaker'
success:
type: boolean
title: Success
default: true
message:
anyOf:
- type: string
- type: 'null'
title: Message
type: object
required:
- data
title: ApiResponse[Speaker]
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
api__schemas__event__SpeakerUpdateRequest:
properties:
sessionIds:
anyOf:
- items:
type: integer
type: array
- type: 'null'
title: Sessionids
role:
anyOf:
- type: string
maxLength: 100
- type: 'null'
title: Role
customTitle:
anyOf:
- type: string
maxLength: 255
- type: 'null'
title: Customtitle
customBio:
anyOf:
- type: string
- type: 'null'
title: Custombio
name:
anyOf:
- type: string
maxLength: 255
- type: 'null'
title: Name
title:
anyOf:
- type: string
maxLength: 255
- type: 'null'
title: Title
company:
anyOf:
- type: string
maxLength: 255
- type: 'null'
title: Company
headshot:
anyOf:
- type: string
maxLength: 2048
- type: 'null'
title: Headshot
bio:
anyOf:
- type: string
- type: 'null'
title: Bio
linkedin:
anyOf:
- type: string
maxLength: 2048
- type: 'null'
title: Linkedin
type: object
title: SpeakerUpdateRequest
description: Request to update a speaker appearance and optionally the speaker profile.
ApiResponse_list_SpeakerSearchResult__:
properties:
data:
items:
$ref: '#/components/schemas/SpeakerSearchResult'
type: array
title: Data
success:
type: boolean
title: Success
default: true
message:
anyOf:
- type: string
- type: 'null'
title: Message
type: object
required:
- data
title: ApiResponse[list[SpeakerSearchResult]]
Speaker:
properties:
id:
type: string
title: Id
speakerId:
type: string
title: Speakerid
default: ''
name:
type: string
title: Name
title:
anyOf:
- type: string
- type: 'null'
title: Title
company:
anyOf:
- type: string
- type: 'null'
title: Company
headshot:
anyOf:
- type: string
- type: 'null'
title: Headshot
bio:
anyOf:
- type: string
- type: 'null'
title: Bio
linkedin:
anyOf:
- type: string
- type: 'null'
title: Linkedin
role:
anyOf:
- type: string
- type: 'null'
title: Role
sessionIds:
items:
type: integer
type: array
title: Sessionids
sortOrder:
type: integer
title: Sortorder
default: 0
createdByMe:
type: boolean
title: Createdbyme
default: false
type: object
required:
- id
- speakerId
- name
- title
- company
- headshot
- bio
- linkedin
- role
- sessionIds
- sortOrder
- createdByMe
title: Speaker
description: Event speaker appearance - response schema.
ApiResponse_list_Speaker__:
properties:
data:
items:
$ref: '#/components/schemas/Speaker'
type: array
title: Data
success:
type: boolean
title: Success
default: true
message:
anyOf:
- type: string
- type: 'null'
title: Message
type: object
required:
- data
title: ApiResponse[list[Speaker]]
ApiResponse_dict_:
properties:
data:
additionalProperties: true
type: object
title: Data
success:
type: boolean
title: Success
default: true
message:
anyOf:
- type: string
- type: 'null'
title: Message
type: object
required:
- data
title: ApiResponse[dict]
SpeakerSearchResult:
properties:
id:
type: string
title: Id
slug:
type: string
title: Slug
name:
type: string
title: Name
title:
anyOf:
- type: string
- type: 'null'
title: Title
companyName:
anyOf:
- type: string
- type: 'null'
title: Companyname
headshot:
anyOf:
- type: string
- type: 'null'
title: Headshot
type: object
required:
- id
- slug
- name
title: SpeakerSearchResult
description: Speaker search result for autocomplete.
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