Groups¶
The Groups resource allows you to:
- Add a group via POST
- Collect group data via GET
- Add and remove contacts to/from a group via POST, on the nested Contacts resource
- Edit a group via PUT
- Delete a group via DELETE
Adding a Group¶
To add a new group you make a POST request to the Groups resource.
The POST url is: https://api.sendhub.com/v1/groups/?username=USERNAME&api_key=APIKEY
Where:
- USERNAME - is your SendHub username.
- APIKEY - is your api key which can be found on the settings page.
You’ll also need to pass Headers and Data.
Headers:
Content-Type: application/json
Data:
For example to create the groups ‘Regulars’ you would POST:
{
"name": "Regulars",
"slug": "regulars",
"text_to_subscribe": true
}
Note
Slug does not need to match the group name.
Slug is listed as ‘Keyword’ on SendHub.com and allows contacts to add themselves to a group by texting the keyword to your SendHub number, if ‘text_to_subscribe’ is set to true.
Therefore, to add a group through the API using cURL:
curl -H "Content-Type: application/json" -X POST --data '{"name": "Regulars", "slug": "regulars","text_to_subscribe": true }' 'https://api.sendhub.com/v1/groups/?username=USERNAME&api_key=APIKEY'
If your group is accepted you’ll get a 201 Created status and a data response similar to this:
{
"date_created": "2012-05-31T18:18:23.172930",
"date_modified": "2012-05-31T18:18:23.172965",
"id": "12",
"name": "Regulars",
"resource_uri": "/api/v1/groups/12/",
"size": null,
"slug": "regulars",
"text_to_subscribe": true
}
Available Fields:
Name | Explanation |
---|---|
id | The group’s unique identifier. Read only. |
name | The group’s name. |
slug | The group’s keyword. |
text_to_subscribe | Boolean. If true contacts can join the group by texting the slug to your SendHub number. |
size | Total contacts in the group. Null on group creation. |
resource_uri | The uri for this group. Read only. |
date_created | The UTC time this group was created. Read only. |
date_modified | The UTC time this group was last changed. Read only. |
Collect Groups List¶
To collect a list of your groups you make a GET request to the Groups resource:
https://api.sendhub.com/v1/groups/?username=USERNAME&api_key=APIKEY
If your request is accepted you’ll get a 200 Ok status and a data response similar to this:
{
"meta": {
"limit": 20,
"next": null,
"offset": 0,
"previous": null,
"total_count": 2
},
"objects": [
{
"date_created": "2012-05-31T18:18:23.172930",
"date_modified": "2012-05-31T18:18:23.172965",
"id": "1000",
"name": "demo",
"resource_uri": "/api/v1/groups/1000/",
"size": 1,
"slug": "demo",
"text_to_subscribe": true
},
{
"date_created": "2012-05-31T18:18:23.172930",
"date_modified": "2012-05-31T18:18:23.172965",
"id": "1001",
"name": "customers",
"resource_uri": "/api/v1/groups/1001/",
"size": 0,
"slug": "customers",
"text_to_subscribe": false
}
]
}
Available Fields:
Name | Explanation |
---|---|
limit | The number of groups displayed on a page. |
next | The path to the next page of groups, if available. |
offset | The starting group for the current page. |
previous | The path to the previous page of the groups list, if available. |
total_count | The total number of groups. |
objects | The list of groups. |
Collect a Single Group’s Data¶
To collect a group’s data you make a GET request to the Groups resource, with the group’s id:
https://api.sendhub.com/v1/groups/ID/?username=USERNAME&api_key=APIKEY
Where:
- ID - is the group’s id. This can be obtained from the id or resource_uri field.
If your request is accepted you’ll get a 200 Ok status and a data response similar to this:
{
"date_created": "2012-05-31T18:18:23.172930",
"date_modified": "2012-05-31T18:18:23.172965",
"id": "1220",
"name": "Regulars",
"resource_uri": "/api/v1/groups/1220/",
"size": 2,
"slug": "regulars",
"text_to_subscribe": true
}
Collect a Group’s Contacts¶
To collect a group’s cpntact list you make a GET request to the Groups resource, adding ‘/contacts’ to url:
https://api.sendhub.com/v1/groups/ID/contacts?username=USERNAME&api_key=APIKEY
Where:
- ID - is the group’s id. This can be obtained from the id or resource_uri field.
If your request is accepted you’ll get a 200 Ok status and a data response similar to this:
{
"meta": {
"limit": 20,
"next": null,
"offset": 0,
"previous": null,
"total_count": 2
},
"objects": [
{
"blocked": false,
"date_created": "2012-05-31T17:44:17.406108",
"date_modified": "2012-05-31T17:44:17.406139",
"groups": [
"/api/v1/groups/1220/"
],
"id": "22081",
"name": "John Doe",
"number": "+6501234567",
"resource_uri": "/api/v1/contacts/22081/"
},
{
"blocked": false,
"date_created": "2012-05-31T17:44:17.406108",
"date_modified": "2012-05-31T17:44:17.406139",
"groups": [
"/api/v1/groups/1220/"
],
"id": "22411",
"name": "Jesse Doe",
"number": "+16507654321",
"resource_uri": "/api/v1/contacts/22411/"
}
]
}
Adding and Removing Contacts¶
To add or remove contacts from a Group, make a POST request to the Groups resource, with the group’s id , adding ‘/contacts’ to url:
https://api.sendhub.com/v1/groups/ID/contacts/?username=USERNAME&api_key=APIKEY
Where:
- ID - is the group’s id. This can be obtained from the id or resource_uri field.
You’ll also need to pass Headers and Data.
Headers:
Content-Type: application/json
Data:
Add a contact, remove 2 contacts.
{
"add": [
22081
],
"remove": [
22411,
22412
]
}
Note
Adding or removing contacts to/from a group will update each contact’s date_modified timestamp.
Available Fields:
Name | Explanation |
---|---|
add | The list of contact ids to be added to the group. |
remove | The list of contacts ids to be removed from the group. |
Editing a Group¶
To edit a group you make a PUT request to the Groups resource, with the group’s id.
https://api.sendhub.com/v1/groups/ID?username=USERNAME&api_key=APIKEY
Where:
- ID - is the group’s id. This can be obtained from the id or resource_uri field.
You’ll also need to pass Headers and Data.
Headers:
Content-Type: application/json
Data:
The following request changes the name of the group from ‘Regulars’ to ‘Best Customers’ but retains the same keyword/slug.
{
"id": "1220",
"name": "Best Customers",
"slug": "regulars"
"text_to_subscribe": true
}
Note
If you do not include ‘text_to_subscribe’ in your data, it will be set to false by the PUT.
If your request is accepted you’ll get a 202 Accepted status and a data response similar to this:
{
"date_created": "2012-05-31T18:18:23.172930",
"date_modified": "2012-05-31T19:29:41.59932",
"id": "1220",
"name": "Regulars",
"resource_uri": "/api/v1/groups/1220/",
"size": 2,
"slug": "regulars",
"text_to_subscribe": true
}
Note
ID and name are required fields for group editing.
Note
Editing group information will update the date_modified field to the current time.
Deleting a Group¶
To delete a group you make a DELETE request to the Groups resource, with the group’s id.
https://api.sendhub.com/v1/groups/ID/?username=USERNAME&api_key=APIKEY
Where:
- ID - is the group’s id. This can be obtained from the id or resource_uri field.
Therefore, to delete a contact through the API using cURL:
curl -H "Content-Type: application/json" -X DELETE 'https://api.sendhub.com/v1/groups/ID/?username=USERNAME&api_key=APIKEY'
If your request is accepted you’ll get a 204 No Content status, indicating the contact has been successfully deleted.