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.