canonical: https://jentic.com/apis/callcontrol.com/callcontrol

# Call Control API

Jentic publishes the only available OpenAPI specification for the Call Control API, keeping it validated and agent-ready. Call Control returns reputation and block decisions for phone numbers using a crowdsourced blacklist drawn from 12+ million end users and US government feeds (FTC, FCC, IRS). Six endpoints cover number reputation lookups, complaint history, per-user block decisions for enterprise tenants, user upsert, and report submission. Authentication is an apiKey header on every request, and the API is intended for telephony platforms, contact centres, and agent tools that need to filter likely spam or fraud calls before they reach a human.

## For AI agents

Look up the spam reputation of a phone number, check complaints, and decide whether to block an inbound caller for an enterprise user via the Call Control API.

## Scope

Does not handle outbound call placement, SMS sending, or call recording - use for phone number reputation lookups and spam block decisions only.

## Capabilities

- Look up reputation scores for any phone number via /api/2015-11-01/Reputation/{phoneNumber}
- Retrieve complaint history for a number via /api/2015-11-01/Complaints/{phoneNumber}
- Decide whether to block a caller for a specific user via the Enterprise ShouldBlock endpoint
- Upsert enterprise user profiles to drive per-user block decisions
- Submit user-reported spam back to Call Control via /api/2015-11-01/Report
- Authenticate every request with the apiKey header

## Use cases

### Inbound Caller Screening

When a call hits the contact centre, the call router calls Reputation/{phoneNumber} to retrieve the spam score and complaint count, then chooses whether to send the caller straight to voicemail or to a live agent. The data is sourced from a blacklist of 12+ million users plus FTC, FCC, and IRS feeds, so coverage of US robocallers is strong.

Example prompt: GET /api/2015-11-01/Reputation/{phoneNumber} for the inbound number and route the call based on the reputation score.

### Per-User Block Decision

For enterprise tenants where each end user has their own block preferences, call Enterprise/ShouldBlock/{phoneNumber}/{userPhoneNumber} to get a block-or-allow decision tailored to that user. The endpoint takes both the inbound caller number and the recipient user number, so personal whitelists and the global community blacklist are combined automatically.

Example prompt: GET /api/2015-11-01/Enterprise/ShouldBlock/{phoneNumber}/{userPhoneNumber} and reject the call when the response indicates block.

### User-Reported Spam Feedback Loop

When an end user marks a call as spam in the company app, POST that report to /api/2015-11-01/Report so the data flows back into the Call Control crowdsourced blacklist. This both improves global signal quality and ensures that a number flagged by your users is also treated as spam in future Reputation checks.

Example prompt: POST a Report payload to /api/2015-11-01/Report containing the phone number, reporter user ID, and category of spam.

### Enterprise User Onboarding

When provisioning new users on a corporate phone system, call Enterprise/UpsertUser to register their phone number with Call Control. After the upsert, the ShouldBlock endpoint can return per-user block decisions for that user, and GetUser can look up the enterprise user by phone number for diagnostics.

Example prompt: POST the new user's phone number and metadata to /api/2015-11-01/Enterprise/UpsertUser, then verify with GET /api/2015-11-01/Enterprise/GetUser/{phoneNumber}.

### AI Agent Caller Reputation Lookup via Jentic

Through Jentic, an AI agent searches for an intent like 'check the reputation of this phone number' and is returned the Reputation operation along with its input schema. The agent passes the phone number from the inbound webhook, gets the score, and decides whether to escalate to a human or auto-respond. Setup time is under an hour rather than several days of direct integration.

Example prompt: Use Jentic search for 'check the reputation of a phone number', load the Reputation schema, and execute it with the inbound phone number.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /api/2015-11-01/Reputation/{phoneNumber} | Look up the reputation of a phone number |
| GET | /api/2015-11-01/Complaints/{phoneNumber} | Retrieve complaint history for a number |
| GET | /api/2015-11-01/Enterprise/ShouldBlock/{phoneNumber}/{userPhoneNumber} | Per-user block decision |
| GET | /api/2015-11-01/Enterprise/GetUser/{phoneNumber} | Look up an enterprise user by phone number |
| POST | /api/2015-11-01/Enterprise/UpsertUser | Create or update an enterprise user |
| POST | /api/2015-11-01/Report | Submit a spam report from a user |

## Key resources

- **Reputation** — Look up the spam score and reputation of a phone number.
- **Complaints** — Retrieve historical complaint records for a phone number.
- **EnterpriseApi** — Per-user block decisions, enterprise user upsert, and user lookup by phone.

## Why Jentic

- **Setup:** Wiring the Call Control API by hand means setting the apiKey header on every request and mapping the dated /api/2015-11-01 reputation, complaint, and block-decision endpoints yourself. Through Jentic you install once, import Call Control from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Call Control carries the phone number as a path value on lookups but the underlying scope is the operation, so keep scoping at the operation level: you limit the agent to the read operations it needs, such as a reputation lookup or a should-block check, so state-changing calls like /Report or Enterprise user upsert are not included unless you add them.
- **Credential handling:** Your Call Control apiKey is stored once, encrypted, by your own Jentic One instance and injected into the header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'check the reputation of a phone number' or 'should I block this caller', and Jentic returns the matching Call Control operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Caller API** — Caller API also enriches phone numbers with caller-ID and carrier data; Call Control focuses specifically on spam and block decisions.
- **CallFire API** — CallFire sends voice and SMS while Call Control screens inbound numbers - combine to filter outbound destination lists.
- **MiroTalk C2C API** — MiroTalk C2C provides peer-to-peer video; Call Control can pre-filter inbound calls that escalate to a video session.

## FAQ

### Why is there no official OpenAPI spec for the Call Control API?

Call Control publishes a Swagger JSON on their marketing site but does not host a maintained OpenAPI specification on a developer portal. Jentic generates and maintains this spec so that AI agents and developers can call the Call Control API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Call Control API use?

The Call Control API uses an API key passed in the apiKey HTTP header. Through Jentic, the key is stored encrypted in the credential vault and injected at execution time, so the agent never holds the raw value in its context.

### Can I check whether a specific caller should be blocked for a specific user?

Yes. Call /api/2015-11-01/Enterprise/ShouldBlock/{phoneNumber}/{userPhoneNumber} with both the inbound caller number and the recipient user number. The endpoint combines the user's personal block preferences with the global crowdsourced blacklist.

### What are the rate limits for the Call Control API?

The OpenAPI specification does not declare per-endpoint rate limits. Limits are tied to the enterprise contract - contact Call Control for the throughput agreed for your apiKey before scheduling high-volume reputation sweeps.

### How do I look up the reputation of a phone number through Jentic?

Run a Jentic search for 'check the reputation of a phone number', load the Reputation schema, and execute it with the inbound phone number. Install the SDK with pip install jentic and use the async search, load, and execute pattern.

### Is the Call Control API free?

Call Control prices the API for enterprise customers rather than offering a public free tier. Pricing is not declared in the OpenAPI spec and depends on call volume and the endpoints enabled - contact Call Control sales for current rates.

### Can I limit what my agent is allowed to do with the Call Control API?

Yes. Because you run Jentic One yourself, your own rules decide which Call Control operations and which stored apiKey the agent may use, and scoping is set at the operation level. You can restrict the agent to just the read operations it needs, such as the reputation lookup at /api/2015-11-01/Reputation/{phoneNumber} or the Enterprise ShouldBlock check, so that state-changing calls like the /api/2015-11-01/Report submission or Enterprise UpsertUser are not available unless you add them. This lets a caller-screening agent look up spam scores and block decisions without ever being able to write reports or modify enterprise user records.
