Skip to content
SIP.IO
DocsStart free

Resource Reference

These are the configuration resources: the objects you create and edit to configure SIP.IO, defined by the data model. This page is the field-level reference.

Most of these resources now have a full /v1 CRUD surface (GET/POST/PATCH/DELETE, scoped auth, idempotency, pagination where relevant); the real endpoint is noted at the end of each section. A few narrower resources (SIP domains, call forwards, trunks, outbound routes, number transforms, policies) are still schema-only, config-managed rather than /v1-exposed, flagged individually below.

Conventions: booleans are 0/1; time is epoch seconds; secrets are the key-value store references (*_secret_ref); every tenant row carries account_id.

The tenant. Hierarchical for reseller/white-label.

FieldType / values
parent_idReseller parent (null = platform-direct).
statusactive · suspended · closed.
is_reseller0 / 1.
timezoneIANA (default UTC).
brand_name, brand_domainWhite-label branding.
max_in, max_out, max_dialerCAC ceilings.
default_cid_numberDefault outbound caller-ID.
languageDefault prompt language (default en-US).
voice_gendermale / female.
tone_countryISO alpha-2; the call-progress ringback a caller hears (default US).
recording_retention_daysCall-recording retention: null = 30-day default, 0 = forever, N = N days.
allow_free_caller_id0 / 1. 0 (default) restricts a developer-set click-to-call agent caller-ID to account-owned numbers; 1 allows any free-form number.
did_default_dest_kind, did_default_dest_idWhere unrouted DIDs land.

Self-service subset (name, timezone, language, voice_gender, tone_country, recording_retention_days, allow_free_caller_id) is editable via PATCH /v1/account; see Public API. Everything else (status, parent, billing, the wholesale carrier) is admin-only.

A realm the account answers on. Fields: domain (unique), is_primary.

Not yet on /v1; managed via admin provisioning today. See SIP domains & realms.

The logical identity / agent.

FieldType / values
usernameExtension / SIP user part (unique per account).
display_name
is_agent0 / 1.
out_cid_number, out_cid_nameOutbound presentation.
max_simultaneousPer-user concurrency ceiling.
ring_timeout_secDefault 25.
voicemail_idDefault mailbox.
statusactive / disabled.

GET|POST /v1/users (list / create) · GET|POST|PATCH|DELETE /v1/users/{id} (one user, plus its devices) · GET /v1/users/{id}/devices (scope users). See Public API.

A registering endpoint + credential. See Authentication.

FieldType / values
user_idOwning user.
auth_username, realmDigest identity.
ha1, ha1bDigest hashes (never plaintext).
transportudp · tcp · tls · wss.
is_webrtc0 / 1.
statusactive / disabled.

GET|POST /v1/devices (list ?user_id= / create, password → ha1, cleartext never stored) · PATCH|DELETE /v1/devices/{id} (scope users). See Public API.

Inbound number. See Numbers & Extensions.

FieldType / values
e164Normalized, no + (unique).
statusactive · disabled · virtual.
dest_kindflow·user·extension·ring_group·queue·voicemail·conference·forward·hangup.
dest_id, dest_xformRoute target id + JSON transform.
max_channelsPer-DID concurrency cap.
fax_modevoice · t38 · passthrough.
allow_anonymous0 / 1.
schedule_id, closed_dest_*, holiday_dest_*Business hours.

GET|POST /v1/numbers (list + route targets / create) · GET|POST|PATCH|DELETE /v1/numbers/{id} (one DID: update route target, fax mode, business hours, or delete) (scope numbers). See Public API.

Internal short code. Fields mirror did’s route target + schedule. dest_kind adds feature; digits unique per account.

GET|POST /v1/extensions (list / create) · GET|POST|PATCH|DELETE /v1/extensions/{id} (scope extensions). See Public API.

The versioned node-graph. See Call Flows.

FieldType / values
name
versionBumped on publish.
is_published0 / 1 (router loads published only).
graphJSON { nodes, edges }.

GET|POST /v1/flows (list / create-or-update; publish: true is lint-gated, a failing lint returns 422 instead of publishing) · GET /v1/flows/{id} (the flow, its graph, and a fresh lint result) (scope flows). See Public API.

See Ring Groups.

  • ring_group: strategy (ring_all·sequential·round_robin), ring_timeout_sec, moh_media_id, exit_dest_*, schedule_id + overrides.
  • ring_group_member: user_id or device_id, position, delay_sec, timeout_sec.

GET|POST /v1/ring-groups (list / create, members replace as a set on each write) · GET|POST|PATCH|DELETE /v1/ring-groups/{id} (scope ringgroups). See Public API.

See Queues & ACD.

FieldType / values
strategyring_all·longest_idle·round_robin·top_down·fewest_calls·random·sequential.
agent_ring_timeout_secDefault 20.
max_wait_secCaller max hold.
wrap_up_secDefault 0.
max_no_answerAuto-pause threshold (0 = off).
announce_position, announce_first_sec, announce_interval_secAnnouncements.
moh_modestream / file.
languageAnnouncement language override.
timeout_dest_*, abandon_dest_*, no_agents_dest_*In-queue exits.
max_queued, queue_full_dest_*Queue-full deflect at capacity.
ewt_threshold_sec, ewt_aht_sec, ewt_dest_*Estimated-wait deflect at join.
schedule_id, closed_dest_*, holiday_dest_*Business hours.

