0800 310 1010
← Developer docs
Developer documentation

NumberGroup API

A small, stable Web Services API for allocating DDIs, updating translations, reserving numbers and pulling call records. JSON or XML, HTTPS, one query string per call. Built for the people who'd rather hit an endpoint than open a portal.

What you can do with it

  • Temporary or permanent DDI allocation for sales pages, auctions and listings.
  • Automated number diversions for out-of-hours support rotas.
  • Number search and reservation for distribution partners or referral sites.
  • Programmatic access to Call Detail Records for third-party billing, reporting or attribution.
  • Dynamic number insertion (DNI) for paid-search campaigns — see the call-tracking recipe.

Base URL and transport

Every call is an HTTPS GET to api.numbergroup.com with query-string parameters. Responses come back in the body of the HTTP response in either JSON or XML — pick with &format=json or &format=xml. JSON is the default for everything except the CDR feed, which is JSON only for efficiency reasons.

https://api.numbergroup.com/<method>?api_key=...&format=json&...

The server presents NumberGroup's wildcard TLS certificate. Your client should validate it like any other HTTPS endpoint.

Authentication

Every call carries an api_key query parameter. There's no MD5 challenge, no OAuth dance, no bearer token — just the key. The key identifies both the caller and the account that owns any resources the call touches.

The first time a new source IP issues a call against a given key, the API accepts it and adds the host to the record of known callers, then emails the account contact so you can spot it. If you receive a new-host alert you don't recognise, mail help@numbergroup.com and we'll rotate the key.

Status, success and failure

Every response carries a status object (JSON) or <status> element (XML) with a type of success or fail. On failure, a reason string tells you what went wrong. Always check status.type before reading the rest of the body.

// success
{"translation":{"ddi":"08000588026", ...},"status":{"type":"success","reason":""}}

// failure
{"status":{"type":"fail","reason":"Invalid API key specified"}}

Transaction limits

  • Default limit is 1,000 transactions per day per API key. Tell us if you need more.
  • CDR Feed calls don't count against the daily limit.
  • Suspicious activity from an IP can result in that IP being blocked. The failure reason will say so.

Methods

Translation Request →
Allocate a DDI to your account and point it at a destination (PSTN, SIP, trunk or media stream). Optional TTL for temporary allocations.
Translation Update →
Change the destination of an existing DDI, add hunting, missed-call alerts or voicemail, extend the TTL, or release the number.
Reservations →
Search for available DDIs (optionally from a cherished band), reserve one for 24 hours, then allocate it through Translation Request.
CDR Feed →
Pull completed call detail records in batches of up to 1,000. JSON only. Use it for third-party billing, reporting or attribution.

Recipes

An evolving API

This API is an evolving feature of the NumberGroup network. Suggestions for additional methods or parameters are welcome — drop a line to help@numbergroup.com with what you're trying to build and we'll see what we can do.

Need an API key?

We don't have a self-serve signup for API keys — drop us a line and we'll set you up. Tell us roughly what you're building so we can recommend the right transaction limit.

Request an API key →help@numbergroup.com