Session Resource
A session represents the complete lifecycle of a voice interaction initiated through the Voice API. A session can contain one or more related call legs (for example, an original outbound call plus additional dials or transfers triggered by SVAML commands). Use the `calls` array to inspect all call legs associated with the session and `state` to determine whether the session is still ongoing or has reached a final state.
Properties
| Name | Type | Description |
|---|---|---|
| sessionId | object | |
| projectId | object | |
| serviceId | object | |
| calls | array | |
| createTime | string | Timestamp (RFC 3339) indicating when the session was created. |
| updateTime | string | Timestamp (RFC 3339) indicating when the session was last updated. Omitted if no updates were performed on this session. |
| endTime | string | Timestamp (RFC 3339) indicating when the session ended. Omitted for ongoing sessions. |
| state | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/sinch/main/json-schema/sinch-session-schema.json",
"title": "Session Resource",
"description": "A session represents the complete lifecycle of a voice interaction initiated through the Voice API.\n\nA session can contain one or more related call legs (for example, an original outbound call plus additional dials or transfers triggered by SVAML commands). \nUse the `calls` array to inspect all call legs associated with the session and `state` to determine whether the session is still ongoing or has reached a final state.",
"x-generated": "2026-10-08",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/sinch-voice-api-v2-openapi.yml#/components/schemas/session",
"x-category": "session",
"x-usage": "session",
"type": "object",
"additionalProperties": false,
"required": [
"sessionId",
"projectId",
"serviceId",
"calls",
"createTime",
"state"
],
"properties": {
"sessionId": {
"$ref": "#/$defs/sessionId"
},
"projectId": {
"$ref": "#/$defs/projectId"
},
"serviceId": {
"$ref": "#/$defs/serviceId"
},
"calls": {
"type": "array",
"items": {
"$ref": "#/$defs/call"
}
},
"createTime": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Timestamp (RFC 3339) indicating when the session was created."
},
"updateTime": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Timestamp (RFC 3339) indicating when the session was last updated.\n\nOmitted if no updates were performed on this session."
},
"endTime": {
"type": "string",
"format": "date-time",
"readOnly": true,
"description": "Timestamp (RFC 3339) indicating when the session ended.\n\nOmitted for ongoing sessions."
},
"state": {
"$ref": "#/$defs/sessionStates"
}
},
"$defs": {
"batchId": {
"title": "Batch ID",
"type": "string",
"format": "ulid",
"description": "The ID of the batch."
},
"call": {
"type": "object",
"additionalProperties": false,
"title": "Call Resource",
"description": "Call details",
"required": [
"callId",
"projectId",
"serviceId",
"sessionId",
"direction",
"originationType",
"callType",
"callResult",
"startTime",
"callRate",
"callResourceUrl"
],
"properties": {
"callId": {
"$ref": "#/$defs/callId"
},
"projectId": {
"$ref": "#/$defs/projectId"
},
"serviceId": {
"$ref": "#/$defs/serviceId"
},
"sessionId": {
"$ref": "#/$defs/sessionId"
},
"callName": {
"type": "string",
"minLength": 1,
"maxLength": 32,
"pattern": "^\\S+$",
"description": "The name identifying this call leg within the session, as assigned by the `callName` property in the `dial` command or in the SVAML response to an incoming call webhook.\n\nOmitted for calls that were not assigned a name."
},
"bridgeName": {
"type": "string",
"description": "The name of the bridge the call belongs to. Omitted for calls not assigned to any bridge."
},
"batchId": {
"$ref": "#/$defs/batchId"
},
"from": {
"$ref": "#/$defs/from"
},
"to": {
"$ref": "#/$defs/to"
},
"startTime": {
"type": "string",
"format": "date-time",
"description": "Timestamp (RFC 3339) indicating when the call was created and call setup was initiated (start of the call attempt)."
},
"updateTime": {
"type": "string",
"format": "date-time",
"description": "Timestamp (RFC 3339) indicating when the call was last updated.\n\nOmitted if no updates were performed on this call."
},
"callType": {
"$ref": "#/$defs/callType"
},
"direction": {
"$ref": "#/$defs/callDirection"
},
"answerTime": {
"type": "string",
"format": "date-time",
"description": "Timestamp (RFC 3339) indicating when the call was answered.\n\nOmitted if the call was not answered."
},
"endTime": {
"type": "string",
"format": "date-time",
"description": "Timestamp (RFC 3339) indicating when the call ended.\n\nOmitted for ongoing calls."
},
"callDurationSeconds": {
"type": "integer",
"description": "Duration of the call in seconds"
},
"callResult": {
"$ref": "#/$defs/callResult"
},
"callReason": {
"$ref": "#/$defs/callReason"
},
"originationType": {
"$ref": "#/$defs/originationType"
},
"callRate": {
"$ref": "#/$defs/money",
"description": "The rate charged for this call, expressed as a monetary amount **per minute** in the specified currency."
},
"callResourceUrl": {
"type": "string",
"format": "uri",
"description": "Absolute URI to this call resource. Use this URL to retrieve the call details"
}
}
},
"callDirection": {
"title": "Call Direction",
"type": "string",
"description": "Indicates the direction of the call.",
"enum": [
"INBOUND",
"OUTBOUND"
],
"x-enumDescriptions": {
"INBOUND": "A call initiated towards the Sinch Calling Platform.",
"OUTBOUND": "A call initiated from the Sinch Calling Platform."
}
},
"callHeaders": {
"type": "array",
"description": "Custom headers to be sent in the call setup.",
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"pattern": "[\\x20-\\x7e\\t]+$",
"description": "Name of the header."
},
"value": {
"type": "string",
"maxLength": 255,
"pattern": "[\\x20-\\x7e\\t]*$",
"description": "Value of the header."
}
}
}
},
"callId": {
"title": "Call ID",
"type": "string",
"format": "ulid",
"description": "The `Id`` of the call."
},
"callReason": {
"title": "Call Reason",
"description": "Reason explaining **why** the call ended in the given `callResult`.\n\n`callResult` describes **what** happened (state/outcome). `callReason` provides additional context about the\nunderlying cause (for example, who terminated the call, routing issues, or validation errors).",
"type": "string",
"enum": [
"OK",
"NOT_AVAILABLE",
"CALLER_HANGUP",
"CALLEE_HANGUP",
"MANAGER_HANGUP",
"DID_NOT_FOUND",
"INVALID_SCRIPT",
"UNKNOWN_PRODUCT",
"NO_MORE_ROUTES",
"ERROR"
],
"x-enumDescriptions": {
"OK": "The call was completed successfully.",
"NOT_AVAILABLE": "The callee was not available.",
"CALLER_HANGUP": "The caller hung up the call.",
"CALLEE_HANGUP": "The callee hung up the call.",
"MANAGER_HANGUP": "The call was ended by the call manager.",
"DID_NOT_FOUND": "The DID number was not found.",
"INVALID_SCRIPT": "The SVAML script was invalid.",
"UNKNOWN_PRODUCT": "The product associated with the call is unknown.",
"NO_MORE_ROUTES": "There are no more routes to complete the call.",
"ERROR": "An error occurred during the call."
}
},
"callResult": {
"title": "Call Result",
"description": "The outcome/state of the call.\n\nThis field includes both **transitional** states (during call setup and execution) and **final** states (when the call has ended).",
"type": "string",
"enum": [
"QUEUED",
"INITIATED",
"IN_PROGRESS",
"COMPLETED",
"REJECTED",
"NO_ANSWER",
"CANCEL",
"BUSY",
"FAILED"
],
"x-enumDescriptions": {
"QUEUED": "The call is queued for initiation. This is a transitional state.",
"INITIATED": "The call is connecting but the recipient has not yet answered. This is a transitional state.",
"IN_PROGRESS": "The call has been answered and is in progress. This is a transitional state.",
"COMPLETED": "The call was answered and is ended. This is a final state.",
"REJECTED": "The call was rejected by the recipient.",
"NO_ANSWER": "The call was not answered by the recipient.",
"CANCEL": "The call was cancelled.",
"BUSY": "The call was not answered because the recipient was busy.",
"FAILED": "The call could not be completed."
}
},
"callType": {
"title": "Call Type",
"x-category": "call",
"x-usage": "call",
"type": "string",
"description": "The type of channel used for the call.\n\nThis value indicates what kind of endpoint the call is connected to (PSTN phone number or WebSocket stream).",
"enum": [
"PHONE",
"SIP",
"STREAM",
"VOICE_RELAY"
],
"x-enumDescriptions": {
"PHONE": "A call from or to the telephone network.",
"SIP": "A call from or to a SIP endpoint.",
"STREAM": "A call to a stream.",
"VOICE_RELAY": "A call to voice relay service."
}
},
"from": {
"description": "Call origin - Phone Number or SIP endpoint",
"oneOf": [
{
"$ref": "#/$defs/phone"
},
{
"$ref": "#/$defs/sipFrom"
}
]
},
"money": {
"title": "Money",
"description": "A monetary amount with an associated currency code.",
"type": "object",
"additionalProperties": false,
"required": [
"currencyCode",
"amount"
],
"properties": {
"currencyCode": {
"type": "string",
"description": "The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)."
},
"amount": {
"type": "string",
"pattern": "^\\d+(\\.\\d{1,4})?$",
"description": "The monetary amount as a string to preserve precision. Supports up to 4 decimal places (e.g., \"10.5000\", \"0.9999\")."
}
}
},
"originationType": {
"title": "Origination Type",
"x-category": "call",
"x-usage": "call",
"type": "string",
"description": "Indicates the origin/source of the call.\n\nThis describes **how the call was initiated** (PSTN or via the API).",
"enum": [
"PHONE",
"SIP",
"SERVER"
],
"x-enumDescriptions": {
"PHONE": "The call originated from the telephone network (PSTN).",
"SIP": "The call originated from a SIP trunk.",
"SERVER": "The call originated through the Sinch API."
}
},
"phone": {
"type": "object",
"additionalProperties": false,
"title": "Phone",
"description": "Routes the call to a phone number on the Public Switched Telephone Network (PSTN).",
"required": [
"type",
"phone"
],
"properties": {
"type": {
"type": "string",
"const": "PHONE",
"description": "Routes the call to a phone number on the Public Switched Telephone Network (PSTN). The number must be in E.164 format."
},
"phone": {
"type": "object",
"additionalProperties": false,
"required": [
"number"
],
"properties": {
"number": {
"$ref": "#/$defs/phoneNumber"
}
}
}
}
},
"phoneNumber": {
"title": "Phone Number",
"type": "string",
"pattern": "^\\+[1-9]\\d{1,14}$",
"minLength": 3,
"maxLength": 16,
"description": "E.164 Phone number"
},
"projectId": {
"title": "Project ID",
"type": "string",
"format": "uuid",
"description": "The `Id` of the project associated with the call."
},
"serviceId": {
"title": "Service ID",
"type": "string",
"format": "uuid",
"description": "The ID of the service used."
},
"sessionId": {
"title": "Session ID",
"type": "string",
"format": "ulid",
"description": "The ID of the session."
},
"sessionStates": {
"title": "Session States",
"description": "The state of the current session. Sessions can either be in a \"transitional\" or \"final\" state. Sessions in a transitional state are ongoing. Sessions in a final state have will not send any more events.",
"readOnly": true,
"type": "string",
"enum": [
"QUEUED",
"IN_PROGRESS",
"COMPLETED",
"EXPIRED"
],
"x-enumDescriptions": {
"QUEUED": "The session is queued, no calls have been initiated for this session. This is a transitional state.",
"IN_PROGRESS": "At least one call has been initiated or received for this session. This is a transitional state.",
"COMPLETED": "The session was completed. This is a final state.",
"EXPIRED": "The call session was not initiated before the batch time-to-live (TTL) elapsed. This is a final state."
}
},
"sip": {
"type": "object",
"additionalProperties": false,
"title": "SIP Endpoint",
"required": [
"type",
"sip"
],
"properties": {
"type": {
"type": "string",
"const": "SIP",
"description": "Routes the call to a SIP (Session Initiation Protocol) endpoint."
},
"sip": {
"type": "object",
"additionalProperties": false,
"required": [
"endpoint"
],
"properties": {
"endpoint": {
"type": "string",
"description": "SIP URI of the destination endpoint. Both `sip:` (unencrypted) and `sips:` (TLS-encrypted) schemes are supported.",
"format": "uri",
"maxLength": 256,
"pattern": "^sips?:"
},
"transport": {
"type": "string",
"description": "Transport protocol to use for the SIP signalling channel.\n\nIf omitted, the platform selects a default based on the URI scheme: `UDP` for `sip:` and `TLS` for `sips:`. Setting this explicitly overrides that default — for example, to force `TCP` for a `sip:` URI or to use `TLS` without switching to the `sips:` scheme.",
"enum": [
"UDP",
"TCP",
"TLS"
],
"x-enumDescriptions": {
"UDP": "Connectionless transport. Lowest overhead; suitable for most standard SIP deployments.",
"TCP": "Connection-oriented transport. More reliable for large SIP messages or NAT traversal scenarios.",
"TLS": "Encrypted transport. Provides confidentiality and integrity for SIP signalling."
}
},
"callHeaders": {
"$ref": "#/$defs/sipCallHeaders"
}
}
}
}
},
"sipCallHeaders": {
"type": "array",
"description": "Custom SIP headers to be sent in the call setup.",
"maxItems": 16,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"key"
],
"properties": {
"key": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"pattern": "^[-A-Za-z0-9.!%*_+`'~]+$",
"description": "Name of the SIP header."
},
"value": {
"type": "string",
"maxLength": 255,
"description": "Value of the SIP header."
}
}
}
},
"sipFrom": {
"type": "object",
"additionalProperties": false,
"title": "SIP Origin",
"required": [
"type",
"sip"
],
"properties": {
"type": {
"type": "string",
"const": "SIP",
"description": "Indicates the call originated from a SIP (Session Initiation Protocol) endpoint."
},
"sip": {
"type": "object",
"additionalProperties": false,
"required": [
"endpoint"
],
"properties": {
"endpoint": {
"type": "string",
"description": "SIP URI of the originating endpoint. Both `sip:` (unencrypted) and `sips:` (TLS-encrypted) schemes are supported.",
"format": "uri",
"pattern": "^sips?:",
"maxLength": 192
},
"displayName": {
"type": "string",
"description": "Display name presented to the called party as the caller identity. Transmitted as the display name part of the SIP `From` header (for example, `Alice <sip:alice@example.com>`).",
"maxLength": 64
}
}
}
}
},
"stream": {
"type": "object",
"additionalProperties": false,
"title": "Stream",
"description": "Routes the call to a WebSocket stream endpoint for real-time audio processing.",
"required": [
"type",
"stream"
],
"properties": {
"type": {
"type": "string",
"const": "STREAM",
"description": "Routes the call to a WebSocket stream endpoint for real-time audio processing."
},
"stream": {
"type": "object",
"additionalProperties": false,
"required": [
"endpoint"
],
"properties": {
"endpoint": {
"type": "string",
"description": "WebSocket endpoint that will accept the incoming connection for real-time audio streaming. Must be a valid WebSocket URL using either `ws://` or `wss://` (recommended). The URL must be reachable from the public internet and capable of handling the negotiated stream protocol."
},
"streamOptions": {
"type": "object",
"additionalProperties": false,
"properties": {
"version": {
"type": "integer",
"description": "Defines the version of the stream protocol.",
"default": 1
},
"codec": {
"type": "string",
"const": "PCM",
"description": "Defines the audio codec/format used for the stream audio payload.\n\nCurrently, only `PCM` is supported (uncompressed raw audio). Use `sampleRate` to configure the sampling rate for the stream."
},
"sampleRate": {
"type": "integer",
"description": "Defines the audio sampling rate (Hz) used for the stream.\n\nFor calls that traverse the PSTN, audio is typically sampled at 8 kHz, so using a higher value will not improve perceived quality. \nHigher sample rates can be useful for non-PSTN scenarios (for example, SIP/streaming paths), but will increase bandwidth usage and processing load.",
"enum": [
8000,
16000,
24000,
44100,
48000,
96000
],
"x-enumDescriptions": {
"8000": "8 kHz (standard for PSTN calls)",
"16000": "16 kHz (wideband audio)",
"24000": "24 kHz (super-wideband audio)",
"44100": "44.1 kHz (CD quality audio)",
"48000": "48 kHz (professional audio quality)",
"96000": "96 kHz (high-resolution audio)"
},
"default": 8000
}
}
},
"callHeaders": {
"$ref": "#/$defs/callHeaders"
}
}
}
}
},
"to": {
"title": "To",
"description": "Call destination - Phone Number or Stream URI",
"oneOf": [
{
"$ref": "#/$defs/phone"
},
{
"$ref": "#/$defs/sip"
},
{
"$ref": "#/$defs/stream"
},
{
"$ref": "#/$defs/voiceRelay"
}
]
},
"voiceName": {
"type": "string",
"description": "Sinch Voice Name to use for text-to-speech. Each voice is tied to a specific language variant, gender, and pricing model (Free/Standard or Paid/Generative). See [https://developers.sinch.com/docs/voice-2.0/api-reference/text-to-speech-voices#text-to-speech-voices](https://developers.sinch.com/docs/voice-2.0/api-reference/text-to-speech-voices#currently-available-languages) for details",
"enum": [
"Aarav",
"Aarav_2",
"Aarohi",
"Aarti",
"Aarti_2",
"Aarti_3",
"Aashi",
"Abbi",
"Abdullah",
"Abeo",
"Abril",
"Achara",
"Ada",
"Ada_2",
"Adam",
"Adam_2",
"Aditi",
"Adri",
"Adriano",
"Agnieszka",
"Ahmet",
"Aigul",
"Ainhoa",
"Alain",
"Alba",
"Aled",
"Aleksandar",
"Alessio",
"Alessio_2",
"Alex",
"Alfie",
"Ali",
"Alina",
"Alloy",
"Alloy_2",
"Alonso",
"Alvaro",
"Amal",
"Amala",
"Amanda",
"Amany",
"Amber",
"Ambre",
"Ameha",
"Amina",
"Amy",
"Amy_2",
"Amy_3",
"Ana",
"Anahit",
"Ananya",
"Ananya_2",
"Anbu",
"Ander",
"Andre",
"Andre_2",
"Andrea",
"Andres",
"Andrew",
"Andrew_2",
"Andrew_3",
"Andrew_4",
"Angelo",
"Anila",
"Annette",
"Antoine",
"Antonin",
"Antonio",
"Anu",
"Aoi",
"Arabella",
"Ardi",
"Aria",
"Aria_2",
"Ariane",
"Arjun",
"Arjun_2",
"Arjun_3",
"Arlet",
"Arnau",
"Arnaud",
"Arthur",
"Arya",
"Arya_2",
"Asad",
"Ashley",
"Asilia",
"Astrid",
"Athina",
"Ava",
"Ava_2",
"Ava_3",
"Avri",
"Ayanda",
"Ayanda_2",
"Aysha",
"Babek",
"Banu",
"Bashkar",
"Bassel",
"Bataa",
"Beatrice",
"Beatriz",
"Belkys",
"Bella",
"Benigno",
"Bernd",
"Bianca",
"Bianca_2",
"Bianca_3",
"Blessica",
"BongJin",
"Borislav",
"Brandon",
"Brandon_2",
"Bree",
"Brenda",
"Brian",
"Brian_2",
"Brian_3",
"Brigitte",
"Bryan",
"Bryan_2",
"Bryan_3",
"Burcu",
"Calimero",
"Camila",
"Camilla",
"Camilla_2",
"Camilla_3",
"Candela",
"Carla",
"Carlos",
"Carlota",
"Carly",
"Carmen",
"Cataldo",
"Catalina",
"Cecilio",
"Celeste",
"Celine",
"Celine_2",
"Chantal",
"Chanthavong",
"Charline",
"Chilemba",
"Christel",
"Christoph",
"Christopher",
"Christopher_2",
"Clara",
"Claude",
"Colette",
"Colm",
"Conchita",
"Connor",
"Conrad",
"Cora",
"Cora_2",
"Coralie",
"Cristiano",
"Daichi",
"Dalia",
"Dalia_2",
"Daniel",
"Daniel_2",
"Danielle",
"Danielle_2",
"Dario",
"Dariya",
"Darren",
"Daudi",
"Daulet",
"Davis",
"Davis_2",
"Davis_3",
"Dena",
"Denise",
"Derek",
"Dhwani",
"Diego",
"Dilara",
"Dimas",
"Dmitry",
"Donato",
"Dora",
"Duarte",
"Duncan",
"Dustin",
"Echo",
"Eka",
"Elena",
"Elias",
"Elimu",
"Elin",
"Elizabeth",
"Elke",
"Elliot",
"Eloise",
"Elsa",
"Elsie",
"Elvira",
"Elza",
"Emel",
"Emil",
"Emilio",
"Emily",
"Emma",
"Emma_2",
"Emma_3",
"Emma_4",
"Enric",
"Enrique",
"Eric",
"Estrella",
"Ethan",
"Evelyn",
"Everita",
"Ewa",
"Ewa_2",
"Ezinne",
"Fabio",
"Fabiola",
"Fable",
"Fabrice",
"Fahed",
"Farid",
"Fatima",
"Federico",
"Fenna",
"Fernanda",
"Fiamma",
"Filiz",
"Finn",
"Florian",
"Florian_2",
"Florin",
"Francisca",
"Freya",
"Gabrielle",
"Gabrielle_2",
"Gabrijela",
"Gadis",
"Gagan",
"Gemma",
"Gemma_2",
"Geraint",
"Gerard",
"Gerardo",
"Gianni",
"Giorgi",
"Giorgio",
"Giovanna",
"Gisela",
"Giuseppe",
"Giuseppe_2",
"Gonzalo",
"GookMin",
"Goran",
"Grace",
"Gregory",
"Gudrun",
"Gul",
"GulNawaz",
"Gunnar",
"Guy",
"Gwyneth",
"Hala",
"Hamdan",
"Hamed",
"Hannah",
"Hannah_2",
"Hans",
"Harri",
"Hayk",
"Hedi",
"Hemkala",
"Henri",
"Hila",
"Hillevi",
"HiuGaai",
"Hiujin",
"HiuMaan",
"HoaiMy",
"Hollie",
"HsiaoChen",
"HsiaoYu",
"Humberto",
"Hyunsu",
"Hyunsu_2",
"Hyunsu_3",
"Ida",
"Ilir",
"Iman",
"Imani",
"Imelda",
"Ines",
"Ines_2",
"Ingrid",
"InJoon",
"Irene",
"Irma",
"Isabella",
"Isabella_2",
"Isabella_3",
"Isabelle",
"Isabelle_2",
"Iselin",
"Isidora",
"Ismael",
"Ivy",
"Ivy_2",
"Jacek",
"Jacob",
"Jacqueline",
"Jajang",
"Jamal",
"James",
"Jan",
"Jane",
"Jane_2",
"Jann",
"Jasmine",
"Jasmine_2",
"Jason",
"Javier",
"Jean",
"Jenny",
"Jenny_2",
"Jenny_3",
"Jeppe",
"Jerome",
"Jihye",
"JiMin",
"Jimmie",
"Jitka",
"Joana",
"Joanna",
"Joanna_2",
"Joanna_3",
"Joanne",
"Joey",
"Joey_2",
"Jonas",
"Jorge",
"Jorge_2",
"Joseph",
"Josephine",
"Juan",
"Julio",
"Justin",
"Justin_2",
"Kai",
"Kajal",
"Kajal_2",
"Kalina",
"Kani",
"Karina",
"Karl",
"Karla",
"Kasper",
"Katja",
"Kavya",
"Kavya_2",
"Kazuha",
"Keita",
"Ken",
"Kendra",
"Kendra_2",
"Keomany",
"Kert",
"Kevin",
"Killian",
"Kim",
"Kimberly",
"Kimberly_2",
"Klarissa",
"Klaus",
"Kumar",
"Kunal",
"Kunal_2",
"Laia",
"Laila",
"Laith",
"Larissa",
"Latifa",
"Laura",
"Laura_2",
"Layla",
"Lea",
"Lea_2",
"Lea_3",
"Leah",
"Leila",
"Leni",
"Lennart",
"Leonas",
"Leticia",
"Lewis",
"Lia",
"Liam",
"Lian",
"Lian_2",
"Libby",
"Liberto",
"Lisa",
"Lisa_2",
"Lisandro",
"Liv",
"Livia",
"Livia_2",
"Lola",
"Lorena",
"Lorenzio",
"Lorenzo",
"Lotte",
"Louisa",
"Lucia",
"Lucia_2",
"Lucia_3",
"Luciano",
"Lucien",
"Luis",
"Lukas",
"Luke",
"Luna",
"Luna_2",
"Lupe",
"Lupe_2",
"Lupe_3",
"Maarten",
"Macerio",
"Macerio_2",
"Madhur",
"Madina",
"Mads",
"Maisie",
"Maja",
"Manohar",
"Manuel",
"Manuela",
"Marcello",
"Marcelo",
"Marek",
"Margarita",
"Maria",
"Marija",
"Marina",
"Mario",
"Marlene",
"Marta",
"Maryam",
"Masaru",
"Mateo",
"Mathieu",
"Matthew",
"Matthew_2",
"Matthew_3",
"Mattias",
"Maurice",
"Maxim",
"Maya",
"Mayu",
"Mekdes",
"Mia",
"Mia_2",
"Mia_3",
"Michelle",
"Midhun",
"Miguel",
"Mitchell",
"Mizuki",
"Moaz",
"Mohan",
"Molly",
"Monica",
"Mouna",
"Muuse",
"Nabanita",
"Naja",
"NamMinh",
"Nanami",
"Nanami_2",
"Nancy",
"Nancy_2",
"Naoki",
"Natasha",
"Neerja",
"Neerja_2",
"Neil",
"Nestoras",
"Nia",
"Niamh",
"Niamh_2",
"Nicholas",
"Nicholas_2",
"Nicolau",
"Nicole",
"Nil",
"Nilar",
"Nils",
"Niranjan",
"Niwat",
"Noah",
"Noemi",
"Noora",
"Noura",
"Nova",
"Nova_2",
"Nuria",
"Ojas",
"Ola",
"Ola_2",
"Oliver",
"Olivia",
"Ollie",
"Ollie_2",
"Omar",
"Ona",
"Onyx",
"Orla",
"Osman",
"Ostap",
"Pallavi",
"Palmira",
"Paloma",
"Paola",
"Pedro",
"Pedro_2",
"Pelayo",
"Penelope",
"Pernille",
"Petra",
"Phoebe",
"Phoebe_2",
"Pierina",
"Piseth",
"Polina",
"Prabhat",
"Prabhat_2",
"Pradeep",
"Premwadee",
"Priyom",
"Rafiki",
"Ralf",
"Rami",
"Ramona",
"Rana",
"Raquel",
"Raveena",
"Reem",
"Rehaan",
"Rehaan_2",
"Rehema",
"Remi",
"Remi_2",
"Remy",
"Remy_2",
"Renata",
"Ricardo",
"Rinaldo",
"Roberto",
"Rodrigo",
"Roger",
"Roi",
"Rok",
"Rosa",
"Ruben",
"Russell",
"Ruth",
"Ruth_2",
"Ryan",
"Ryan_2",
"Sabela",
"Sabrina",
"Sabrina_2",
"Sagar",
"Saleh",
"Salli",
"Salli_2",
"Salli_3",
"Salma",
"Salman",
"Salome",
"Sam",
"Sameera",
"Samuel",
"Sana",
"Sapna",
"Sara",
"Saranya",
"Sardor",
"Saul",
"Sebastian",
"Selma",
"SeoHyeon",
"Seoyeon",
"Seoyeon_2",
"Seoyeon_3",
"Seraphina",
"Seraphina_2",
"Serena",
"Serena_2",
"Sergio",
"Sergio_2",
"Shakir",
"Shimmer",
"Shiori",
"Shruti",
"Siqiniq",
"Siqiniq_2",
"Siti",
"Sobhana",
"Soffie",
"Sofia",
"Sofie",
"Sonia",
"SoonBok",
"Sophie",
"Sophie_2",
"Srecko",
"Sreymom",
"Steffan",
"Ste
# --- truncated at 32 KB (90 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/sinch/refs/heads/main/json-schema/sinch-session-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/sinch-session"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.