Skip to content
Summer Docs
DocumentationOpen Summer ↗
Documentation /

API reference

Every operation, its access, ownership, MCP tool and fields.

Every Summer API operation, generated from the same catalog the API uses to check requests. Each operation lists its access, whether it applies to the whole company or one environment, its MCP tool and its fields. The machine-readable description is at https://api.gosummer.ai/v1/openapi.json.

Base URL: https://api.gosummer.ai/v1. Send Authorization: Bearer <access token> and, for writes, Content-Type: application/json. Updates take the version you expect, so a stale write returns version_conflict instead of overwriting newer work. See Errors, states and events for every code.

Availability: the developer platform is turned on per Summer deployment. Until it is enabled for your workspace, these endpoints answer developer_platform_disabled.

Account

Show the signed-in person, Summer access status and this connection's grant

GET /v1/me

  • Access: Any connection for the signed-in person
  • Applies to: your own account
  • MCP: summer_account_me

List companies the person can access and whether this connection includes each one

GET /v1/companies

  • Access: Any connection for the signed-in person
  • Applies to: your own account
  • MCP: summer_account_companies_list

Read the person's Summer access request

GET /v1/access-request

Approval is a separate Summer team decision.

  • Access: Any connection for the signed-in person
  • Applies to: your own account
  • MCP: summer_account_access_request_read

Submit or update a Summer access request

POST /v1/access-request

This cannot approve access.

  • Access: Any connection for the signed-in person
  • Applies to: your own account
  • MCP: summer_account_access_request_submit
  • Idempotency-Key: required

Body:

FieldTypeRequiredNotes
company_namestringYesAt most 120 characters.
notestringYesAt most 2000 characters.

Accept a company invitation sent to this person

POST /v1/invitations/accept

Authorize again to add the company to a connection.

  • Access: Any connection for the signed-in person
  • Applies to: your own account
  • MCP: Not available over MCP
  • Idempotency-Key: recommended

Body:

FieldTypeRequiredNotes
tokenstringYes

List this person's agent connections, grants, last use and expiry

GET /v1/connections

  • Access: Any connection for the signed-in person
  • Applies to: your own account
  • MCP: summer_account_connections_list

Revoke one of this person's agent connections immediately

POST /v1/connections/{connection}/revoke

  • Access: Any connection for the signed-in person
  • Applies to: your own account
  • MCP: summer_account_connections_revoke
  • Idempotency-Key: recommended

Path:

FieldTypeRequiredNotes
connectionUUIDYes

Body:

FieldTypeRequiredNotes
reasonstringNoAt most 200 characters.

Company and setup

What this connection can do here, with a reason for everything unavailable

GET /v1/companies/{company}/environments/{environment}/capabilities

  • Access: setup or capabilities.read (owner or admin)
  • Applies to: one environment
  • MCP: summer_company_capabilities

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource

Saved, verified, pending, unavailable and enabled state for each setup item

GET /v1/companies/{company}/environments/{environment}/setup

  • Access: setup or capabilities.read (owner or admin)
  • Applies to: one environment
  • MCP: summer_company_setup_status

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource

Read company-wide settings

GET /v1/companies/{company}/settings

Changes affect every environment.

  • Access: setup (owner or admin)
  • Applies to: the whole company, every environment
  • MCP: summer_company_settings_read

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID

Update company-wide settings with the expected version

PATCH /v1/companies/{company}/settings

Affects every environment.

  • Access: setup (owner or admin)
  • Applies to: the whole company, every environment
  • MCP: summer_company_settings_update
  • Idempotency-Key: recommended

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID

Body:

FieldTypeRequiredNotes
namestringYesAt most 120 characters.
timezonestringYesAt most 100 characters.
workflowsupport, order_status, billing, customYes
notestringYesAt most 1000 characters.
expected_versionintegerYesCurrent version you expect; 0 when the resource does not exist yet

List provider integrations, their required fields and saved metadata

GET /v1/companies/{company}/environments/{environment}/integrations

Never returns values.

  • Access: setup (owner or admin)
  • Applies to: one environment
  • MCP: summer_integrations_list

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource

List saved credential names, sources and versions

GET /v1/companies/{company}/environments/{environment}/credentials

Never returns values.

  • Access: setup (owner or admin)
  • Applies to: one environment
  • MCP: summer_credentials_list

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource

Save one selected credential value or Doppler reference

