EZ Texting Contact Groups API
The Contact Groups API from EZ Texting — 3 operation(s) for contact groups.
The Contact Groups API from EZ Texting — 3 operation(s) for contact groups.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/eztexting-com:eztexting-com-contact-groups-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: EzTexting Contact Groups API
description: EzTexting API
termsOfService: https://www.eztexting.com/terms
contact:
email: support@eztexting.com
version: '1.0'
servers:
- url: a.eztexting.com
security:
- basic_auth:
- read
- write
- oauth_auth:
- read
- write
tags:
- name: Contact Groups
paths:
/v1/contact-groups:
get:
tags:
- Contact Groups
summary: List Contact Groups
description: List contact groups matching provided filters
operationId: list_2
parameters:
- name: page
in: query
description: Offset of a given page. The default is 0. See [pagination](https://eztexting.readme.io/docs/pagination) docs for more information.
required: false
schema:
type: integer
default: 0
example: 0
- name: size
in: query
description: The maximum number of records to return in a paged list response. The default is 20 and allowed values are 10, 20, 50, 100, 200
required: false
schema:
type: string
default: '20'
enum:
- '10'
- '20'
- '50'
- '100'
- '200'
example: 20
- name: sort
in: query
description: 'Sort field name and direction (asc or desc). Example: sort=created,desc'
required: false
schema:
type: string
- name: filters[name][like]
in: query
description: Filter by name
schema:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/PageResponseContactGroup'
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'401':
description: Unauthorized
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'404':
description: Not Found
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'429':
description: Too Many Requests
'500':
description: Internal Server Error
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
post:
tags:
- Contact Groups
summary: Create Contact Group
description: Create a new contact group
operationId: create_1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ContactGroupCreateRequest'
required: true
responses:
'201':
description: Created
content:
'*/*':
schema:
$ref: '#/components/schemas/IdResponseString'
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'401':
description: Unauthorized
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'404':
description: Not Found
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'429':
description: Too Many Requests
'500':
description: Internal Server Error
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
/v1/contact-groups/{id}:
get:
tags:
- Contact Groups
summary: Get Contact Group
description: Get a contact group by id
operationId: get_1
parameters:
- name: id
in: path
description: Contact group id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/ContactGroup'
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'401':
description: Unauthorized
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'404':
description: Not Found
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'429':
description: Too Many Requests
'500':
description: Internal Server Error
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
put:
tags:
- Contact Groups
summary: Update Contact Group
description: Update an existing contact group
operationId: update_1
parameters:
- name: id
in: path
description: Contact group id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ContactGroupUpdateRequest'
required: true
responses:
'200':
description: OK
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'401':
description: Unauthorized
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'404':
description: Not Found
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'429':
description: Too Many Requests
'500':
description: Internal Server Error
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
delete:
tags:
- Contact Groups
summary: Delete Contact Group
description: Delete a contact group by id
operationId: delete_2
parameters:
- name: id
in: path
description: Contact group id
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'401':
description: Unauthorized
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'404':
description: Not Found
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'429':
description: Too Many Requests
'500':
description: Internal Server Error
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
/v1/contact-groups/{id}/contacts:
post:
tags:
- Contact Groups
summary: Add Contacts to Contact Group
description: Add contacts by phone number to a contact group
operationId: contactsAdd
parameters:
- name: id
in: path
description: Contact group id
required: true
schema:
type: string
- name: phoneNumbers
in: query
description: Phone numbers to add
required: true
schema:
type: array
items:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
type: string
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'401':
description: Unauthorized
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'404':
description: Not Found
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'429':
description: Too Many Requests
'500':
description: Internal Server Error
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
delete:
tags:
- Contact Groups
summary: Remove Contacts from Contact Group
description: Remove contacts by phone number from a contact group
operationId: contactsRemove
parameters:
- name: id
in: path
description: Contact group id
required: true
schema:
type: string
- name: phoneNumbers
in: query
description: Phone numbers to remove
required: true
schema:
type: array
items:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
type: string
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'401':
description: Unauthorized
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'404':
description: Not Found
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
'429':
description: Too Many Requests
'500':
description: Internal Server Error
content:
'*/*':
schema:
$ref: '#/components/schemas/Errors'
components:
schemas:
PageResponseContactGroup:
type: object
description: Page
properties:
content:
type: array
description: The paged collection of elements
items:
$ref: '#/components/schemas/ContactGroup'
number:
type: integer
format: int32
description: The requested page number
example: 0
size:
type: integer
format: int32
description: The requested page size
example: 20
totalElements:
type: integer
format: int64
description: The total number of elements available
example: 100
totalPages:
type: integer
format: int32
description: The total number of pages available
example: 5
numberOfElements:
type: integer
format: int32
description: The number of elements in the current page
example: 20
ContactGroupUpdateRequest:
type: object
description: ContactGroupUpdateRequest
properties:
name:
type: string
description: The group name, max length 25 chars
maxLength: 25
minLength: 1
note:
type: string
description: Notes related to contact group
maxLength: 500
minLength: 0
required:
- name
Error:
type: object
properties:
code:
type: string
title:
type: string
message:
type: string
IdResponseString:
type: object
properties:
id:
type: string
ContactGroup:
type: object
description: ContactGroup
properties:
id:
type: string
description: Group id
name:
type: string
description: Group name
note:
type: string
description: Notes related to contact group
contactsCount:
type: integer
format: int32
description: Number of contacts in contact group
ContactGroupCreateRequest:
type: object
description: ContactGroupCreateRequest
properties:
name:
type: string
description: The group name, max length 25 chars
example: Example Name
maxLength: 25
minLength: 1
note:
type: string
description: Notes related to contact group
maxLength: 500
minLength: 0
phoneNumbers:
type: array
description: Phone numbers of contacts to add to this group
items:
type: string
groupIds:
type: array
description: Groups of contacts to merge into this group
items:
type: string
strictValidation:
type: boolean
description: If false - contact group will be created with all valid numbers (all invalid phone numbers will be skipped),if true - group will not be created if there is at least one invalid phone number from list
required:
- name
Errors:
type: object
properties:
status:
type: integer
format: int32
title:
type: string
detail:
type: string
errors:
type: array
items:
$ref: '#/components/schemas/Error'
securitySchemes:
basic_auth:
type: http
scheme: basic
oauth_auth:
type: oauth2
flows:
password:
tokenUrl: http://nova-app.stg0.cf.wtf/oauth_token/generate/swagger
scopes:
read: ''
write: ''
x-proxy-enabled: false
x-send-defaults: true
x-samples-languages:
- curl
- node
- ruby
- javascript
- python
- java
- swift
- kotlin
- go
- csharp
x-provenance:
method: searched
source: https://developers.eztexting.com/reference
harvested: '2026-11-07'
tool: harvest-readme-openapi.py
note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
assembled_from:
- https://developers.eztexting.com/reference/acquire-1.md
- https://developers.eztexting.com/reference/acquire_1-1.md
- https://developers.eztexting.com/reference/archive-1.md
- https://developers.eztexting.com/reference/blockoutboundtexts-1.md
- https://developers.eztexting.com/reference/check-1.md
- https://developers.eztexting.com/reference/contactsadd-1.md
- https://developers.eztexting.com/reference/contactsremove-1.md
- https://developers.eztexting.com/reference/create-1.md
- https://developers.eztexting.com/reference/create_1-1.md
- https://developers.eztexting.com/reference/create_2-1.md
- https://developers.eztexting.com/reference/create_3-1.md
- https://developers.eztexting.com/reference/create_4-1.md
- https://developers.eztexting.com/reference/create_5-1.md
- https://developers.eztexting.com/reference/create_6-1.md
- https://developers.eztexting.com/reference/createorupdate-1.md
- https://developers.eztexting.com/reference/createorupdatebatch-1.md
- https://developers.eztexting.com/reference/creditbalance-1.md
- https://developers.eztexting.com/reference/delete-1.md
- https://developers.eztexting.com/reference/delete_1-1.md
- https://developers.eztexting.com/reference/delete_2-1.md
- https://developers.eztexting.com/reference/delete_3-1.md
- https://developers.eztexting.com/reference/delete_4-1.md
- https://developers.eztexting.com/reference/delete_5-1.md
- https://developers.eztexting.com/reference/delete_6-1.md
- https://developers.eztexting.com/reference/details-1.md
- https://developers.eztexting.com/reference/get-1.md
- https://developers.eztexting.com/reference/get_1-1.md
- https://developers.eztexting.com/reference/get_2-1.md
- https://developers.eztexting.com/reference/get_3-1.md
- https://developers.eztexting.com/reference/get_4-1.md
- https://developers.eztexting.com/reference/get_5-1.md
- https://developers.eztexting.com/reference/get_6-1.md
- https://developers.eztexting.com/reference/list-1.md
- https://developers.eztexting.com/reference/list_1-1.md
- https://developers.eztexting.com/reference/list_2-1.md
- https://developers.eztexting.com/reference/list_3-1.md
- https://developers.eztexting.com/reference/list_4-1.md
- https://developers.eztexting.com/reference/list_5-1.md
- https://developers.eztexting.com/reference/list_6-1.md
- https://developers.eztexting.com/reference/list_7-1.md
- https://developers.eztexting.com/reference/list_8-1.md
- https://developers.eztexting.com/reference/listcampaigns-1.md
- https://developers.eztexting.com/reference/listresponsesdelivery-1.md
- https://developers.eztexting.com/reference/listresponsesengagement-1.md
- https://developers.eztexting.com/reference/listresponseslink-1.md
- https://developers.eztexting.com/reference/messagelist-1.md
- https://developers.eztexting.com/reference/messageread-1.md
- https://developers.eztexting.com/reference/messageunread-1.md
- https://developers.eztexting.com/reference/purchasecredits-1.md
- https://developers.eztexting.com/reference/refresh-1.md
- https://developers.eztexting.com/reference/release-1.md
- https://developers.eztexting.com/reference/restore-1.md
- https://developers.eztexting.com/reference/revoke-1.md
- https://developers.eztexting.com/reference/update-1.md
- https://developers.eztexting.com/reference/update_1-1.md
- https://developers.eztexting.com/reference/update_2-1.md
- https://developers.eztexting.com/reference/updatesettings-1.md
merge:
pages: 57
deduped: 253
conflicts_kept_first: 0