List Supported Providers
Discover available telephony providers and the credential fields each one requires
Discover available telephony providers and the credential fields each one requires
Use this endpoint to discover which telephony providers Paladin supports and the exact credential fields each one expects. The response drives the configuration form in the dashboard, and is the recommended way to build a provider-agnostic integration.
Quick reference#
Discover available telephony providers and the credential fields each one requires. Send the request to GET /api/v1/organizations/telephony-providers/metadata on the Paladin API base URL.
| Method | GET |
|---|---|
| Path | /api/v1/organizations/telephony-providers/metadata |
| Path parameters | None in the path. |
| Authentication | Use the authentication method shown in the OpenAPI block and the Authentication docs. Keep API keys server-side. |
Before you call#
- Confirm you are using the production base URL shown in the API reference.
- Make sure any path IDs belong to the same Paladin organization as the credential you are using.
- Validate request bodies and required fields before sending production traffic.
Common error checks#
- Use 401 or 403 responses to check credentials, organization scope, and permissions.
- Use 404 responses to check whether the referenced resource exists in the current organization.
- Use 422 responses to inspect missing or invalid request fields.
OpenAPI#
GET /api/v1/organizations/telephony-providers/metadata
openapi: 3.1.0
info:
title: Paladin API
description: API for the Paladin app
version: 1.0.0
servers:
- url: https://app.paladin.northmanngrp.com
description: Production
security: []
paths:
/api/v1/organizations/telephony-providers/metadata:
get:
tags:
- main
- organizations
summary: Get Telephony Providers Metadata
description: |-
Return the list of available telephony providers and their form schemas.
The UI uses this to render the configuration form generically instead of
hard-coding fields per provider. Adding a new provider only requires
declaring its ui_metadata in providers/<name>/__init__.py.
operationId: >-
get_telephony_providers_metadata_api_v1_organizations_telephony_providers_metadata_get
parameters:
- name: authorization
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Authorization
- name: X-API-Key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/TelephonyProvidersMetadataResponse'
'404':
description: Not found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
TelephonyProvidersMetadataResponse:
properties:
providers:
items:
$ref: '#/components/schemas/TelephonyProviderMetadata'
type: array
title: Providers
type: object
required:
- providers
title: TelephonyProvidersMetadataResponse
description: List of UI form definitions used by the telephony-config screen.
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
TelephonyProviderMetadata:
properties:
provider:
type: string
title: Provider
display_name:
type: string
title: Display Name
fields:
items:
$ref: '#/components/schemas/TelephonyProviderUIField'
type: array
title: Fields
docs_url:
anyOf:
- type: string
- type: 'null'
title: Docs Url
type: object
required:
- provider
- display_name
- fields
title: TelephonyProviderMetadata
description: UI form metadata for a single telephony provider.
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
TelephonyProviderUIField:
properties:
name:
type: string
title: Name
label:
type: string
title: Label
type:
type: string
title: Type
required:
type: boolean
title: Required
sensitive:
type: boolean
title: Sensitive
description:
anyOf:
- type: string
- type: 'null'
title: Description
placeholder:
anyOf:
- type: string
- type: 'null'
title: Placeholder
type: object
required:
- name
- label
- type
- required
- sensitive
title: TelephonyProviderUIField
description: One form field on a telephony provider's configuration UI.