Eventship Questions API
The Questions API from Eventship — 3 operation(s) for questions.
The Questions API from Eventship — 3 operation(s) for questions.
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-questions-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 Questions API
version: '1.0'
description: 'Operations tagged Questions 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: Questions
paths:
/v1/events/{event_slug}/questions:
get:
tags:
- Questions
summary: List Questions
description: List registration questions for an event.
operationId: list_questions_v1_events__event_slug__questions_get
parameters:
- name: event_slug
in: path
required: true
schema:
type: string
title: Event Slug
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ExternalQuestionResponse'
title: Response List Questions V1 Events Event Slug Questions Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
post:
tags:
- Questions
summary: Create Question
description: 'Add a registration question to an event.
``condition`` (Pro) makes the question conditional on an earlier
select / multiselect / checkbox question''s answer.'
operationId: create_question_v1_events__event_slug__questions_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/ExternalQuestionCreateRequest'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ExternalQuestionResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/events/{event_slug}/question-insights:
get:
tags:
- Questions
summary: Get Question Insights
description: 'AI-summarized aggregate of confirmed attendees'' registration answers.
Returns one entry per question worth aggregating (e.g. dietary preference,
the city people are travelling from), each with bucketed counts across the
going attendees. Pro feature.'
operationId: get_question_insights_v1_events__event_slug__question_insights_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/ExternalQuestionInsightsResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/events/{event_slug}/questions/{question_id}:
patch:
tags:
- Questions
summary: Update Question
description: 'Update a registration question.
``condition`` is tri-state: omitted = unchanged, null = remove logic,
object = set logic (Pro).'
operationId: update_question_v1_events__event_slug__questions__question_id__patch
parameters:
- name: event_slug
in: path
required: true
schema:
type: string
title: Event Slug
- name: question_id
in: path
required: true
schema:
type: integer
title: Question Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ExternalQuestionUpdateRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ExternalQuestionResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Questions
summary: Delete Question
description: 'Remove a registration question from an event.
Conditions on other questions that depend on the deleted one are
cleared — they become always-visible.'
operationId: delete_question_v1_events__event_slug__questions__question_id__delete
parameters:
- name: event_slug
in: path
required: true
schema:
type: string
title: Event Slug
- name: question_id
in: path
required: true
schema:
type: integer
title: Question Id
responses:
'204':
description: Successful Response
'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
QuestionType:
type: string
enum:
- text
- textarea
- select
- checkbox
- multiselect
- address
title: QuestionType
description: Type of registration question on an event.
ExternalQuestionResponse:
properties:
id:
type: integer
title: Id
questionText:
type: string
title: Questiontext
questionType:
$ref: '#/components/schemas/QuestionType'
options:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Options
addressScope:
anyOf:
- type: string
enum:
- full
- postal_code
- type: 'null'
title: Addressscope
isRequired:
type: boolean
title: Isrequired
default: false
condition:
anyOf:
- $ref: '#/components/schemas/QuestionConditionSchema'
- type: 'null'
description: 'Conditional visibility (Pro): only shown when the source question''s answer matches (op ''is'') / does not match (op ''is_not'') one of the values. Required-ness only applies while visible.'
type: object
required:
- id
- questionText
- questionType
title: ExternalQuestionResponse
description: 'Registration question for external API consumers.
Reads carry the full ``QuestionType``, deliberately including ``address``.
The external API cannot *author* an address question (see
``AuthoredQuestionType`` on the create/update requests below), but the host
can add the mailing-address system question in-app, and this schema then has
to serialize it — narrowing the type here would 500 every read of that event.'
QuestionConditionSchema:
properties:
sourceQuestionId:
type: integer
title: Sourcequestionid
op:
type: string
enum:
- is
- is_not
title: Op
values:
items:
type: string
type: array
minItems: 1
title: Values
type: object
required:
- sourceQuestionId
- op
- values
title: QuestionConditionSchema
description: 'Conditional visibility rule on a registration/membership question.
The question is only shown when the source question''s answer matches
(``is``) / does not match (``is_not``) one of ``values``. Canonical
evaluation semantics: ``api/services/question_visibility.py``.'
ExternalInsightBucket:
properties:
label:
type: string
title: Label
count:
type: integer
title: Count
type: object
required:
- label
- count
title: ExternalInsightBucket
description: One bucketed category within a registration-question insight.
ExternalQuestionInsight:
properties:
label:
type: string
title: Label
buckets:
items:
$ref: '#/components/schemas/ExternalInsightBucket'
type: array
title: Buckets
moreCount:
type: integer
title: Morecount
description: Number of distinct answer values beyond the returned buckets (buckets are capped at the most common few).
default: 0
type: object
required:
- label
- buckets
title: ExternalQuestionInsight
description: Aggregated breakdown of one registration question's answers.
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ExternalQuestionCreateRequest:
properties:
questionText:
type: string
maxLength: 2000
title: Questiontext
questionType:
type: string
enum:
- text
- textarea
- select
- checkbox
- multiselect
title: AuthoredQuestionType
default: text
options:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Options
isRequired:
type: boolean
title: Isrequired
default: false
condition:
anyOf:
- $ref: '#/components/schemas/ExternalQuestionCondition'
- type: 'null'
description: Conditional visibility (Pro plan). The source question must be an earlier select / multiselect / checkbox question; values must be among its options ('yes'/'no' for checkbox).
additionalProperties: false
type: object
required:
- questionText
title: ExternalQuestionCreateRequest
description: Request to create a registration question via the external API.
ExternalQuestionInsightsResponse:
properties:
insights:
items:
$ref: '#/components/schemas/ExternalQuestionInsight'
type: array
title: Insights
type: object
required:
- insights
title: ExternalQuestionInsightsResponse
description: AI-summarized aggregate of confirmed attendees' registration answers.
ExternalQuestionCondition:
properties:
sourceQuestionId:
type: integer
title: Sourcequestionid
op:
type: string
enum:
- is
- is_not
title: Op
values:
items:
type: string
type: array
minItems: 1
title: Values
additionalProperties: false
type: object
required:
- sourceQuestionId
- op
- values
title: ExternalQuestionCondition
description: '``condition`` as the external API accepts it: the shared rule, strict.
Fields come from ``QuestionConditionSchema`` (one definition, so the two
cannot drift) and ``extra="forbid"`` comes from ``ExternalRequest``. Base
order is load-bearing: Pydantic merges each base''s ``model_config`` in
declaration order, so ``ExternalRequest`` has to come last to win. It is
also a real subclass of the shared schema, so the validators and services
that read a condition keep their existing parameter type.
The shared schema itself stays permissive because the web and mobile
wizards post to the first-party question routes; strictness that would
422 our own clients is a separate decision.'
ExternalQuestionUpdateRequest:
properties:
questionText:
anyOf:
- type: string
maxLength: 2000
- type: 'null'
title: Questiontext
questionType:
anyOf:
- type: string
enum:
- text
- textarea
- select
- checkbox
- multiselect
title: AuthoredQuestionType
- type: 'null'
options:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Options
isRequired:
anyOf:
- type: boolean
- type: 'null'
title: Isrequired
condition:
anyOf:
- $ref: '#/components/schemas/ExternalQuestionCondition'
- type: 'null'
additionalProperties: false
type: object
title: ExternalQuestionUpdateRequest
description: 'Request to update a registration question via the external API.
All fields are optional — only provided fields are updated.
``condition`` is tri-state: omitted = unchanged, null = remove logic,
object = set logic (Pro plan).'
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