---
title: CallHub API Integration on Truto
slug: callhub
category: Voice
canonical: "https://truto.one/integrations/detail/callhub/"
---

# CallHub API Integration on Truto



**Category:** Voice  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 29 tools for CallHub that AI agents can call directly.

- **create_a_call_hub_contact** — Create a new CallHub contact. Returns the created contact record including id, url, phonebooks, contact, mobile, first_name, last_name, and email. Required: contact (the phone number used in all voice campaigns).
- **delete_a_call_hub_contact_by_id** — Delete a CallHub contact by id. Returns an empty 204 response on success. Required: id.
- **get_single_call_hub_contact_by_id** — Get a single CallHub contact by id. Returns the contact record including id, url, phonebooks, contact, mobile, first_name, last_name, and email. Required: id.
- **update_a_call_hub_contact_by_id** — Update an existing CallHub contact by id. Returns the updated contact record including id, url, phonebooks, contact, mobile, first_name, and last_name. Required: id and contact (the phone number used in all voice campaigns).
- **create_a_call_hub_contact_tag** — Create one or more tags on a CallHub contact. Returns the created tag objects including name, crm_type, crm_id, id, pk_str, and created_date. Required: contact_id, name.
- **delete_a_call_hub_contact_tag_by_id** — Delete a tag from a CallHub contact by tag id. Returns an empty 204 response on success. Required: contact_id and id.
- **call_hub_phonebook_contacts_bulk_add** — Add existing CallHub contacts to a phonebook in bulk. Returns the updated phonebook object including its id, url, owner, name, description, and contact count. Required: phonebook_id, contact_ids.
- **call_hub_phonebook_contacts_bulk_remove** — Remove existing CallHub contacts from a phonebook in bulk. Returns the updated phonebook object including its id, url, owner, name, description, and contact count. Required: phonebook_id, contact_ids.
- **list_all_call_hub_phonebook_contacts** — List all contacts in a CallHub phone book, each with all contact details. Returns: url, phonebooks, contact, mobile, last_name, first_name, country_code, email, address, city, state, company_name, company_website, job_title. Required: phonebook_id. Max page size 1000.
- **create_a_call_hub_contacts_bulk_create** — Bulk import contacts into a CallHub phonebook from an uploaded CSV file or a hosted csv_url. Returns: message, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: phonebook_id, mapping. Either contacts_csv or csv_url must be supplied; imports are processed asynchronously one at a time.
- **create_a_call_hub_tag** — Create a tag in CallHub. Returns the created tag object including id, name, crm_id, crm_type, contact, created_date, and updated_date. Required: tag (the name of the tag to create).
- **get_single_call_hub_tag_by_id** — Get details of a specific tag in CallHub by its id. Returns the tag record with id, name, crm_id, crm_type, contact, created_date, and updated_date. Required: id.
- **get_single_call_hub_team_agent_by_id** — Get agent details for a CallHub team by id. Returns: agents_data, team. Required: id.
- **list_all_call_hub_team_agents** — List the existing agents assigned to a CallHub team. Returns: agents. Required: team_id.
- **call_hub_team_agents_bulk_delete** — Remove existing agents from a CallHub team. Pass the agent ids to remove in agent_ids. Required: team_id. Returns an empty 204 response on success.
- **call_hub_team_agents_bulk_update** — Assign existing agents to a CallHub team. Returns the team record: id, name, created_at. Required: team_id, agent_ids.
- **create_a_call_hub_team** — Create a team in CallHub with the given name. Returns the created team object including id, name, created_at, and pk_str (the team id as a string). Required: name.
- **delete_a_call_hub_team_by_id** — Delete a team in CallHub by id. Returns an empty 204 response on success. Required: id.
- **list_all_call_hub_teams** — List teams in CallHub. Returns each team's id, name, and created_at.
- **update_a_call_hub_team_by_id** — Update a team's name in CallHub by id. Returns the updated team object including id, name, and created_at. Required: id, name.
- **list_all_call_hub_campaign_info** — List CallHub campaign info for the campaigns the agent is assigned to, filtered by campaign IDs. Returns an array of campaign info objects including id, name, status, script, totalcontact, completed, phonebook, and created_date. Required: id (array of Campaign IDs).
- **list_all_call_hub_credits_usage** — Get CallHub credits usage details for a date range. Returns a usage report with count, next, previous, and results containing total_usage records (sms_amount, voice_amount, voice_calls, credits_remaining) plus per-campaign-type usage breakdowns. Required: start_date (mm/dd/yyyy). If end_date is omitted, usage covers a single day; all usage details cover UTC 00:00-23:59.
- **create_a_call_hub_dnc_contact** — Create a new DNC contact in CallHub, adding a phone number to a Do-Not-Call list. Returns: url, dnc, phone_number, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: dnc, phone_number. Set category to 1 for opted out of calling only, 2 for opted out of texting only, or 3 for both (defaults to 3).
- **update_a_call_hub_p_2_p_campaign_by_id** — Update a CallHub P2P campaign's status (1 = START, 2 = PAUSE, 4 = END) or rename it. Returns: id, name, status, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: id. PATCH semantics — at least one of status or name must be provided, and name cannot be changed while the campaign is running (status 1) unless the same request also transitions it out of START.
- **list_all_call_hub_calling_numbers** — List rented calling numbers in Callhub. Returns: phone_number, country, region, last_rent, is_active, last_used_date, is_used_in_campaign. Filterable by country, region, and number prefix; max 1000 per page.
- **list_all_call_hub_validated_numbers** — List the phone numbers validated for use in CallHub campaigns. Returns a list where each item includes phone_number. Max 1000 per page.
- **create_a_call_hub_rent_number** — Rent a phone number in CallHub for use in call center or voice broadcast campaigns. Returns the rented number with id, phone_number, country, region, status, voice/sms/mms capability flags, and rental charges. Required: country_iso. If no numbers are available in the requested area code, a random number from the country is rented.
- **create_a_call_hub_template** — Create a CallHub script template with a label and a list of survey/text questions. Returns the created template: label, questions. Required: label, questions; each question requires type (12 or 1) and question text.
- **list_all_call_hub_templates** — List CallHub script templates. Returns template records with id, label, and their survey/text questions.

