When you write your application to integrate with Typeform's APIs, you'll use OAuth 2.0 scopes to define the extent of your application's access to app users' data. This way, your app can request each user's permission to do specific actions on the user's behalf.
You define the scopes for your application during the OAuth 2.0 Authorization Grant retrieval stage. Your application's https://api.typeform.com/oauth/authorize
link, including scopes, might look like this:
https://api.typeform.com/oauth/authorize?client_id={your_client_id}&redirect_uri=https://results-example.herokuapp.com/callback&scope={scope1}+{scope2}+{scope3}
NOTE: Don't forget to replace {your_client_id}
with your own client_id
and each {scope}
with the scopes you want to specify.
When your app is up and running, users will see a consent screen that lists the scope of access for your app and prompts them to grant or deny access to your app. Here's an example consent screen:
NOTE: Always add the offline
scope to receive a refresh token.
Here's a list of the scopes you can specify for Typeform's APIs:
API | Path | HTTP method | Scope | Description |
---|---|---|---|---|
Create | /me | GET | accounts:read | Retrieve basic information from your Typeform account. |
Create | /forms | POST | forms:write | Create new forms in your Typeform account. |
Create | /forms | GET | forms:read | Retrieve a list of forms from your Typeform account. |
Create | /forms/{form_id} | PUT | forms:write | Update existing forms in your Typeform account, overwriting the previously stored forms. |
Create | /forms/{form_id} | GET | forms:read | Retrieve forms your Typeform account by the given form_id . |
Create | /forms/{form_id} | DELETE | forms:write | Delete specified forms from your Typeform account. |
Create | /forms/{form_id}/messages | GET | forms:read | Retrieve customizable messages for specified forms. |
Create | /forms/{form_id}/messages | PUT | forms:write | Specify new values for customizable messages in the specified form. |
Create | /images | POST | images:write | Add images in your Typeform account. |
Create | /images | GET | images:read | Retrieve a list of JSON descriptions for all images in your Typeform account. |
Create | /images/{image_id} | GET | images:read | Retrieve the JSON description or the binary of the original image for a specified image. |
Create | /images/{image_id} | DELETE | images:write | Delete images from your Typeform account. |
Create | /images/{image_id}/image/{size} | GET | images:read | Retrieve the JSON description or the binary of a requested image. |
Create | /images/{image_id}/background/{size} | GET | images:read | Retrieve the JSON description or the binary of a requested background format. |
Create | /images/{image_id}/choice/{image_size} | GET | images:read | Retrieve the JSON description or the binary of a requested image choice format. |
Create | /themes | POST | themes:write | Create new themes in your Typeform account. |
Create | /themes | GET | themes:read | Retrieve a list of JSON descriptions for all themes in your Typeform account. |
Create | /themes/{theme_id} | GET | themes:read | Retrieve specified themes in your Typeform account. |
Create | /themes/{theme_id} | PUT | themes:write | Update specified themes in your Typeform account. |
Create | /themes/{theme_id} | DELETE | themes:write | Delete specified themes from your Typeform account. |
Responses | /forms/{form_id}/responses | GET | responses:read | Return form responses and landing and submission information. |
Responses | /forms/{form_id}/responses | DELETE | responses:write | Delete form responses and landing and submission information. |
Webhooks | /forms/{form_id}/webhooks | GET | webhooks:read | Retrieve data about all the webhooks of a specific form. |
Webhooks | /forms/{form_id}/webhooks/{tag} | GET | webhooks:read | Retrieve data about specified webhook in your Typeform account. |
Webhooks | /forms/{form_id}/webhooks/{tag} | PUT | webhooks:write | Create or update specified webhook in your Typeform account. |
Webhooks | /forms/{form_id}/webhooks/{tag} | DELETE | webhooks:write | Delete specified webhook in your Typeform account. |
Webhooks | /forms/{form_id}/webhooks/{tag}/deliveries | GET | webhooks:read | Retrieve data about the last 30 days of deliveries for an specific webhook in your Typeform account. |
Webhooks | /forms/{form_id}/webhooks/{tag}/deliveries/{delivery_id} | GET | webhooks:read | Retrieve data about specified webhook delivery in your Typeform account. We store deliveries of webhooks for 30 days. |
Workspaces | /workspaces | GET | workspaces:read | Retrieve all workspaces in your account. |
Workspaces | /workspaces | POST | workspaces:write | Create a workspace. |
Workspaces | /workspaces/{workspace_id} | GET | workspaces:read | Retrieve a workspace. |
Workspaces | /workspaces/{workspace_id} | PATCH | workspaces:write | Update a workspace. |
Workspaces | /workspaces/{workspace_id} | DELETE | workspaces:write | Delete a workspace. |