Skip to content

Ask to open the call for speakers

POST/v1/organization/{orgId}/sessions-workspace/events/{eventId}/cfp/open

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

Asks a person to open the call. Opening makes the public form take submissions, so an API call never opens it directly: it answers 202 with status: needs_approval and a link, and nothing changes until a person approves it in Sessionboard Sessions. It then runs as that person. Do not call again for the same change. A trial opens without a card. Requires write:sessions. Refused for a key restricted to particular events. Also at POST /v1/sessions-workspace/events/{eventId}/cfp/open.

Request example

Terminal window
curl --request POST \
--url 'https://public-api.sessionboard.com/v1/organization/{orgId}/sessions-workspace/events/{eventId}/cfp/open' \
--header 'x-access-token: <api-token>' \
--header 'Content-Type: application/json' \
--data '{
"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
POST

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.

Request body

application/json

  • 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
{
"source": {
"client": "<string>",
"version": "<string>",
"run_id": "<string>",
"prompt": "<string>"
}
}

Responses

202application/json

Waiting for a person: nothing was published. payload.url opens the request in Sessionboard Sessions, where a person approves or declines it. An approved request runs as that person.

  • successboolean
  • payloadSessionsWorkspaceApprovalRequest
    Show child attributes
    • statusstring
      Allowed values
      "needs_approval"
    • approval_idstring<uuid>
    • urlstring<uri>

      Where a person approves or declines it in Sessionboard Sessions (/sessions/{orgId}/approvals?id={approval_id}).

    • notestring

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": {
"status": "needs_approval",
"approval_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "https://example.com",
"note": "<string>"
}
}