PUT /v1/companies/{company}/environments/{environment}/credentials/{name}

Replacing an active credential needs credentials.replace. Returns metadata only.

  • Access: setup (owner or admin)
  • Applies to: one environment
  • MCP: summer_credentials_set returns a local CLI command instead of moving a secret
  • Idempotency-Key: required

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource
namestringYesCredential variable name, for example STRIPE_READ_KEY

Body, form 1:

FieldTypeRequiredNotes
sourcevalueYes
valuestringYesAt most 16384 characters.
expected_versionintegerYesCurrent version you expect; 0 when the resource does not exist yet

Body, form 2:

FieldTypeRequiredNotes
sourcedopplerYes
secret_namestringYesCredential variable name, for example STRIPE_READ_KEY
expected_versionintegerYesCurrent version you expect; 0 when the resource does not exist yet

Remove an active credential with the expected version

DELETE /v1/companies/{company}/environments/{environment}/credentials/{name}

  • Access: credentials.replace (owner or admin)
  • Applies to: one environment
  • MCP: Not available over MCP
  • Idempotency-Key: recommended

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource
namestringYesCredential variable name, for example STRIPE_READ_KEY

Query:

FieldTypeRequiredNotes
expected_versionintegerYes

List company members and pending invitations

GET /v1/companies/{company}/team

Role changes and invitations stay in Summer.

  • Access: setup (owner or admin)
  • Applies to: the whole company, every environment
  • MCP: summer_company_team_read

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID

Run supported harmless checks

POST /v1/companies/{company}/environments/{environment}/verification

Unsupported checks are reported as unsupported, never as passed.

  • Access: setup (owner or admin)
  • Applies to: one environment
  • MCP: summer_verification_run
  • Idempotency-Key: required

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource

Body:

FieldTypeRequiredNotes
targetsarray of credentials, providers, slack, messengerYes

Knowledge

List current company knowledge documents

GET /v1/companies/{company}/knowledge

Knowledge is company-wide, not per environment.

  • Access: setup (owner or admin)
  • Applies to: the whole company, every environment
  • MCP: summer_knowledge_list

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID

Query:

FieldTypeRequiredNotes
querystringNoAt most 200 characters.
offsetintegerNo

Read one company knowledge document and its current revision

GET /v1/companies/{company}/knowledge/{document}

  • Access: setup (owner or admin)
  • Applies to: the whole company, every environment
  • MCP: summer_knowledge_get

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
documentstringYesKnowledge document ID At most 120 characters.

Read the edit history of a company knowledge document

GET /v1/companies/{company}/knowledge/{document}/history

  • Access: setup (owner or admin)
  • Applies to: the whole company, every environment
  • MCP: summer_knowledge_history

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
documentstringYesKnowledge document ID At most 120 characters.

Query:

FieldTypeRequiredNotes
offsetintegerNo

Edit an existing company knowledge document with the expected revision and a reason

PUT /v1/companies/{company}/knowledge/{document}

Affects every environment and later runs.

  • Access: setup (owner or admin)
  • Applies to: the whole company, every environment
  • MCP: summer_knowledge_edit
  • Idempotency-Key: recommended

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
documentstringYesKnowledge document ID At most 120 characters.

Body:

FieldTypeRequiredNotes
revisionintegerYes
contentstringYesAt most 1000000 characters.
statusactive, retiredYes
reasonstringYesAt most 2000 characters.

Messenger

List Messenger installations in this environment

GET /v1/companies/{company}/environments/{environment}/messenger/installations

Signing keys are never returned.

  • Access: setup (owner or admin)
  • Applies to: one environment
  • MCP: summer_messenger_installations_list

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource

Create an installation with a client-chosen ID

POST /v1/companies/{company}/environments/{environment}/messenger/installations

The one-time signing key goes to the trusted local helper, never to model-visible output.

  • Access: setup (owner or admin)
  • Applies to: one environment
  • MCP: summer_messenger_installations_create returns a local CLI command instead of moving a secret
  • Idempotency-Key: required

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource

Body:

