Introduction
Welcome to the Boast API!
You can use the the Boast API to automate tasks and trigger your own workflows to get data in or out of Boast and integrate with other popular services.
At this time, the Boast API is only available to paid customers via one of our approved API partners such as Zapier.
Authentication (OAuth 2)
The Boast API uses the OAuth 2 protocol for authentication, specifically the Authorization Code Grant.
Creating an Application
If you're building a custom integration with Boast and need OAuth access, please contact us to request access.
Authorize
Request
GET https://app.boast.io/oauth/authorize?client_id=mBUYVNhbzejU9mi4faMzwFE27XunvbKfpf-1jLJfylc&redirect_uri=https://oauthdebugger.com/debug&scope=read write&response_type=code
Redirect
GET https://oauthdebugger.com/debug?code=axoIQaYBbm0ZEoj-sZEs-kslTxtR1hJzv4CXsEL3Z_E
GET https://app.boast.io/oauth/authorize
Query Parameters
| Name |
|---|
| client_id |
| redirect_uri |
| scope |
| response_type |
Access Token
Request
> POST https://app.boast.io/oauth/token
> content-type: application/x-www-form-urlencoded
grant_type=authorization_code&
code=axoIQaYBbm0ZEoj-sZEs-kslTxtR1hJzv4CXsEL3Z_E&
client_id=mBUYVNhbzejU9mi4faMzwFE27XunvbKfpf-1jLJfylc&
client_secret=jsockwdoddKjDYUgxrPYGodyOxu3HjI5HaG0C-guDhE&
redirect_uri=https%3A%2F%2Foauthdebugger.com%2Fdebug
Response
{
"access_token": "MNgOvnS_wcg4h-b5WxTAuof6-K4LgfW9G45543hzmaI",
"token_type": "Bearer",
"expires_in": 7200,
"refresh_token": "a9kSGp7uYsgNIZQAdxN_HJ8Sto_9ASh4-uawGIWZ9Z4",
"scope": "read write",
"created_at": 1613653883
}
POST https://app.boast.io/oauth/token
Parameters
| Name | |
|---|---|
| grant_type | authorization_code |
| code | Code from authorize redirect |
| client_id | |
| client_secret | |
| redirect_uri |
Refresh Token
Request
> POST https://app.boast.io/oauth/token
> content-type: application/x-www-form-urlencoded
grant_type=refresh_token&
refresh_token=a9kSGp7uYsgNIZQAdxN_HJ8Sto_9ASh4-uawGIWZ9Z4&
client_id=mBUYVNhbzejU9mi4faMzwFE27XunvbKfpf-1jLJfylc&
client_secret=jsockwdoddKjDYUgxrPYGodyOxu3HjI5HaG0C-guDhE
Response
{
"access_token": "YO1JwYRXyOdT4cOxCn5rWLXnXNRDbcRxfXxcszUGMzE",
"token_type": "Bearer",
"expires_in": 7200,
"refresh_token": "8fKtyDtzyChjuNZ3hoFvSpD1wGpZpKeUkFcLe-tR6zA",
"scope": "read write",
"created_at": 1613654860
}
POST https://app.boast.io/oauth/token
Parameters
| Name | |
|---|---|
| grant_type | refresh_token |
| refresh_token | Token from last access token |
| client_id | |
| client_secret |
Interacting with the API
Unless otherwise noted, all API requests and responses utilize the JSON data format.
Some API endpoints may support URI parameters in the query string.
Requests
Example Request Headers
Authorization: Bearer {token}
Content-Type: application/json
Example Request Body
{
"first_name": "Michael",
"last_name": "Bluth"
}
Unless otherwise noted, all API requests should:
- include the
Authorizationheader with aBearertoken value (see Authentication above) - set the
Content-Type: application/jsonheader - use the
JSONformat for the request body
Responses
Example Response Headers
Content-Type: application/json
Example Response Body (multiple objects returned)
{
"data": [
{
"first_name": "Michael",
"last_name": "Bluth"
},
{
"first_name": "Lucille",
"last_name": "Ball"
}
]
}
Example Response Body (single object returned)
{
"data": {
"first_name": "Michael",
"last_name": "Bluth"
}
}
Unless otherwise noted, all API responses use the JSON format.
Data for the response is returned under a top-level data key, which is either an array[] of data objects, or a single data object.
Errors
HTTP/1.1 400 Bad Request
{
"errors": [
{
"detail": "A detailed error message",
"code": "bad_request",
"status": 400
}
]
}
Boast utilizes standard HTTP Status Codes to indicate the status of an API request.
In general, anything in the 2xx range should be considered successful, and anything in the 4xx or 5xx range should be considered an error.
Some API endpoints will provide additional error objects inside a top-level errors key of the JSON response.
Error Objects
| Key | Notes |
|---|---|
detail |
Human friendly description of the error |
code |
Internal error code, expressed as a string |
status |
Optional HTTP status code related to the error |
source |
Optional Object containing references to the source of the error |
Pagination
Example Pagination Response
{
"data": [
{
"first_name": "Michael",
"last_name": "Bluth"
},
{
"first_name": "Lucille",
"last_name": "Ball"
},
{
"first_name": "Tony",
"last_name": "Hawk"
}
],
"meta": {
"pagination": {
"count": 103,
"page": 1,
"items": 3,
"pages": 35
}
}
}
Some API endpoints may return paginated results inside a pagination object underneath a top-level meta key in the response. The current page is set with the page query parameter.
Pagination Object
| Key | Notes |
|---|---|
count |
Total count of items |
page |
Current page number |
items |
Number of items per page |
pages |
Number of total pages |
Accounts
Get All Accounts
Request
GET http://api.boast.io/v1/accounts
Response
{
"data": [
{
"id": "7a2f1f8c-7771-47e2-8dbd-332b301028a8",
"name": "My Boast Account",
"created_at": "2021-01-12T14:17:28.715Z",
"updated_at": "2021-02-16T17:58:38.804Z"
}
]
}
This endpoint retrieves all your accounts.
HTTP Request
GET http://api.boast.io/v1/accounts
Get a Specific Account
Request
GET http://api.boast.io/v1/accounts/7a2f1f8c-7771-47e2-8dbd-332b301028a8
Response
{
"data": {
"id": "7a2f1f8c-7771-47e2-8dbd-332b301028a8",
"name": "My Boast Account",
"created_at": "2021-01-12T14:17:28.715Z",
"updated_at": "2021-02-16T17:58:38.804Z"
}
}
This endpoint retrieves all your accounts.
HTTP Request
GET http://api.boast.io/v1/accounts/{id}
Contacts
Get All Contacts
Request
GET http://api.boast.io/v1/accounts/7a2f1f8c-7771-47e2-8dbd-332b301028a8/contacts
Response
{
"data": [
{
"id": "b94f8eb4-6dea-4c25-932d-e25b5954c655",
"first_name": "Michael",
"last_name": "Bluth",
"email": "michael.bluth@example.com",
"mobile_phone": "+15555555555",
"organization": "Bluth Company",
"job_title": "President",
"time_zone": "Eastern Time (US & Canada)",
"country_code": "US",
"location_id": "2f5c4510-65d9-4596-aca7-a4b2bd4918fd",
"staff_id": "1ec592b5-3d92-43fe-8b3a-3e1f9075fd5e",
"source": "response",
"created_at": "2021-02-10T16:54:23.805Z",
"updated_at": "2021-02-10T16:54:23.805Z",
"links": {
"detail": "https://demo.boast.io/contacts/b94f8eb4-6dea-4c25-932d-e25b5954c655",
"edit": "https://demo.boast.io/contacts/b94f8eb4-6dea-4c25-932d-e25b5954c655/edit"
}
}
]
}
This endpoint retrieves all contacts for an account.
HTTP Request
GET http://api.boast.io/v1/accounts/{account_id}/contacts
Create A Contact
Request
POST http://api.boast.io/v1/accounts/7a2f1f8c-7771-47e2-8dbd-332b301028a8/contacts
{
"email": "george.bluth@example.com",
"mobile_phone": "+15555555555",
"first_name": "George",
"last_name": "Bluth",
"organization": "Bluth Company",
"job_title": "President",
"time_zone": "Eastern Time (US & Canada)",
"country_code": "US",
"source": "api"
}
Response
{
"data": {
"id": "b94f8eb4-6dea-4c25-932d-e25b5954c655",
"first_name": "George",
"last_name": "Bluth",
"email": "george.bluth@example.com",
"mobile_phone": "+15555555555",
"organization": "Bluth Company",
"job_title": "President",
"time_zone": "Eastern Time (US & Canada)",
"country_code": "US",
"location_id": null,
"staff_id": null,
"source": "api",
"created_at": "2021-02-10T16:54:23.805Z",
"updated_at": "2021-02-10T16:54:23.805Z",
"links": {
"detail": "https://demo.boast.io/contacts/b94f8eb4-6dea-4c25-932d-e25b5954c655",
"edit": "https://demo.boast.io/contacts/b94f8eb4-6dea-4c25-932d-e25b5954c655/edit"
}
}
}
This endpoint creates a contact on an account.
HTTP Request
POST http://api.boast.io/v1/accounts/{account_id}/contacts
Parameters
| Name | Notes |
|---|---|
email |
Requires either email or mobile_phone |
mobile_phone |
Requires either mobile_phone or email Must be an E.164 formatted phone number. |
first_name |
|
last_name |
|
organization |
|
job_title |
|
time_zone |
|
country_code |
Accepts ISO 3166-1 alpha-2 country code |
source |
Accepts either api or integration. If no source is provided, api is used |
Forms
Get All Forms
Request
GET http://api.boast.io/v1/accounts/7a2f1f8c-7771-47e2-8dbd-332b301028a8/forms
Response
{
"data": [
{
"id": "8e424fa5-94fd-4353-8bec-96ed7a4bbd1a",
"name": "NPS",
"status": "active",
"created_at": "2021-01-27T18:54:22.972Z",
"updated_at": "2021-02-04T21:58:51.125Z"
}
]
}
This endpoint retrieves all forms for an account.
HTTP Request
GET http://api.boast.io/v1/accounts/{account_id}/forms
Responses
Get All Responses
Request
GET http://api.boast.io/v1/accounts/7a2f1f8c-7771-47e2-8dbd-332b301028a8/responses
Response
{
"data": [
{
"id": "174de834-eb54-4e33-9d87-4d104239894e",
"status": "published",
"thumbnail": {
"url": "https://assets.boast.io/app/accounts/6713be5b-dc41-4af3-890a-9a67f2a4a06f/responses/c58aa5f8-3210-4a2a-b3ca-3a469bf2b424/teaser-35f98ba2c93ac7407625a23d8f954837.jpg",
"open_graph_url": "https://assets.boast.io/app/accounts/6713be5b-dc41-4af3-890a-9a67f2a4a06f/responses/c58aa5f8-3210-4a2a-b3ca-3a469bf2b424/open_graph-b1a53d08c5c359511b7f07222e6dc960.jpg",
"unprocessed_url": "https://assets.boast.io/app/accounts/6713be5b-dc41-4af3-890a-9a67f2a4a06f/responses/c58aa5f8-3210-4a2a-b3ca-3a469bf2b424/original-0ab2ebccb2daac4b8194ab2499c504dc.png"
},
"consent": "received",
"display_weight": 1,
"form_id": "b345d73d-197c-4990-8a0c-ee5f58287f98",
"contact_id": "a308c983-dea1-4e73-9f4c-89db9c22cff0",
"location_id": "3e340197-e579-40e1-8ed0-05a78aa26ece",
"staff_id": "a17a4c54-6df6-48f1-aff3-f68a4aedcd7d",
"accepted": "2021-02-11T17:47:52.940Z",
"created": "2021-02-11T15:13:41.784Z",
"updated": "2021-02-11T17:49:32.164Z",
"fields": {
"first_name": "Matt",
"last_name": "Hall",
"email": "help@boast.io",
"feedback": "We love using Boast to collect videos from our customers, it's been an awesome tool for us!",
"headline": "Boast is great!",
"sentiment": "promoters",
"rating": 5,
"rating_type": "five_stars",
"rating_max": 5,
"video": {
"url": "https://assets.boast.io/app/accounts/6713be5b-dc41-4af3-890a-9a67f2a4a06f/responses/4836ed10-7f81-4c37-9157-1979fdcc3d71/videos/95767ab2-b038-4d14-ad48-321b888474d3/video_mp4-d0199a3f7d97bd6bc007a949c8709148.mp4",
"unprocessed_url": "https://assets.boast.io/app/accounts/6713be5b-dc41-4af3-890a-9a67f2a4a06f/responses/4836ed10-7f81-4c37-9157-1979fdcc3d71/videos/95767ab2-b038-4d14-ad48-321b888474d3/original-5968437c107cca65646ec23ea7d35741.webm"
},
"photo": {
"url": "https://assets.boast.io/app/accounts/6713be5b-dc41-4af3-890a-9a67f2a4a06f/responses/b7e9178d-acf3-4d29-afe0-b53624a02392/photos/6bd306ed-ec26-49fb-9bca-bcc3f216b0fe/medium-d0199a3f7d97bd6bc007a949c8709148.jpg",
"unprocessed_url": "https://assets.boast.io/app/accounts/6713be5b-dc41-4af3-890a-9a67f2a4a06f/responses/b7e9178d-acf3-4d29-afe0-b53624a02392/photos/6bd306ed-ec26-49fb-9bca-bcc3f216b0fe/original-184fb12980f96efb2ff88ea8b67a7a42.jpg"
},
"company": "Boast",
"job_title": null,
"mobile_phone": null
},
"additional_fields": {
"my_custom_field": "Hello World!"
},
"tags": [
{
"name": "my-tag"
}
],
"links": {
"detail": "https://demo.boast.io/responses/174de834-eb54-4e33-9d87-4d104239894e",
"edit": "https://demo.boast.io/responses/174de834-eb54-4e33-9d87-4d104239894e/edit",
"share": "https://demo.boast.io/r/174de834-eb54-4e33-9d87-4d104239894e"
}
}
]
}
This endpoint retrieves all responses for an account.
HTTP Request
GET http://api.boast.io/v1/accounts/{account_id}/responses
Sequences
Get All Sequences
Request
GET http://api.boast.io/v1/accounts/7a2f1f8c-7771-47e2-8dbd-332b301028a8/sequences
Response
{
"data": [
{
"id": "2b83ab61-30ef-48d4-8029-e73f61717c0a",
"collection_form_id": "a873bcdb-ae03-436a-8410-d5057b81db34",
"enrollment_form_id": "2f2082e9-ad81-4c41-9cb9-eaa2de5790b4",
"name": "Sudden Valley Development",
"status": "active",
"created_at": "2020-10-08T17:46:46.460Z",
"updated_at": "2021-02-09T19:30:21.828Z"
}
]
}
This endpoint retrieves all sequences for an account.
HTTP Request
GET http://api.boast.io/v1/accounts/{account_id}/sequences
Sequence Enrollments
Get All Sequence Enrollments
Request
GET http://api.boast.io/v1/accounts/7a2f1f8c-7771-47e2-8dbd-332b301028a8/sequence_enrollments
Response
{
"data": [
{
"id": "09f1bd66-84fe-454f-ac12-4dc323f656aa",
"contact_id": "61a06314-fa2e-4fc8-bbcf-f942075042cc",
"sequence_id": "df51783e-c81c-460b-82dc-8c5a63b70e92",
"response_id": "ee456cc9-91a9-48c2-8f04-4e28d92788d2",
"status": "completed",
"created_at": "2021-02-04T21:13:44.005Z",
"updated_at": "2021-02-04T21:13:44.005Z"
}
]
}
This endpoint retrieves all sequence enrollments for an account.
HTTP Request
GET http://api.boast.io/v1/accounts/{account_id}/sequence_enrollments
Get a Specific Sequence Enrollment
Request
GET http://api.boast.io/v1/accounts/7a2f1f8c-7771-47e2-8dbd-332b301028a8/sequence_enrollments/09f1bd66-84fe-454f-ac12-4dc323f656aa
Response
{
"data": {
"id": "09f1bd66-84fe-454f-ac12-4dc323f656aa",
"contact_id": "61a06314-fa2e-4fc8-bbcf-f942075042cc",
"sequence_id": "df51783e-c81c-460b-82dc-8c5a63b70e92",
"response_id": "ee456cc9-91a9-48c2-8f04-4e28d92788d2",
"status": "completed",
"created_at": "2021-02-04T21:13:44.005Z",
"updated_at": "2021-02-04T21:13:44.005Z"
}
}
This endpoint retrieves a single sequence enrollment.
HTTP Request
GET http://api.boast.io/v1/accounts/{account_id}/sequence_enrollments/{enrollment_id}
Create A Sequence Enrollment
Request
POST http://api.boast.io/v1/accounts/7a2f1f8c-7771-47e2-8dbd-332b301028a8/sequence_enrollments
{
"contact_id": "6d1c8d94-c598-461e-ad76-f4851e4af9d4",
"sequence_id": "e16f6028-cfc1-4d9d-a087-0a8574d2f13f"
}
Response
{
"data": {
"id": "09f1bd66-84fe-454f-ac12-4dc323f656aa",
"contact_id": "6d1c8d94-c598-461e-ad76-f4851e4af9d4",
"sequence_id": "e16f6028-cfc1-4d9d-a087-0a8574d2f13f",
"response_id": null,
"status": "active",
"created_at": "2021-02-04T21:13:44.005Z",
"updated_at": "2021-02-04T21:13:44.005Z"
}
}
This endpoint enrolls an existing contact in a sequence.
HTTP Request
POST http://api.boast.io/v1/accounts/{account_id}/sequence_enrollments
Parameters
| Name | Notes |
|---|---|
contact_id |
Required |
sequence_id |
Required |
Remove a Sequence Enrollment
Request
DELETE http://api.boast.io/v1/accounts/7a2f1f8c-7771-47e2-8dbd-332b301028a8/sequence_enrollments/09f1bd66-84fe-454f-ac12-4dc323f656aa
Response
{
"data": {
"id": "09f1bd66-84fe-454f-ac12-4dc323f656aa",
"contact_id": "61a06314-fa2e-4fc8-bbcf-f942075042cc",
"sequence_id": "df51783e-c81c-460b-82dc-8c5a63b70e92",
"response_id": "ee456cc9-91a9-48c2-8f04-4e28d92788d2",
"status": "removed",
"created_at": "2021-02-04T21:13:44.005Z",
"updated_at": "2021-02-04T21:13:44.005Z"
}
}
This endpoint unenrolls a contact with an active enrollment from a sequence.
HTTP Request
DELETE http://api.boast.io/v1/accounts/{account_id}/sequence_enrollments/{enrollment_id}
Webhook Subscriptions
Get All Webhook Subscriptions
Request
GET http://api.boast.io/v1/accounts/7a2f1f8c-7771-47e2-8dbd-332b301028a8/webhook_subscriptions
Response
{
"data": [
{
"id": "cb836066-c343-4b0a-8516-dbd802567b92",
"event_name": "response.status.changed",
"filters": {
"form_id": "d15cd168-4001-4f7e-8e59-d66eb9524a37",
"to_status": "published"
},
"target_url": "https://your-site.example.com/hooks/4f29c329-8f19-419c-ad0a-519232d73ee8",
"user_id": "1c2e2e9b-529a-4870-8781-311e83ab95a1",
"created_at": "2021-01-28T13:16:39.917Z"
}
]
}
This endpoint retrieves all webhook subscriptions for an account.
HTTP Request
GET http://api.boast.io/v1/accounts/{account_id}/webhook_subscriptions
Create A Webhook Subscriptions
Request
POST http://api.boast.io/v1/accounts/7a2f1f8c-7771-47e2-8dbd-332b301028a8/webhook_subscriptions
{
"event_name": "response.status.changed",
"target_url": "https://your-site.example.com/hooks/4f29c329-8f19-419c-ad0a-519232d73ee8",
"filters": {
"form_id": "d15cd168-4001-4f7e-8e59-d66eb9524a37",
"to_status": "published"
}
}
Response
{
"data": {
"id": "cb836066-c343-4b0a-8516-dbd802567b92",
"event_name": "response.status.changed",
"filters": {
"form_id": "d15cd168-4001-4f7e-8e59-d66eb9524a37",
"status": "published"
},
"target_url": "https://your-site.example.com/hooks/4f29c329-8f19-419c-ad0a-519232d73ee8",
"user_id": "1c2e2e9b-529a-4870-8781-311e83ab95a1",
"created_at": "2021-01-28T13:16:39.917Z"
}
}
This endpoint creates a webhook subscription for a specific event. Additional filters can be provided.
HTTP Request
POST http://api.boast.io/v1/accounts/{account_id}/webhook_subscriptions
Parameters
| Name | Notes |
|---|---|
event_name |
Required See table of possible events below. |
target_url |
Required |
filters |
Optional object of filters checked when sending webhook requests. See table of supported filters by event below. |
Webhook Events
| Name | Supported Filters |
|---|---|
response.available |
form_id |
response.status.changed |
form_id, status |
response.published |
form_id |
response.destroyed |
form_id |
contact.created |
|
contact.updated |
|
contact.destroyed |
Destroy a Webhook Subscription
Request
DELETE http://api.boast.io/v1/accounts/7a2f1f8c-7771-47e2-8dbd-332b301028a8/webhook_subscriptions/cb836066-c343-4b0a-8516-dbd802567b92
Response
204 No Content
This endpoint destroys a webhook subscription.
HTTP Request
DELETE http://api.boast.io/v1/accounts/{account_id}/webhook_subscriptions/{webhook_subscription_id}