Support Station Help Center

Integrations

API Access

Use the API to create tickets, manage customers and tags, configure webhooks, and read usage data. Your plan must include API access to create an API key. Check your plan in the dashboard.

Create an API key

  1. Open Settings > API Keys.
  2. Select Create API Key.
  3. Enter a name and select the required scopes.
  4. Copy the key and store it securely. The full key is shown only once.

Keys start with sk_live_. Send the key in the Authorization: Bearer header or the X-API-Key header. Use a separate organization for test data.

Make a request

curl https://api.supportstation.io/api/v1/me   -H "Authorization: Bearer $SS_API_KEY"

This returns your organization, API key name, and scopes. No specific scope is required for this route.

Create a ticket

This request requires tickets:write:

curl -X POST https://api.supportstation.io/api/v1/tickets   -H "Authorization: Bearer $SS_API_KEY"   -H "Content-Type: application/json"   -d '{
    "subject": "Need help with billing",
    "message": "I was charged twice this month.",
    "priority": "HIGH",
    "customer": { "email": "john@example.com" }
  }'

Use GET /api/v1/tickets/:id to read a ticket and its messages. Use POST /api/v1/tickets/:id/messages with content to add a customer reply. Include a staff user_id to add a staff reply.

Add an internal note

Use POST /api/v1/tickets/:id/notes with tickets:write to add a private staff note. Replace ticket-id and staff-user-id with the ticket and author IDs. Both must belong to the API key's organization.

curl -X POST https://api.supportstation.io/api/v1/tickets/ticket-id/notes   -H "Authorization: Bearer $SS_API_KEY"   -H "Content-Type: application/json"   -d '{
    "content": "Check the logs before the next reply.",
    "user_id": "staff-user-id"
  }'

The API returns 201 with the note in data and type INTERNAL_NOTE. Customers cannot see the note. It does not send customer email or public webhook events. You can read it in the ticket's messages array through GET /api/v1/tickets/:id with tickets:read.

See the internal note API reference for request fields, responses, and errors.

Scopes

  • tickets:read and tickets:write
  • customers:read and customers:write
  • tags:read and tags:write
  • webhooks:read and webhooks:write
  • billing:read

Lists and errors

Tickets, customers, and webhook delivery history use page and limit. The defaults are page 1 and 20 items; the maximum limit is 100. Pagination data is returned in meta.pagination. Ticket lists exclude closed tickets unless you send include_closed=true or an explicit status filter. Tag lists and webhook lists are not paginated.

Errors use { "error": { "code": "NOT_FOUND", "message": "Ticket not found" } }. Validation errors also include error.details, which maps field names to error message arrays.

Deleting a customer also deletes that customer's tickets and their messages.

Full reference

See the API reference source, authentication guide, and webhook guide.

By Bryce·Published 10/12/2026·Updated 10/12/2026

Was this article helpful?

API Access - Support Station Help Center