agent_queue_assignment (formerly queue_agent): user_id, tier_level, position, delay_sec, mode (static·dynamic·mandatory·supervisor_managed).

in_queue_option (DTMF on hold; see In-Queue Options): queue_id, digit (09·*·#), action (route·webhook·deflect·hangup), dest_kind/dest_id, webhook_url, webhook_secret_ref, stay_in_queue, prompt_media_id, label.

GET|POST /v1/queues (list + rolling KPIs ?since= / create) · GET|POST|PATCH|DELETE /v1/queues/{id} (one queue, members, options) · GET|POST /v1/queues/{id}/members (membership) (scope queues). See Public API.

  • voicemail: greeting_media_id, skip_instructions, quota_mb, notify_email, pin_secret_ref.
  • conference: pin_secret_ref, admin_pin_secret_ref, max_members, moh_media_id, record.
  • forward: number, trigger (always·busy·no_answer·unreachable), timeout_sec, cid_mode (passthrough·did·custom), cid_number, confirm (press-1 screening), overflow_dest_kind/overflow_dest_id. See Call Forwarding.

voicemail: GET|POST /v1/voicemails (list / create-or-update, PIN → SECRETS) · GET|POST|PATCH|DELETE /v1/voicemails/{id} · GET /v1/voicemails/mwi (message-waiting summary) · GET /v1/voicemails/{id}/messages (the box’s messages, newest first) (scope voicemail). conference: GET|POST /v1/conferences (list / create-or-update) · GET|POST|DELETE /v1/conferences/{id} (scope conferences). forward: not yet on /v1, config-managed today. See Public API.

See Business Hours.

  • time_schedule: name, timezone (null = inherit account).
  • time_schedule_rule: kind (weekly·date·date_range), dow (0–6), start_time/end_time (HH:MM), start_date/end_date (YYYY-MM-DD), is_closed.

GET|POST /v1/schedules (list / create-or-update, rules replace as a set on each write) · GET|POST|PATCH|DELETE /v1/schedules/{id} (scope schedules). See Public API.

Trunks & outbound: sip_trunk / sip_trunk_acl / outbound_route / number_transform

Section titled “Trunks & outbound: sip_trunk / sip_trunk_acl / outbound_route / number_transform”

See Trunks, Outbound & PSTN.

  • sip_trunk (formerly customer_trunk): name, provider (generic·carrier), role (carrier·pbx), direction (inbound·outbound·both), proxy, transport (udp·tcp·tls), do_register, auth_username, auth_secret_ref, realm, from_domain, from_user, expire_sec, inbound_auth (ip·register·digest), inbound_username, inbound_secret_ref, reg_node, max_channels, cid_number, ping_sec, status.
  • sip_trunk_acl: trunk_id, cidr (allow-listed source IPs for inbound_auth='ip').
  • outbound_route: match_prefix, match_country, via (carrier·trunk), trunk_id, priority.
  • number_transform: scope_kind (account·trunk·did·route), direction (inbound_dst·inbound_cid·outbound_dst·outbound_cid), match_regex, replacement, ordering, stop_on_match.

Not yet on /v1; config-managed today. See Trunks, Outbound & PSTN.

Shared (scope_kind, scope_id) shape. See Concurrency & Outbound.

  • call_limit: scope_kind (account·user·did·number), direction (in·out·dialer·any), period_sec, max_count, hard.
  • caller_id_rule: scope_kind, match_country, cid_number, cid_name, priority.
  • acl_rule: rule_type (ip_allow·ip_deny·geo_allow·geo_deny), value (CIDR or ISO-2).
  • recording_rule: direction, mode (off·on·on_demand), stereo.
  • phone_list / phone_list_entry: kind (dnc_out·dnc_in·dnr·allow) + E.164 entries.
  • geo_policy / geo_policy_country: mode (allowlist·denylist) + countries.

Not yet on /v1; config-managed today.

See Media & TTS.

  • media_file: kind (prompt·moh·greeting·announcement), object_key, format, duration_ms.
  • media_playlist / media_playlist_item: ordered media sets.

GET|POST /v1/media (list ?kind= / upload — raw audio body + ?name=&kind=&format=) · GET|DELETE /v1/media/{id} (plus /play, /download streamed from storage) (scope media). See Public API.

A recording’s transcribed text and AI summary. See Call Transcription & AI Summarization.

  • transcript: one row per recording (unique on recording_id); text, language, summary, summary_data (sentiment, key_points, action_items, disposition, topics), cost_micro. Word/channel/speaker-level detail is stored separately and fetched on request.

POST /v1/recordings/{id}/transcribe, /summarize · GET /v1/recordings/{id}/transcript · GET /v1/transcripts · POST /v1/transcripts/batch · GET|PUT|DELETE /v1/transcription/config (bring your own provider) (scope recordings). See Public API.

Groups agents for reporting rollups. See Agent KPIs.

  • agent_team: name; members are sip_user rows tagged with a team_id.

GET|POST /v1/agent-teams, /{id} (scope reports). See Public API.