Each section follows the same shape: what the resource is, why it exists, the happy-path call, the parameters that matter, and the gotchas to plan around. For full schemas and additional optional fields, check docs.telegent.com.Documentation Index
Fetch the complete documentation index at: https://docs.telegent.com/llms.txt
Use this file to discover all available pages before exploring further.
1. Authentication
Every Telegent API call needs a Bearer token. You get one by posting yourAccountKey and AccountSecret to the OAuth2 token endpoint. Tokens are short-lived and scoped to a specific ApiEndpoint URL, so generate a fresh one for each endpoint you call (or refresh on expiry).
Endpoint: POST /v1.0/oauth2/tokens
2. Account
Where an Account sits in the hierarchy
Telegent’s org chart has four tiers. At the top is the Aggregator — the platform owner. Beneath it sit one or more Distributors (carriers, MVNEs, resellers). Each Distributor owns one or more Accounts, and each Account is the unit you’ll actually work with day to day.What an Account is
Think of an Account as a family or a business. It holds one Manager — the steward who can administer the Account — and any number of Subscribers, who are the people actually using the service. A Subscriber, in turn, can hold one or many phone Numbers. Every Number that goes live on the platform is bound to exactly one Account and exactly one Subscriber. There is no orphan number on Telegent. Endpoint:POST /v1.0/account/create
Parameters worth knowing
| Field | Type | Description |
|---|---|---|
AccountName | string | Display name — the name of the family or business. Visible on invoices and reports. |
AccountAdmin | string | Email of the Manager. They receive billing and system notices for the whole Account. |
BillingAddress | object | Required for invoicing. Set Country = USA unless you’re an international Distributor. |
MailingAddress | object | Optional. Leave fields null if same as Billing. |
The one rule to remember: Every Number must have both an Account (AID) and a Subscriber (TSUID) assigned to it. Never provision or port a number without deciding who it belongs to first.
3. Subscribers and Roles
A Subscriber is a real person (or service identity) that lives under an Account. A Subscriber can hold one phone Number or many — a parent on a family plan might have a single line; a business operations lead might own a dozen IoT lines. Either way, every Number a Subscriber owns is bound to the same Account.The three roles
Each Subscriber record carries a Role. The Role determines what that person can do inside the Account.| Role | Description |
|---|---|
| Subscriber | End user. Holds one or more Numbers, a Subscription, and (optionally) Guardian filters. Cannot administer the Account. |
| Manager | The steward of the Account — typically one per Account. Manages Subscribers, Subscriptions, Guardian filters, and data limits within their Account. |
| Account Admin | Administrative role at the Account level. Can configure routes, manage Packages, update billing info. Use sparingly; Distributors usually hold this. |
Manager = One per Account. Telegent’s product convention is one Manager per Account — the head of the family or the operations lead at the business. You can technically create multiple Subscribers with the Manager role, but the cleanest model (and the one MVNO billing assumes) is a single Manager who owns the Account-level decisions.
POST /v1.0/subscribers/create
Parameters worth knowing
| Field | Type | Description |
|---|---|---|
Name | string | Required. Free-text display name. |
Email | string | Required. Must be unique across the entire platform. |
PhoneNumbers | string[] | Required. E.164 format. Can be empty array on create, then assigned later. |
Role | enum | Subscriber | Manager | Account Admin |
Password | string | Required at create. Issue a temp value and force a reset on first login. |
AccountId | string | Required. The AID this subscriber belongs to. |
4. Routes — Message and Voice
Routes tell Telegent where to send inbound traffic and where to receive your callbacks. A Message Route is required before you can provision any number. A Voice Route is required only if the number will handle calls.4.1 Message Route (MRID)
Endpoint:POST /v1.0/message/routes
Request
Save the
MessageRouteId (MRID) — you will need it on every number provision call.4.2 Voice Route (CRID)
Endpoint:POST /v1.0/voice/routes
Voice Routes support three RouteType values: "Trunk" (SIP trunk to your softswitch / PBX), "URL" (webhook for VoIP-style apps), or "Forward" (PSTN forward). Most MVNO setups use Trunk.
Request
Save the
CallRouteId (CRID) for voice-enabled provisioning.Parameters worth knowing
| Field | Type | Description |
|---|---|---|
MessageUrl | string | Where inbound SMS/MMS payloads are delivered. |
CallbackMessageUrl | string | Where delivery receipts and status callbacks are delivered. |
TrunkIp1 / Uri1 | string | Primary SIP endpoint. Configure two trunks (1 + 2) for failover. |
IntelligentRouteEnabled | bool | Turn this on to enable AI Guardian + intelligent routing on the route. |
AccountId | string | Conditional: required when a Distributor manages multiple Accounts. |
Authentication on your webhook. Telegent supports Basic and Bearer on both the inbound URL and the callback URL. Use HTTPS endpoints. If you are running behind a CDN or load balancer, whitelist Telegent IPs separately —
IpWhitelist on the Voice Route only applies to trunk traffic.5. ICCID — When to Use It
ICCID is the unique serial of a SIM card or eSIM profile. Telegent treats ICCID as optional on both provision and port-in calls. Whether you should send one depends on the lifecycle moment.Two places ICCID shows up: ICCID is accepted on both
/numbers/provision (when you want to pair on create) and /numbers/portin (when you are porting a number onto an existing SIM). On a Subscription, ICCID also identifies the SIM tied to that billing relationship.Use ICCID when…
- Activating a physical SIM that the subscriber already has in hand — pair the ICCID at provision so the line is live the moment you respond to the API
- Issuing an eSIM and have the profile ICCID generated — pair it at provision so the QR / activation code maps to a real number on first scan
- Migrating a subscriber from another platform and need to preserve their SIM
Skip ICCID when…
- Reserving numbers in bulk before SIMs are mailed — provision without ICCID, then bind ICCID later via Numbers Update
- Provisioning data-only numbers that will be assigned by ProductType (no SIM in the loop)
- Running test / sandbox flows
6. Products and Packages
Products are the smallest billable unit in Telegent (an eSIM, a GB of data, an SMS bucket, a feature add-on). Packages bundle Products into something you actually sell to a subscriber. Then a Subscription ties one Package to one Subscriber.6.1 Products
Endpoint:POST /v1.0/products
Request
| Field | Type | Description |
|---|---|---|
SKU | string | Your internal stock-keeping code. Keep it stable; reports key off this. |
Type / SubType | string | Product family (esim, data, sms, feature, etc.). See docs.telegent.com for the current enum. |
Cost | number | Wholesale cost to you. Pricing to the subscriber lives on the Package. |
BillingFrequency | string | MRC (monthly), NRC (one-time), or usage-based. Drives invoicing cadence. |
6.2 Packages
Endpoint:POST /v1.0/packages
A Package has a name, a price the subscriber pays, and one or more Package Items — each Item references a ProductId.
Request
Adding items after the fact
If you need to add an item to an existing Package without rebuilding it:POST /v1.0/packages/items/add
7. Subscriptions
A Subscription is the billing relationship: one Subscriber, one Package, one number (TN), and — optionally — one ICCID. This is what kicks off recurring charges. Endpoint:POST /v1.0/subscriptions
Request
Parameters worth knowing
| Field | Type | Description |
|---|---|---|
SubscriberId | string | TSUID from Section 3. |
TNID | string | The number identifier issued by /numbers/provision or /numbers/portin. |
ICCID | string | Optional. Bind the SIM to this Subscription. |
PackageId | string | PKID from Section 6.2. |
Type | string | Voip, Mvno, Iot — must match the kind of number the Subscription is on. |
One Subscription per number, not per subscriber. A Subscriber with two lines has two Subscriptions. Keep them separate — it makes cancellation, plan changes, and refunds clean.
8. Provisioning or Porting
8.1 Provision a brand-new number
Step 1 — Check availability:POST /v1.0/numbers/availability
POST /v1.0/numbers/provision
NumberType rules to remember:
iot numbers are p2p only — never a2p. voip numbers are a2p only. For a2p messaging on a mobile-style line, use NumberType = "mvno".8.2 Port a number in — the full lifecycle
Port-ins are not one-shot. A request can be open for days while the losing carrier responds, and during that window you may need to correct details, push out the activation date, or pull the request entirely. Plan for all five steps below — eligibility, submit, update, cancel, and monitor — as a single workflow. Step 1 — Check eligibility before you collect anything from the subscriber:POST /v1.0/numbers/portin/eligibility
POST /v1.0/numbers/portin
OrderId (JNUOID-…). Save it — every later call in the lifecycle (update, cancel, status) keys off this OrderId.
Step 3 — Update an open port-in if details change:
If the losing carrier rejects the request because of a name mismatch, wrong account number, or a missing port-in date, fix the record without cancelling and resubmitting. PortInDate is required for wirelines (5–10 business day windows) and conditional otherwise.
POST /v1.0/numbers/portin/update
OrderId — never by phone number.
POST /v1.0/numbers/portin/cancel
Submitted, Pending Carrier Approval, Scheduled, Completed, Rejected, Cancelled).
8.3 Port a number out
When a subscriber leaves your MVNO for another carrier, the gaining carrier initiates the port-out on their side, but they’ll need a PIN from you (and the subscriber will need to authorize the release). Issue the PIN through:POST /v1.0/numbers/portout
Port-out is a courtesy, not an obstacle. FCC rules require carriers to release numbers on subscriber request. Issue the PIN promptly. Don’t suspend service before the port-out completes — that breaks the gaining carrier’s validation and creates a support escalation.
9. Data Usage Limits and Thresholds
Telegent gives you three knobs per number: a Notify threshold (lets the subscriber know they’re getting close), a Throttle threshold (slows them down past a point), and a Limit (hard cap). Set all three in one call. Endpoint:POST /v1.0/numbers/data-usage
Request
Parameters worth knowing
| Field | Type | Description |
|---|---|---|
ValueUnit | enum | MB. Applies to all three thresholds. |
NotifyValue | number | Subscriber is notified when usage hits this value. |
ThrottleValue | number | Speed is throttled to ThrottleSpeed once usage hits this value. |
ThrottleSpeed | enum | 64-kbps | 128-kbps | 256-kbps | 512-kbps | 1-mbps | 5-mbps | 20-mbps | 50-mbps | 100-mbps |
LimitValue | number | Hard cap. Data is cut off (or charged overage, depending on plan) past this. |
PhoneNumbers | array | One or many numbers. The same thresholds apply to every number in the array. |
Use
POST /v1.0/numbers/data-usage/settings to read the configured thresholds for a number, and POST /v1.0/numbers/data-usage/info to read the current usage against those thresholds.10. AI Guardian — Allow / Block + Filter Levels
AI Guardian is per-subscriber. Two surfaces: voice (Call Filter) and SMS (Message Filter). For both, MVNOs should ship the allow-list and block-list controls. SMS additionally supports age-based Filter Levels (CHILD, ADOLESCENT, TEENAGER). Voice Filter Levels are a future release for SIP.
10.1 Turn the feature on
Endpoint:POST /v1.0/subscribers/guardian-features
Request
GET /v1.0/subscribers/guardian-features?SubscriberId=TSUID-… returns the current flags so your UI can render checkbox state.10.2 Voice — Allow / Block only
Endpoint:POST /v1.0/subscribers/call-filter
Request
POST /v1.0/subscribers/call-filter/allowed-numbers/add
POST /v1.0/subscribers/call-filter/blocked-numbers/add
10.3 SMS — Allow / Block + Filter Levels
Endpoint:POST /v1.0/subscribers/message-filter
For SMS, in addition to allow/block, MVNOs can apply a Filter Level: CHILD, ADOLESCENT, or TEENAGER. These set a graded sensitivity baseline that Telegent applies on top of your custom allow/block lists.
Request
POST /v1.0/subscribers/message-filter/allowed-contacts/add
POST /v1.0/subscribers/message-filter/blocked-contacts/add
SMS Filter Levels
| Level | Description |
|---|---|
CHILD | Most restrictive. Strong blocking on adult content, links, and unknown senders. |
ADOLESCENT | Moderate. Blocks the worst categories but allows most everyday messaging. |
TEENAGER | Lightest of the three. Filters extreme content; otherwise hands-off. |
This document is a living guide. When in doubt, the OpenAPI spec at docs.telegent.com is the source of truth. The Postman collection “Telegent Core APIs.json” is a great companion — every endpoint above is in there.