## How it works

1. **Link your customer's CallHub account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach CallHub.** The Proxy API is a 1-to-1 mapping of the CallHub API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Embed voter and supporter outreach in political CRMs** — Political CRM and campaign management platforms can let organizers push segmented voter lists directly into CallHub phonebooks and sync tags back as volunteers complete calls, eliminating manual CSV exports between tools.
- **Automate volunteer and agent provisioning from scheduling tools** — Workforce and volunteer scheduling SaaS can provision CallHub agents, assign them to teams for specific shifts, and revoke access when shifts end — keeping call center rosters in sync without a dedicated ops team.
- **Centralize TCPA compliance across channels** — Debt collection, fundraising, and omnichannel marketing platforms can push opt-outs captured anywhere in their product directly to CallHub's DNC list in real time, reducing TCPA exposure for their customers.
- **Unified campaign analytics and credit monitoring** — Marketing and advocacy analytics dashboards can pull live CallHub campaign metrics and credit usage alongside other channels to show true cost-per-contact and ROI without customers logging into multiple tools.
- **Script and template orchestration for managed services** — Agencies and managed-service platforms can inject standardized call scripts, survey templates, and P2P campaign configurations into their clients' CallHub accounts, enforcing consistent messaging across many sub-accounts.

## What you can build

- **Bulk phonebook sync from CRM segments** — Use asynchronous bulk contact creation and phonebook bulk add/remove to keep CallHub audiences aligned with dynamic CRM segments, even at the scale of millions of records.
- **Real-time tag write-back** — Create contact tags on CallHub records as call outcomes and survey responses come in, so your users see unified contact profiles inside your product.
- **Agent and team lifecycle automation** — Create teams, bulk-update agent assignments, and bulk-delete agents based on shift schedules or role changes in your platform.
- **P2P campaign remote control** — Let your users start, pause, or update CallHub P2P campaigns from your UI, without context-switching into the CallHub dashboard.
- **DNC enforcement engine** — Push opt-outs to CallHub's DNC list with voice, SMS, or both granularity whenever a contact unsubscribes anywhere in your product.
- **Local-presence number provisioning** — Rent CallHub phone numbers matching your users' target area codes on demand, and surface validated and calling numbers inside your campaign setup flow.

## FAQs

### What authentication does CallHub use?

CallHub uses API key authentication tied to a user's account. With Truto, your end users connect their CallHub account once through a connected-account flow, and Truto handles credential storage and injection on every request.

### How do we handle importing very large contact lists without hitting rate limits?

Use the bulk contact create endpoint, which accepts a CSV URL and runs asynchronously inside CallHub. This is the recommended path for lists ranging from thousands to millions of contacts, since it avoids per-record API calls entirely.

### Can we read campaign performance data in real time?

Yes. You can poll the campaign info endpoint to retrieve status, total contacts, and completion metrics for active campaigns. CallHub does not expose streaming webhooks for all campaign events via this surface, so dashboards are typically polling-based.

### Does the integration support DNC granularity for voice vs. SMS?

Yes. The DNC contact create operation supports specifying whether a number should be blocked for voice, SMS, or both, allowing you to mirror channel-specific opt-out preferences from your product.

### What agent and team operations are supported?

You can list and fetch team agents, bulk update and bulk delete agents, and create, update, list, and delete teams. This covers most provisioning and deprovisioning workflows needed to sync agents from an external HRIS, scheduling tool, or CRM.

### Can we manage call scripts and templates programmatically?

Yes. You can create templates and list all existing templates, which lets you inject standardized scripts and survey questions into a client's CallHub account before campaigns launch.

### How do we monitor usage for billing or alerting?

Use the credits usage list endpoint to pull consumption data per account. This is commonly used to trigger in-app budget alerts, enforce plan limits, or reconcile internal billing against CallHub spend.
