Enter the admin token set as ADMIN_TOKEN on your server.

Overview

What your dialers can draw from right now.

Coverage by state

Green bar = share of that state’s DIDs in batches that are live now.

DIDs by supplier

Recent denied requests

Batches

Each batch runs live for its run period, rests, then comes back on its own. New batches start paused: activate them now, or schedule a start time. A daily limit of 0 means no limit; once a DID reaches its limit it sits out until midnight.

New batch

DIDs

Upload, move, switch off or delete numbers. Files can be .txt, .csv or .xlsx; any column holding 10- or 11-digit US numbers is picked up, and the leading 1 is dropped.

Bulk upload

Bulk delete

Every number in the file or list is removed from all batches.

0 selected
DIDStateBatchSupplierOnTodayUsesLast used

Clients & IP access

Each client gets an API key, a list of IPs allowed to use it, and the batches it draws caller IDs from. A client with no IPs listed can’t make requests.

New client

When the paid period and any grace days run out, every IP of this client is refused until you renew. Leave “Paid until” empty for no limit.

Batches

Clients

Blocked IPs

Blocked addresses can’t reach the API or this admin page, even if a client allows them.

Rejections

Calls the far end refused (SIP 603, 607 or 608, or hangup cause 21), reported by your dial plan when a call doesn’t connect. Rates are worked out against the caller IDs the portal handed out. A DID that keeps getting rejected usually has a reputation problem, so check its registration with Hiya, First Orion and the other registries before using it again.

By day

Failure codes

By route

By batch

By supplier

DIDs with the most rejections

0 selected
DIDStateBatchCallsRejectedRateOn

Usage

Caller IDs handed out to each client, requests that got no caller ID, and requests refused by a client’s rate limit. Days run midnight to midnight in the portal’s time zone ().

Totals

By month

By day

Alerts

The portal checks these every minute and posts to a Discord channel. Each alert repeats at most once per cooldown period.

Discord

In Discord: channel settings → Integrations → Webhooks → New Webhook → Copy Webhook URL.

Counts DIDs in the client’s live batches that haven’t hit their daily limit. Only checked for clients that made requests in the last 24 hours.

For clients with area-code or state-match batches, when calls to a state fall back to rotation or get nothing.

When a client’s live batches are all about to rest and nothing else will be live.

One reminder before the end date, and one alert when a client’s IPs are cut off.

A short note when a scheduled batch starts.

Recent alerts

Dialer setup

Point VICIdial’s carrier dial plan at the portal so every outbound call gets a caller ID from the client’s live batches.

1. API request


        

Returns just the 10-digit DID, or an empty 404 when nothing is live (the call then keeps the campaign’s default caller ID). Add &format=json to see the match details.

2. VICIdial carrier dial plan

Admin → Carriers → your carrier → Dialplan Entry. The lines after Dial() report how each call went, which feeds the Rejections page.


        

If the portal returns nothing, the call hangs up. To dial with the campaign’s default caller ID instead, change the Hangup() under invalid to Goto(next).

3. Try it

4. Monitoring

Point Uptime Kuma (or any uptime checker) at the health address. It returns 503 if the portal can’t reach its database. Prometheus or Grafana Agent can scrape the metrics address; allow your monitoring server with METRICS_IPS or METRICS_TOKEN.


        

A client that goes over its requests-per-second limit gets HTTP 429 with an empty body, so the dial plan treats it like no caller ID.