FieldTypeRequiredNotes
idUUIDYesNew installation ID chosen by the client, so a retry cannot create a duplicate
settingsobjectYes
settings.enabledbooleanYesLive widget. Production enable needs messaging.activate.
settings.guests_enabledbooleanYes
settings.display_namestringYesAt most 80 characters.
settings.allowed_originsarray of stringYesExact website origins, https (http://localhost allowed in staging)
settings.privacy_urlstringYesAt most 512 characters.
settings.fallback_urlstringYesAt most 512 characters.
settings.office_hoursstringYesAt most 200 characters.
settings.routingobjectNo
settings.routing.clinician_urlstringNoAt most 512 characters.
settings.routing.sign_in_urlstringNoAt most 512 characters.
settings.routing.catalog_urlstringNoAt most 512 characters.
settings.routing.offer_urlstringNoAt most 512 characters.
settings.routing.offer_labelstringNoAt most 80 characters.
settings.routing.destination_originsarray of stringNo

Update installation settings with the expected version

PATCH /v1/companies/{company}/environments/{environment}/messenger/installations/{installation}

Keeps the signing key.

  • Access: setup (owner or admin)
  • Applies to: one environment
  • MCP: summer_messenger_installations_update
  • Idempotency-Key: recommended

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource
installationUUIDYes

Body:

FieldTypeRequiredNotes
expected_versionintegerYes
settingsobjectYes
settings.enabledbooleanYesLive widget. Production enable needs messaging.activate.
settings.guests_enabledbooleanYes
settings.display_namestringYesAt most 80 characters.
settings.allowed_originsarray of stringYesExact website origins, https (http://localhost allowed in staging)
settings.privacy_urlstringYesAt most 512 characters.
settings.fallback_urlstringYesAt most 512 characters.
settings.office_hoursstringYesAt most 200 characters.
settings.routingobjectNo
settings.routing.clinician_urlstringNoAt most 512 characters.
settings.routing.sign_in_urlstringNoAt most 512 characters.
settings.routing.catalog_urlstringNoAt most 512 characters.
settings.routing.offer_urlstringNoAt most 512 characters.
settings.routing.offer_labelstringNoAt most 80 characters.
settings.routing.destination_originsarray of stringNo

Issue a new signing key

POST /v1/companies/{company}/environments/{environment}/messenger/installations/{installation}/rotate-key

Existing signed sessions end. The key goes to the trusted local helper only.

  • Access: setup (owner or admin)
  • Applies to: one environment
  • MCP: summer_messenger_installations_rotate_key returns a local CLI command instead of moving a secret
  • Idempotency-Key: required

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource
installationUUIDYes

Body:

FieldTypeRequiredNotes
expected_versionintegerYes

Read assistant settings per installation and whether the managed runtime is enabled

GET /v1/companies/{company}/environments/{environment}/messenger/assistant

  • Access: setup (owner or admin)
  • Applies to: one environment
  • MCP: summer_messenger_assistant_read

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource

Update assistant instructions and knowledge with the expected revision

PUT /v1/companies/{company}/environments/{environment}/messenger/installations/{installation}/assistant

Cannot raise the spending limit.

  • Access: setup (owner or admin)
  • Applies to: one environment
  • MCP: summer_messenger_assistant_update
  • Idempotency-Key: recommended

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource
installationUUIDYes

Body:

FieldTypeRequiredNotes
revisionintegerYes
settingsobjectYes
settings.enabledbooleanYesAutomatic replies. Production enable needs messaging.activate.
settings.instructionsstringYesAt most 50000 characters.
settings.knowledgestringYesAt most 200000 characters.
settings.budget_centsintegerYesCannot exceed the current limit through the API

Pause the assistant in one conversation so a person can take over, or ask it to resume

POST /v1/companies/{company}/environments/{environment}/messenger/conversations/{conversation}/assistant

Pausing stops automatic replies immediately.

  • Access: setup (owner or admin)
  • Applies to: one environment
  • MCP: summer_messenger_conversations_assistant
  • Idempotency-Key: required

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource
conversationUUIDYes

Body:

FieldTypeRequiredNotes
pausedbooleanYes

Cases, investigations and approvals

List company-owned cases or conversations, newest first, with coverage and a cursor

GET /v1/companies/{company}/environments/{environment}/cases

Text search is not available through the API yet.

  • Access: cases.read
  • Applies to: one environment
  • MCP: summer_cases_list

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource

Query:

FieldTypeRequiredNotes
cursorstringNoAt most 200 characters.
limitintegerNo
statusopen, resolved, allNo

GET /v1/companies/{company}/environments/{environment}/cases/{case}

  • Access: cases.read
  • Applies to: one environment
  • MCP: summer_cases_get

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource
caseUUIDYes

Query:

FieldTypeRequiredNotes
afterintegerNo

Get a short-lived download for an attachment that belongs to this case

GET /v1/companies/{company}/environments/{environment}/cases/{case}/attachments/{attachment}

  • Access: cases.read
  • Applies to: one environment
  • MCP: summer_cases_attachment

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource
caseUUIDYes
attachmentUUIDYes

Read investigation runs, saved plans, approval state and execution receipts for a case

GET /v1/companies/{company}/environments/{environment}/cases/{case}/investigations

  • Access: cases.read
  • Applies to: one environment
  • MCP: summer_investigations_list

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource
caseUUIDYes

Ask Summer to investigate the case, or revise a saved plan with feedback

POST /v1/companies/{company}/environments/{environment}/cases/{case}/investigations

Completion is not approval.

  • Access: investigations.request
  • Applies to: one environment
  • MCP: summer_investigations_request
  • Idempotency-Key: required

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource
caseUUIDYes

Body, form 1:

FieldTypeRequiredNotes
kindinvestigateYes

Body, form 2:

FieldTypeRequiredNotes
kindreviseYes
plan_request_idUUIDYes
feedbackstringYesAt most 2000 characters.

Prepare the exact work in the current saved plan for human approval in Summer

POST /v1/companies/{company}/environments/{environment}/cases/{case}/actions/prepare

Does not approve or execute.

  • Access: actions.prepare
  • Applies to: one environment
  • MCP: summer_actions_prepare
  • Idempotency-Key: required

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource
caseUUIDYes

Body:

FieldTypeRequiredNotes
plan_request_idUUIDYes

Automation

Read configuration and activity events after a cursor

GET /v1/companies/{company}/environments/{environment}/events

Resume from next_cursor.

  • Access: setup or events.read (owner or admin)
  • Applies to: one environment
  • MCP: summer_events_list

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource

Query:

FieldTypeRequiredNotes
afterstringNo
limitintegerNo

List the company's service accounts

GET /v1/companies/{company}/service-accounts

  • Access: automation.manage (owner or admin)
  • Applies to: the whole company, every environment
  • MCP: summer_service_accounts_list

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID

Create, update, rotate or disable a service account

PUT /v1/companies/{company}/service-accounts/{account}

A new secret goes to the trusted local helper only.

  • Access: automation.manage (owner or admin)
  • Applies to: the whole company, every environment
  • MCP: summer_service_accounts_save returns a local CLI command instead of moving a secret
  • Idempotency-Key: required

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
accountUUIDYes

Body:

FieldTypeRequiredNotes
namestringYesAt most 80 characters.
environmentsarray of staging, productionYes
scopesarray of events.read, capabilities.readYes
expected_versionintegerYesCurrent version you expect; 0 when the resource does not exist yet
rotate_secretbooleanNoDefault false.
disablebooleanNoDefault false.

List webhook endpoints and delivery state

GET /v1/companies/{company}/environments/{environment}/webhooks

  • Access: automation.manage (owner or admin)
  • Applies to: one environment
  • MCP: summer_webhooks_list

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource

Create, update, rotate or disable a signed webhook endpoint

PUT /v1/companies/{company}/environments/{environment}/webhooks/{webhook}

A new signing secret goes to the trusted local helper only.

  • Access: automation.manage (owner or admin)
  • Applies to: one environment
  • MCP: summer_webhooks_save returns a local CLI command instead of moving a secret
  • Idempotency-Key: required

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource
webhookUUIDYes

Body:

FieldTypeRequiredNotes
urlstringYesAt most 512 characters.
event_typesarray of stringYes
expected_versionintegerYesCurrent version you expect; 0 when the resource does not exist yet
rotate_secretbooleanNoDefault false.
disablebooleanNoDefault false.

Queue past events after a cursor for delivery again to one endpoint

POST /v1/companies/{company}/environments/{environment}/webhooks/{webhook}/replay

Receivers deduplicate by event ID.

  • Access: automation.manage (owner or admin)
  • Applies to: one environment
  • MCP: summer_webhooks_replay
  • Idempotency-Key: required

Path:

FieldTypeRequiredNotes
companyUUIDYesSummer company ID
environmentstaging, productionYesEnvironment that owns the resource
webhookUUIDYes

Body:

FieldTypeRequiredNotes
afterstringYes
limitintegerNoDefault 200.
UP NEXTErrors, states and events →