Graine AI
API referencePhone numbers

List configured telephony providers

List the telephony providers configured for your organisation.

List the telephony providers configured for your organisation.

A provider appears here only when credentials for it resolve successfully, so this is the honest answer to "can my organisation place calls right now", not a catalogue of what the platform supports. An empty list means no carrier is currently usable for you.

Entries are distinct. Carriers are published under a single public name, so a configured organisation sees exactly one entry however many routes sit behind it — the routing itself is ours to manage and is not something to branch on.

Only your organisation's providers are listed.

An organisation that has no numbers or carrier set up yet answers 404 rather than an empty list.

Rate limit: 2000 requests per minute per organization, counted together with every endpoint that has no stricter limit of its own. Exceeding it returns 429 with Retry-After; the X-RateLimit-* response headers report your remaining allowance on every call.

GET
/v2/providers
/v2/providers

The Authorization access token

Authorization

Authorization
Required
Bearer <token>

Your Graine API key. Create one in the dashboard under Developers, or via POST /v2/api-keys. Send it as Authorization: Bearer <key>.

In: header

Query Parameters

organization_idOrganization Id

Must match the organisation the API key belongs to.

Response Body

200

The provider names this organisation has working credentials for.

dataData

Distinct provider names with usable credentials on this organisation. A configured organisation sees a single entry: how calls are routed behind it is ours to manage and is not something to branch on. Empty means no carrier is currently usable for you.

countCount

How many entries are in data. Zero means calls cannot be placed.

Default: 0

400

1000 — malformed or contradictory input (bad transfer target, bad timeout).

error
Required
Error

Stable integer code from the /v2 error table.

message
Required
Message

Human-readable single sentence.

401

1100 — missing, unknown or inactive API key. 1101 — a browser session token was presented.

error
Required
Error

Stable integer code from the /v2 error table.

message
Required
Message

Human-readable single sentence.

402

1400 — the organisation has insufficient credits for this request.

error
Required
Error

Stable integer code from the /v2 error table.

message
Required
Message

Human-readable single sentence.

403

1102 — the key is valid but lacks the scope this endpoint requires, or names another organisation. GET /v2/scopes reports which scopes the key holds.

error
Required
Error

Stable integer code from the /v2 error table.

message
Required
Message

Human-readable single sentence.

404

1200 — no numbers or carrier have been set up for this organisation yet.

error
Required
Error

Stable integer code from the /v2 error table.

message
Required
Message

Human-readable single sentence.

422

1001 — the body or query failed validation; the message names the first offending field.

error
Required
integer

Stable integer code from the error table. Branch on this, not on the message.

message
Required
string

One human-readable sentence. Wording may change; the code will not.

429

1300 — per-organisation rate limit exceeded. Carries Retry-After.

error
Required
Error

Stable integer code from the /v2 error table.

message
Required
Message

Human-readable single sentence.

503

1501 — a service this endpoint depends on is unreachable or returned a 5xx.

error
Required
Error

Stable integer code from the /v2 error table.

message
Required
Message

Human-readable single sentence.

504

1502 — a service this endpoint depends on did not respond in time.

error
Required
Error

Stable integer code from the /v2 error table.

message
Required
Message

Human-readable single sentence.

curl -X GET "https://api.graine.ai/v2/providers?organization_id=string" \
  -H "Authorization: Bearer <token>"

The provider names this organisation has working credentials for.

{
  "data": [
    "custom"
  ],
  "count": 1
}