Squadcast API V3 - staging

Number of APIs: 118

The Squadcast API provides developers the capability to extend and utilize Squadcast in conjunction with other services. Our API has resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

Note: Customers using the V2 version of the Squadcast API would need to migrate to Squadcast API V3, as the former would be deprecated shortly.

Squadcast allows customers to choose the geographic region of the Squadcast data centers that host their account. When signing up, you can choose the service region. Currently, the available options are the United States (US) and Europe (EU).

If you have opted for EU service region, please use these links for API endpoints:

Service RegionAPI Endpoints
EUAuthentication : https://auth.eu.squadcast.com
Other APIs: https://api.eu.squadcast.com
USAuthentication : https://auth.squadcast.com
Other APIs: https://api.squadcast.com

Authentication

In order to access the API programatically, HTTP bearer authentication needs to be used. HTTP bearer authentication must be constructed using an access_token, passed as the Authorization header for each request, for example Authorization: Bearer eyJleHAiOjE2MzU1OTE1OTIsImp0aSI6Im. Steps to procure the access_token:

  1. First of all, generate a refresh_token aka API Token from the Squadcast web app.
    More details on how to get the refresh_token can be found here.
  2. Every API call needs to be authenticated using an access_token which is generated from our authentication API from the refresh_token.
  3. Then generate an access_token, by calling our authentication API with the refresh_token obtained after performing the previous step, to successfully access API our APIs.

An access_token can be generated after updating the X-Refresh-Token header with the procured refresh_token and then running the following command in the terminal.

curl --location --request GET 'https://auth.squadcast.com/oauth/access-token' \
--header 'X-Refresh-Token: 0d2a1a9a454dxxxxxxxxxxxx'

The API response would look similar to the content below:

{
    "data": {
        "access_token": "eyJhbGciOiJIUxxxxx.xxxxxxxxxxxxxxx.xxxxxxxxxxxxxxx",
        "expires_at": 1587412870,
        "issued_at": 1587240070,
        "refresh_token": "0d2a1a9a454dxxxxxxxxxxxx",
        "token_type": "bearer"
    }
}

Access Control

There are three different types of user roles in Squadcast: account_owner, stakeholder, and user. Refresh tokens upon creation are mapped with one of the mentioned user roles, and access to different resources is dependent on the permissions granted to these roles. For more information, please refer our support documentation.

Authorization

The access token authorizes users the ability to access different APIs, based on the user roles described in the section above.

  1. OAuth - Access Token GET https://auth.squadcast.com/oauth/access-token

  2. Incidents-StatusPage Messages - Get All StatusPage Messages GET https://platform-backend.squadcast.com/v2/organizations/:organizationID/incidents/:incidentID/public-message/

  3. Incidents-Postmortems - Get Postmortems by team GET {{baseUrl}}/incidents/postmortem?fromDate=2021-12-01T10:30:14.52Z&owner_id=<string>&toDate=2022-03-01T10:30:14.52Z

  4. Incidents-StatusPage Messages - Publish New StatusPage Message POST https://platform-backend.squadcast.com/v2/organizations/:organizationID/incidents/:incidentID/public-message/

  5. Incidents-Notes - Create Notes POST https://api.squadcast.com/v3/incidents/:IncidentId/warroom

  6. Incidents-Notes - Update Note PUT {{baseUrl}}/incidents/:IncidentId/warroom/:NoteId

  7. Incidents-Notes - Delete Note DELETE {{baseUrl}}/incidents/:IncidentId/warroom/:NoteId

  8. Incidents-Communication Card - Create Communication Card POST {{baseUrl}}/incidents/:IncidentId/communication_cards

  9. Incidents-Communication Card - Create Slack Channel in Communication Card POST {{baseUrl}}/extensions/slack/channel

  10. Incidents-Communication Card - Archive Slack Channel POST {{baseUrl}}/extensions/slack/channel/archive