Skip to content
Merged
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
5ed3b15
Update API specifications with fern api update
invalid-email-address Jul 2, 2026
01d8b36
Update API specifications with fern api update
invalid-email-address Jul 7, 2026
a2c8645
Update API specifications with fern api update
invalid-email-address Jul 8, 2026
43b4ecf
Update API specifications with fern api update
invalid-email-address Jul 9, 2026
d0979ce
Update API specifications with fern api update
invalid-email-address Jul 14, 2026
5b79eb0
Update API specifications with fern api update
invalid-email-address Jul 15, 2026
f860d70
Update API specifications with fern api update
invalid-email-address Jul 18, 2026
44a8826
Update API specifications with fern api update
invalid-email-address Jul 23, 2026
7e8bea6
Update API specifications with fern api update
invalid-email-address Jul 25, 2026
631ef17
Update API specifications with fern api update
invalid-email-address Jul 30, 2026
8b7450a
Update API specifications with fern api update
invalid-email-address Jul 31, 2026
69e0178
Update API specifications with fern api update
invalid-email-address Aug 6, 2026
5d0bc0a
Update API specifications with fern api update
invalid-email-address Aug 8, 2026
efe0e21
Update API specifications with fern api update
invalid-email-address Aug 12, 2026
b93432a
Merge remote-tracking branch 'origin/main' into resolve-1127
stephenvapiai Aug 12, 2026
d365e35
Update API specifications with fern api update
invalid-email-address Aug 14, 2026
c673239
Merge remote-tracking branch 'origin/main' into resolve-1143
stephenvapiai Aug 14, 2026
b855861
Update API specifications with fern api update
invalid-email-address Aug 16, 2026
e05cb22
Merge branch 'main' into update-openapi-spec
stephenvapiai Aug 17, 2026
0ce623a
Update API specifications with fern api update
invalid-email-address Aug 19, 2026
c7974b4
Merge branch 'main' into update-openapi-spec
stephenvapiai Aug 19, 2026
17af1c8
Update API specifications with fern api update
invalid-email-address Aug 23, 2026
3027eb3
Merge branch 'main' into update-openapi-spec
stephenvapiai Aug 24, 2026
49e54ef
Update API specifications with fern api update
invalid-email-address Aug 26, 2026
74e9a06
Merge branch 'main' into update-openapi-spec
stephenvapiai Aug 26, 2026
e6283ef
Update API specifications with fern api update
invalid-email-address Aug 28, 2026
7534130
Update API specifications with fern api update
invalid-email-address Aug 29, 2026
36facdb
Merge branch 'main' into update-openapi-spec
stephenvapiai Sep 1, 2026
f55f974
Update API specifications with fern api update
invalid-email-address Sep 2, 2026
51b98da
Merge branch 'main' into update-openapi-spec
stephenvapiai Sep 2, 2026
39cffd9
Update API specifications with fern api update
invalid-email-address Sep 3, 2026
ea0080c
Merge branch 'main' into update-openapi-spec
stephenvapiai Sep 3, 2026
21682ed
Update API specifications with fern api update
invalid-email-address Sep 4, 2026
d5cf0bb
Update API specifications with fern api update
invalid-email-address Sep 9, 2026
b8938f9
Merge branch 'main' into update-openapi-spec
stephenvapiai Sep 9, 2026
e7d9fa7
Update API specifications with fern api update
invalid-email-address Sep 10, 2026
3138673
Update API specifications with fern api update
invalid-email-address Sep 11, 2026
44373de
Merge branch 'main' into update-openapi-spec
stephenvapiai Sep 11, 2026
f5d33f5
Update API specifications with fern api update
invalid-email-address Sep 12, 2026
ee7a69d
Merge branch 'main' into update-openapi-spec
stephenvapiai Sep 14, 2026
057e2ea
Update API specifications with fern api update
invalid-email-address Sep 17, 2026
d5579e3
Update API specifications with fern api update
invalid-email-address Sep 18, 2026
bd8da2d
Merge main into update-openapi-spec
stephenvapiai Sep 18, 2026
dc1dff9
Update API specifications with fern api update
invalid-email-address Sep 19, 2026
0e29fb9
Update API specifications with fern api update
invalid-email-address Sep 23, 2026
54f3ff4
Update API specifications with fern api update
invalid-email-address Sep 24, 2026
7c94c4f
Update API specifications with fern api update
invalid-email-address Sep 25, 2026
fcb98ce
Merge main into update-openapi-spec
stephenvapiai Sep 25, 2026
e551f18
Update API specifications with fern api update
invalid-email-address Sep 26, 2026
2c94269
Update API specifications with fern api update
invalid-email-address Sep 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
189 changes: 160 additions & 29 deletions fern/apis/api/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -4815,9 +4815,15 @@
"parameters": [
{
"name": "purpose",
"required": true,
"required": false,
"in": "query",
"description": "Only return files with this purpose. When omitted, files of every purpose except composer attachments are returned.",
"schema": {
"enum": [
"assistant",
"composer-attachment",
"knowledge-base-v2"
],
"type": "string"
}
}
Expand Down Expand Up @@ -11053,6 +11059,7 @@
"nova-3",
"nova-3-general",
"nova-3-medical",
"nova-3-pharma",
"nova-2",
"nova-2-general",
"nova-2-meeting",
Expand Down Expand Up @@ -14190,6 +14197,7 @@
"nova-3",
"nova-3-general",
"nova-3-medical",
"nova-3-pharma",
"nova-2",
"nova-2-general",
"nova-2-meeting",
Expand Down Expand Up @@ -36124,7 +36132,7 @@
},
"replacementModel": {
"type": "string",
"description": "The recommended migration target for the slot's model: the registry's\nreplacement, followed through any further retirements as of the response\ndate, so it names a model that is alive on that day. A `<model>:<region>`\npin on the slot's model is kept on the target.",
"description": "The recommended migration target for the slot's model: the registry's\nreplacement, followed through any further retirements as of the response\ndate, so it names a model that is alive on that day. A `<model>:<region>`\npin on the slot's model is kept on the target when the pinned name is\nitself a settable model; otherwise the bare replacement is named.",
"example": "gpt-5"
}
},
Expand Down Expand Up @@ -44313,6 +44321,67 @@
}
}
},
"TranscriptWordConfidence": {
"type": "object",
"properties": {
"word": {
"type": "string",
"description": "The word as the transcriber recognised it."
},
"start": {
"type": "number",
"description": "Offset at which the word begins, measured from the start of the\ntranscriber stream (ElevenLabs, which transcribes each utterance as its\nown request, measures from the start of that utterance's audio). The unit\nis transcriber-specific today: seconds for Deepgram, Soniox, Gladia and\nElevenLabs realtime (`scribe_v2_realtime`); milliseconds for AssemblyAI,\nElevenLabs HTTP Scribe and Google. Transcribers without per-word timing\nemit a placeholder, typically `0`."
},
"end": {
"type": "number",
"description": "Offset at which the word ends, with the same origin and unit as `start`."
},
"confidence": {
"type": "number",
"description": "The transcriber's confidence for this word, in [0, 1]. Transcribers that\nreport no per-word score, or whose stream does not map one (Cartesia,\nElevenLabs HTTP Scribe, Google, Talkscriber and custom transcribers), emit\n`1` for every word; that placeholder is not a measurement. ElevenLabs\nrealtime passes through its token log-probability, which is not a [0, 1]\nconfidence.",
"minimum": 0,
"maximum": 1
},
"punctuated_word": {
"type": "string",
"description": "The word with punctuation and casing applied, when the transcriber\nreports a punctuated form. The snake_case name deliberately mirrors the\ntranscriber wire spelling already stored on every existing message;\nrenaming it would break stored data."
},
"language": {
"type": "string",
"description": "The language the transcriber detected for this word, when it reports one."
},
"speaker": {
"type": "number",
"description": "The diarized speaker index this word was attributed to, when the\ntranscriber reports one."
}
},
"required": [
"word",
"start",
"end",
"confidence"
]
},
"UserMessageMetadata": {
"type": "object",
"properties": {
"wordLevelConfidence": {
"description": "Per-word confidence scores from the transcriber. After consecutive\ntranscript fragments are merged into one message the list covers the whole\nmerged message, or is absent when any fragment lacked word scores.",
"type": "array",
"items": {
"$ref": "#/components/schemas/TranscriptWordConfidence"
}
},
"type": {
"type": "string",
"description": "Marks a message injected out-of-band rather than produced by the\ntranscriber (e.g. an inbound SMS relayed into the conversation)."
},
"source": {
"type": "string",
"description": "The channel or address the out-of-band message arrived from (e.g. the\nsender's phone number for an SMS)."
}
}
},
"UserMessage": {
"type": "object",
"properties": {
Expand Down Expand Up @@ -44355,9 +44424,27 @@
"type": "string",
"description": "The original message before filtering (only included if content was filtered)."
},
"confidence": {
"type": "number",
"description": "The transcriber's confidence score for this message, in [0, 1]. Only\never set alongside `confidenceSource` — see there for why an unmarked\nor out-of-range score is never stored.",
"minimum": 0,
"maximum": 1
},
"confidenceSource": {
"type": "string",
"description": "Whether `confidence` came directly from the transcriber ('provider') or\nwas computed by Vapi ('derived').\n\n'derived' means Vapi computed the score from the transcriber's per-word\nscores; the exact aggregation is provider-specific (an average, a median\nor a minimum, depending on the transcriber). It is also 'derived' when\nconsecutive transcript fragments were merged into one message, where the\nscore is the minimum across the fragments.\n\nAbsent means no trustworthy score was available for this message: either\nthe transcriber does not report one, or the value it reported was invalid\nand was dropped. A merged message is unmarked whenever any fragment it\ncontains was unmarked.",
"enum": [
"provider",
"derived"
]
},
"metadata": {
"type": "object",
"description": "The metadata associated with the message. Currently used to store the transcriber's word level confidence."
"description": "The metadata associated with the message. Currently used to store the transcriber's word level confidence.",
"allOf": [
{
"$ref": "#/components/schemas/UserMessageMetadata"
}
]
},
"speakerLabel": {
"type": "string",
Expand Down Expand Up @@ -46948,6 +47035,8 @@
"call.in-progress.error-providerfault-outbound-sip-503-service-unavailable",
"call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable",
"call.in-progress.error-sip-outbound-call-failed-to-connect",
"sip-outbound-unallocated-number",
"sip-outbound-carrier-released-call",
"call.ringing.hook-executed-say",
"call.ringing.hook-executed-transfer",
"call.ending.hook-executed-say",
Expand Down Expand Up @@ -58801,31 +58890,6 @@
"minLength": 1,
"maxLength": 1000
},
"model": {
"description": "This is the model that will be used to extract the structured output.\n\nTo provide your own custom system and user prompts for structured output extraction, populate the messages array with your system and user messages. You can specify liquid templating in your system and user messages.\nBetween the system or user messages, you must reference either 'transcript' or 'messages' with the `{{}}` syntax to access the conversation history.\nBetween the system or user messages, you must reference a variation of the structured output with the `{{}}` syntax to access the structured output definition.\ni.e.:\n`{{structuredOutput}}`\n`{{structuredOutput.name}}`\n`{{structuredOutput.description}}`\n`{{structuredOutput.schema}}`\n\nIf model is not specified, GPT-4.1 will be used by default for extraction, utilizing default system and user prompts.\nIf messages or required fields are not specified, the default system and user prompts will be used.",
"oneOf": [
{
"$ref": "#/components/schemas/WorkflowOpenAIModel",
"title": "WorkflowOpenAIModel"
},
{
"$ref": "#/components/schemas/WorkflowAnthropicModel",
"title": "WorkflowAnthropicModel"
},
{
"$ref": "#/components/schemas/WorkflowAnthropicBedrockModel",
"title": "WorkflowAnthropicBedrockModel"
},
{
"$ref": "#/components/schemas/WorkflowGoogleModel",
"title": "WorkflowGoogleModel"
},
{
"$ref": "#/components/schemas/WorkflowCustomModel",
"title": "WorkflowCustomModel"
}
]
},
"compliancePlan": {
"description": "Compliance configuration for this output. Only enable overrides if no sensitive data will be stored.",
"example": {
Expand Down Expand Up @@ -58868,6 +58932,31 @@
]
}
},
"model": {
"description": "This is the model that will be used to extract the structured output.\n\nTo provide your own custom system and user prompts for structured output extraction, populate the messages array with your system and user messages. You can specify liquid templating in your system and user messages.\nBetween the system or user messages, you must reference either 'transcript' or 'messages' with the `{{}}` syntax to access the conversation history.\nBetween the system or user messages, you must reference a variation of the structured output with the `{{}}` syntax to access the structured output definition.\ni.e.:\n`{{structuredOutput}}`\n`{{structuredOutput.name}}`\n`{{structuredOutput.description}}`\n`{{structuredOutput.schema}}`\n\nIf model is not specified, GPT-4.1 will be used by default for extraction, utilizing default system and user prompts.\nIf messages or required fields are not specified, the default system and user prompts will be used.",
"oneOf": [
{
"$ref": "#/components/schemas/WorkflowOpenAIModel",
"title": "WorkflowOpenAIModel"
},
{
"$ref": "#/components/schemas/WorkflowAnthropicModel",
"title": "WorkflowAnthropicModel"
},
{
"$ref": "#/components/schemas/WorkflowAnthropicBedrockModel",
"title": "WorkflowAnthropicBedrockModel"
},
{
"$ref": "#/components/schemas/WorkflowGoogleModel",
"title": "WorkflowGoogleModel"
},
{
"$ref": "#/components/schemas/WorkflowCustomModel",
"title": "WorkflowCustomModel"
}
]
},
"name": {
"type": "string",
"description": "This is the name of the structured output.",
Expand Down Expand Up @@ -63237,6 +63326,7 @@
"assistant.model.tokenReceived",
"assistant.model.responseSucceeded",
"assistant.model.responseFailed",
"assistant.model.responseEmpty",
"assistant.model.toolCallsReceived",
"assistant.model.reconnecting",
"assistant.model.cleanup",
Expand Down Expand Up @@ -66344,6 +66434,15 @@
"platformFee": {
"type": "number",
"description": "This is the platform fee for the subscription."
},
"billingCollectionMethod": {
"type": "string",
"nullable": true,
"description": "This is how payment is collected for the subscription: charged to the card\non file, or invoiced.",
"enum": [
"charge_automatically",
"send_invoice"
]
}
},
"required": [
Expand Down Expand Up @@ -74757,6 +74856,20 @@
"originalTranscript": {
"type": "string",
"description": "The original transcript before filtering (only included if content was filtered)."
},
"confidence": {
"type": "number",
"description": "The transcriber's confidence score for this transcript, in [0, 1]. Only\never set alongside `confidenceSource` — see there for why an unmarked\nscore is never included. Set only on final user-role transcripts: each\nlive message carries the score of the one fragment it was built from, and\n`artifact.messages` agrees with it per fragment. A stored message built\nfrom several consecutive fragments reports the minimum across them as\n'derived', so it can differ from the individual live messages that fed\nit. Partials never carry a score, because nothing stored exists for a\npartial's score to agree with.",
"minimum": 0,
"maximum": 1
},
"confidenceSource": {
"type": "string",
"description": "Whether `confidence` came directly from the transcriber ('provider') or\nwas computed by Vapi ('derived').\n\n'derived' means Vapi computed the score from the transcriber's per-word\nscores; the exact aggregation is provider-specific (an average, a median\nor a minimum, depending on the transcriber).\n\nAbsent means no trustworthy score was available for this transcript:\neither the transcriber does not report one, or the value it reported was\ninvalid and was dropped.",
"enum": [
"provider",
"derived"
]
}
},
"required": [
Expand Down Expand Up @@ -76949,6 +77062,8 @@
"call.in-progress.error-providerfault-outbound-sip-503-service-unavailable",
"call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable",
"call.in-progress.error-sip-outbound-call-failed-to-connect",
"sip-outbound-unallocated-number",
"sip-outbound-carrier-released-call",
"call.ringing.hook-executed-say",
"call.ringing.hook-executed-transfer",
"call.ending.hook-executed-say",
Expand Down Expand Up @@ -78402,6 +78517,8 @@
"call.in-progress.error-providerfault-outbound-sip-503-service-unavailable",
"call.in-progress.error-providerfault-outbound-sip-480-temporarily-unavailable",
"call.in-progress.error-sip-outbound-call-failed-to-connect",
"sip-outbound-unallocated-number",
"sip-outbound-carrier-released-call",
"call.ringing.hook-executed-say",
"call.ringing.hook-executed-transfer",
"call.ending.hook-executed-say",
Expand Down Expand Up @@ -79004,6 +79121,20 @@
"originalTranscript": {
"type": "string",
"description": "The original transcript before filtering (only included if content was filtered)."
},
"confidence": {
"type": "number",
"description": "The transcriber's confidence score for this transcript, in [0, 1]. Only\never set alongside `confidenceSource` — see there for why an unmarked\nscore is never included. Set only on final user-role transcripts: each\nlive message carries the score of the one fragment it was built from, and\n`artifact.messages` agrees with it per fragment. A stored message built\nfrom several consecutive fragments reports the minimum across them as\n'derived', so it can differ from the individual live messages that fed\nit. Partials never carry a score, because nothing stored exists for a\npartial's score to agree with.",
"minimum": 0,
"maximum": 1
},
"confidenceSource": {
"type": "string",
"description": "Whether `confidence` came directly from the transcriber ('provider') or\nwas computed by Vapi ('derived').\n\n'derived' means Vapi computed the score from the transcriber's per-word\nscores; the exact aggregation is provider-specific (an average, a median\nor a minimum, depending on the transcriber).\n\nAbsent means no trustworthy score was available for this transcript:\neither the transcriber does not report one, or the value it reported was\ninvalid and was dropped.",
"enum": [
"provider",
"derived"
]
}
},
"required": [
Expand Down