Skip to content

Accept or decline a submission

PUT/v1/organization/{orgId}/sessions-workspace/events/{eventId}/sessions/{sessionId}/decision

US Region: https://public-api.sessionboard.com · EU Region: https://public-api-eu.sessionboard.com

Records the organizer's decision: accept, decline or undecided. No email is sent to the speakers. Accepting is refused past the plan's speakers per event (403 enterprise_only, upgrade: speakers). Requires write:sessions. Refused for a key restricted to particular events. Also at PUT /v1/sessions-workspace/events/{eventId}/sessions/{sessionId}/decision.

Request example

Terminal window
curl --request PUT \
--url 'https://public-api.sessionboard.com/v1/organization/{orgId}/sessions-workspace/events/{eventId}/sessions/{sessionId}/decision' \
--header 'x-access-token: <api-token>' \
--header 'Content-Type: application/json' \
--data '{
"decision": "accept",
"source": {
"client": "<string>",
"version": "<string>",
"run_id": "<string>",
"prompt": "<string>"
}
}'

Try it

Authorization

Your token stays in this page. It is sent only to the region above and is never saved; it is gone when you leave or reload the page.

Path parameters
Body application/json
PUT

Authorizations

  • x-access-tokenstringheader

    Organization API token. Generate from Organization Settings → API Tokens.

  • AuthorizationBearer <token>headeror

    OAuth 2.1 access token. Obtained via the OAuth PKCE flow at /oauth/token.

Send one of these. See Authentication.

Path parameters

  • orgIdstringpathrequired

    Your organization ID. Any other organization returns 404.

  • eventIdintegerpathrequired

    The Sessions event ID.

  • sessionIdstring<uuid>pathrequired

    The session ID.

Request body

application/jsonrequired

  • decisionstringrequired
    Allowed values
    "accept", "decline", "undecided"
  • sourceSessionsWorkspaceSource

    Optional on every write: which assistant is calling and what the person asked it. Recorded with the change in the organization's activity and on any approval request.

    Show child attributes
    • clientstring
    • versionstring
    • run_idstring
    • promptstring
      Max length
      2000
{
"decision": "accept",
"source": {
"client": "<string>",
"version": "<string>",
"run_id": "<string>",
"prompt": "<string>"
}
}

Responses

200application/json

OK

  • successboolean
  • payloadobject
    Show child attributes
    • sessionSessionsWorkspaceSession
      Show child attributes
      • idstring<uuid>
      • titlestring
      • descriptionstring | null

        Plain text.

      • statusstring

        pending (undecided), accepted or declined.

      • track_idstring | null
      • format_idstring | null
      • room_idstring | null
      • starts_atstring<date-time> | null
      • ends_atstring<date-time> | null
      • submittedboolean

        Came through the call for speakers.

      • created_atstring<date-time>
      • speakersSessionsWorkspaceSessionSpeaker[]
        Show child attributes
        • contact_idstring<uuid>
        • namestring | null
        • emailstring | null
        • titlestring | null
        • rolestring | null
      • sponsor_idsstring<uuid>[]

400application/json

VALIDATION_ERROR: the body or a path id does not match the schema. source is always accepted.

  • errorstring
    Allowed values
    "VALIDATION_ERROR", "SCOPE_REQUIRED", "ORG_WIDE_TOKEN_REQUIRED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "QUOTA_EXCEEDED"
  • messagestringrequired
  • codestring

    A more specific reason: enterprise_only, trial_ended, plan_ended, in_use.

  • upgradestring

    With enterprise_only: what needs a bigger plan or the platform (events, speakers, review_plans, forms, …).

401

Missing, invalid or expired token.

403application/json

  • SCOPE_REQUIRED: the token lacks write:sessions.
  • ORG_WIDE_TOKEN_REQUIRED: the key is restricted to particular events.
  • code: enterprise_only with upgrade: the self-serve plan does not include it (another event this year, more speakers on the event); a person chooses a bigger plan or talks to us about the platform.
  • code: trial_ended or plan_ended: the self-serve plan is read-only; everything can still be read.
  • FORBIDDEN with no code: the token's user is not an organization admin.
  • errorstring
    Allowed values
    "VALIDATION_ERROR", "SCOPE_REQUIRED", "ORG_WIDE_TOKEN_REQUIRED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "QUOTA_EXCEEDED"
  • messagestringrequired
  • codestring

    A more specific reason: enterprise_only, trial_ended, plan_ended, in_use.

  • upgradestring

    With enterprise_only: what needs a bigger plan or the platform (events, speakers, review_plans, forms, …).

404application/json

NOT_FOUND: orgId is not the token's organization, or the event, session or sponsor is not in it.

  • errorstring
    Allowed values
    "VALIDATION_ERROR", "SCOPE_REQUIRED", "ORG_WIDE_TOKEN_REQUIRED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "QUOTA_EXCEEDED"
  • messagestringrequired
  • codestring

    A more specific reason: enterprise_only, trial_ended, plan_ended, in_use.

  • upgradestring

    With enterprise_only: what needs a bigger plan or the platform (events, speakers, review_plans, forms, …).

423

A person has paused connected assistants for the organization (code: AGENT_WRITES_PAUSED); writes wait until they resume it in Sessionboard.

429

The token's request limit (100 requests per 15 minutes by default) or, for writes, its daily write quota. Wait Retry-After seconds.

  • Retry-Afterintegerheader

    Seconds to wait before retrying.

Response examples

{
"success": true,
"payload": {
"session": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"description": "<string>",
"status": "<string>",
"track_id": "<string>",
"format_id": "<string>",
"room_id": "<string>",
"starts_at": "2026-01-15T09:30:00Z",
"ends_at": "2026-01-15T09:30:00Z",
"submitted": true,
"created_at": "2026-01-15T09:30:00Z",
"speakers": [
{
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"email": "<string>",
"title": "<string>",
"role": "<string>"
}
],
"sponsor_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
}
}