Groups
Read your account's groups. Groups are managed in the Textingline dashboard — the API exposes them read-only. Use these endpoints to look up the grp_* IDs you'll need for Group Membership operations and to inspect group configuration.
Endpoints
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/groups | List groups (paginated, filterable) |
| GET | /api/v1/groups/{id} | Get a single group by grp_* id |
LIST — GET /api/v1/groups
GET /api/v1/groupsReturns a paginated list of your account's groups, ordered by creation date (newest first).
curl "https://platform.textingline.com/api/v1/groups?limit=20&page=1" \
-u "your_key_id:your_key_secret"Query parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | 1-based page number. |
limit | integer | 20 | Page size, capped at 100. |
name | string | — | Optional partial-match filter on the group name (case-insensitive substring). |
Response
{
"page": 1,
"limit": 20,
"totalCount": 42,
"results": [
{
"id": "grp_DsAdb4EBYBh3z25sBA1q",
"name": "VIP Customers",
"isDefault": false,
"optInType": "SINGLE",
"contactCount": 1247,
"tags": [
{
"id": "tag_3pXAGm5x9YzKw2VPHCnB",
"name": "Gold",
"createdAt": "2025-08-01T00:00:00.000Z",
"updatedAt": "2025-08-02T00:00:00.000Z"
}
],
"createdAt": "2025-08-01T00:00:00.000Z"
}
]
}| Envelope field | Description |
|---|---|
page | Current 1-based page number, echoed from the query. |
limit | Page size, echoed from the query (after server-side cap). |
totalCount | Total number of groups matching the filter (across all pages). |
results | Array of group projections — see Group shape below. |
GET — GET /api/v1/groups/{id}
GET /api/v1/groups/{id}Returns a single group by its grp_* public ID.
curl https://platform.textingline.com/api/v1/groups/grp_DsAdb4EBYBh3z25sBA1q \
-u "your_key_id:your_key_secret"Returns 200 OK with the group projection (same shape as one entry in the LIST response above), or 404 GroupNotFound (33031) if no group with that ID exists in your account.
Group shape
| Field | Description |
|---|---|
id | Stable public ID, prefixed grp_. Use this in Group Membership URLs. |
name | Operator-defined display name. Editable in the dashboard. |
isDefault | true for the account's default group, which is the implicit target for some legacy inbound flows. Most integrations can ignore this. |
optInType | SINGLE — explicit consent required (use optInMode: DIRECT when enrolling); or DOUBLE — confirmation flow (use optInMode: CONFIRM). See Group Membership — Opt-in modes. |
contactCount | Number of active members in the group at the time of the request. |
tags | Tags defined on this group. Used for membership-level sub-segmentation. Each tag has id (tag_*), name, createdAt, and updatedAt (ISO 8601). |
createdAt | ISO 8601 timestamp. |
Rate limit
| Endpoint | Limit | Window |
|---|---|---|
GET /api/v1/groups (list) | 150 requests | 60 seconds |
GET /api/v1/groups/{id} | 150 requests | 60 seconds |
Both share a single contactApiRead bucket with Contacts GET and Custom Fields schema reads. See Rate Limits.
Common errors
| Code | HTTP | Description |
|---|---|---|
33031 | 404 | Group not found (or not owned by your account). |
33034 | 400 | Invalid grp_* ID format on the {id} path segment. |
33001 | 401 | Authentication failed. |
33002 | 429 | Rate limit exceeded. |
See Error Codes for the full reference.