Skip to main content
These endpoints let you create and manage outbound calling campaigns, upload contacts, and track progress. For a step-by-step walkthrough, see the Outbound Campaigns guide.
All requests require an Authorization: Bearer YOUR_GUAVA_API_KEY header. See the API Overview for details.
Campaigns are addressed by their campaign code — a gcmp- prefixed identifier (e.g. gcmp-a1b2c3d4) returned when you create a campaign. Use it wherever an endpoint takes a {campaign_code}.
Every endpoint below is served under /v2 and is addressed by campaign code. The older /v1 paths — which addressed campaigns by their internal database id — still respond for backwards compatibility but are deprecated; switch to /v2.

Create a campaign

Create a new outbound campaign. Campaign names must be unique within your organization.

Parameters

Calling windows

Each entry in calling_windows is an object: The recommended calling window is 8:00AM–9:00PM. Windows outside that range are accepted but the response includes a warning.

Response

201 Created with the campaign object:

Errors

Example

Sample response:

List campaigns

List your organization’s active (non-deleted) campaigns.

Response

A JSON array of campaign objects, each in the same shape returned by Get a campaign.

Errors

Example


Get a campaign

Retrieve a single campaign by its campaign code.

Parameters

Response

The campaign object, in the same shape returned by Create a campaign.

Errors

Example


Update a campaign

Update one or more fields of an existing campaign. Only the fields you include are changed. Changing schedule-affecting fields (calling_windows, timezone, start_date, end_date) or origin_phone_numbers reschedules the campaign’s pending contacts.

Parameters

Response

The updated campaign object. Includes a warning field if a supplied calling window is outside the recommended range.

Errors

Example


Delete a campaign

Soft-delete a campaign. Deleted campaigns no longer place calls and stop appearing in List campaigns.

Parameters

Response

Errors

Example


Get campaign status

Retrieve a breakdown of contact statuses for a campaign — how many contacts are still being tried, completed, failed, etc.

Parameters

Response

Errors

Example

Sample response:

Check for callable contacts

Report whether the campaign currently has any contacts eligible to be called. Useful for deciding whether to keep a worker running.

Parameters

Response

Errors

Example


Upload contacts

Add contacts to a campaign. Phone numbers are validated and normalized to E.164, checked against your organization’s Do Not Call list, and de-duplicated within the campaign. Up to 10,000 contacts may be uploaded per request. If any contact is rejected, the entire request is rejected.

Parameters

Each contact object:

Response

200 OK on success: If any contact is rejected, 400 is returned and no contacts are created:

Errors

Example

Sample response:

List contacts

List contacts across your campaigns, newest first. Filter by campaign, status, contact data, or attempt time.

Parameters

Response

Errors

Example

The deprecated /v1/contacts endpoint takes a campaign_id query parameter — your campaign’s internal database id — in place of campaign_code. It still works for backwards compatibility, but new integrations should use /v2/contacts with campaign_code.

Delete contacts by phone number

Permanently remove every contact in a campaign with the given phone number. If the number was uploaded more than once with allow_duplicates, all copies are removed. Contacts in other campaigns are not affected. A contact that is being dialed or is mid-call can’t be deleted. If any matching contact is, the request fails with 409 and no contacts are removed. Retry once the call has ended. (If a duplicate starts dialing while the request is running, the other copies may already be gone, but the one being dialed is kept and you still get the 409.)

Parameters

Response

Errors

Example

Sample response:

Delete a contact

Permanently remove a single contact from a campaign. Get the contact’s id from List contacts. A contact that is being dialed or is mid-call can’t be deleted. Retry once the call has ended.

Parameters

Response

Errors

Example

Sample response: