Vapi · Capability
Vapi API — Calls
Vapi API — Calls. 5 operations. Lead operation: Create Call. Self-contained Naftiko capability covering one Vapi business surface.
What You Can Do
POST
Callcontrollercreate
— Create Call
/v1/call
GET
Callcontrollerfindall
— List Calls
/v1/call
GET
Callcontrollerfindone
— Get Call
/v1/call/{id}
PATCH
Callcontrollerupdate
— Update Call
/v1/call/{id}
DELETE
Callcontrollerdeletecalldata
— Delete Call
/v1/call/{id}
MCP Tools
create-call
Create Call
list-calls
List Calls
read-only
idempotent
get-call
Get Call
read-only
idempotent
update-call
Update Call
idempotent
delete-call
Delete Call
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Vapi API — Calls
description: 'Vapi API — Calls. 5 operations. Lead operation: Create Call. Self-contained Naftiko capability covering one
Vapi business surface.'
tags:
- Vapi
- Calls
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
VAPI_API_KEY: VAPI_API_KEY
capability:
consumes:
- type: http
namespace: vapi-calls
baseUri: https://api.vapi.ai
description: Vapi API — Calls business capability. Self-contained, no shared references.
resources:
- name: call
path: /call
operations:
- name: callcontrollercreate
method: POST
description: Create Call
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: callcontrollerfindall
method: GET
description: List Calls
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: query
type: string
description: This is the unique identifier for the call.
- name: assistantId
in: query
type: string
description: This will return calls with the specified assistantId.
- name: phoneNumberId
in: query
type: string
description: This is the phone number that will be used for the call. To use a transient number, use `phoneNumber`
instead.
- name: limit
in: query
type: number
description: This is the maximum number of items to return. Defaults to 100.
- name: createdAtGt
in: query
type: string
description: This will return items where the createdAt is greater than the specified value.
- name: createdAtLt
in: query
type: string
description: This will return items where the createdAt is less than the specified value.
- name: createdAtGe
in: query
type: string
description: This will return items where the createdAt is greater than or equal to the specified value.
- name: createdAtLe
in: query
type: string
description: This will return items where the createdAt is less than or equal to the specified value.
- name: updatedAtGt
in: query
type: string
description: This will return items where the updatedAt is greater than the specified value.
- name: updatedAtLt
in: query
type: string
description: This will return items where the updatedAt is less than the specified value.
- name: updatedAtGe
in: query
type: string
description: This will return items where the updatedAt is greater than or equal to the specified value.
- name: updatedAtLe
in: query
type: string
description: This will return items where the updatedAt is less than or equal to the specified value.
- name: call-id
path: /call/{id}
operations:
- name: callcontrollerfindone
method: GET
description: Get Call
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
required: true
- name: callcontrollerupdate
method: PATCH
description: Update Call
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: callcontrollerdeletecalldata
method: DELETE
description: Delete Call
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
authentication:
type: bearer
token: '{{env.VAPI_API_KEY}}'
exposes:
- type: rest
namespace: vapi-calls-rest
port: 8080
description: REST adapter for Vapi API — Calls. One Spectral-compliant resource per consumed operation, prefixed with
/v1.
resources:
- path: /v1/call
name: call
description: REST surface for call.
operations:
- method: POST
name: callcontrollercreate
description: Create Call
call: vapi-calls.callcontrollercreate
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: GET
name: callcontrollerfindall
description: List Calls
call: vapi-calls.callcontrollerfindall
with:
id: rest.id
assistantId: rest.assistantId
phoneNumberId: rest.phoneNumberId
limit: rest.limit
createdAtGt: rest.createdAtGt
createdAtLt: rest.createdAtLt
createdAtGe: rest.createdAtGe
createdAtLe: rest.createdAtLe
updatedAtGt: rest.updatedAtGt
updatedAtLt: rest.updatedAtLt
updatedAtGe: rest.updatedAtGe
updatedAtLe: rest.updatedAtLe
outputParameters:
- type: object
mapping: $.
- path: /v1/call/{id}
name: call-id
description: REST surface for call-id.
operations:
- method: GET
name: callcontrollerfindone
description: Get Call
call: vapi-calls.callcontrollerfindone
with:
id: rest.id
outputParameters:
- type: object
mapping: $.
- method: PATCH
name: callcontrollerupdate
description: Update Call
call: vapi-calls.callcontrollerupdate
with:
id: rest.id
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: callcontrollerdeletecalldata
description: Delete Call
call: vapi-calls.callcontrollerdeletecalldata
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: vapi-calls-mcp
port: 9090
transport: http
description: MCP adapter for Vapi API — Calls. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: create-call
description: Create Call
hints:
readOnly: false
destructive: false
idempotent: false
call: vapi-calls.callcontrollercreate
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: list-calls
description: List Calls
hints:
readOnly: true
destructive: false
idempotent: true
call: vapi-calls.callcontrollerfindall
with:
id: tools.id
assistantId: tools.assistantId
phoneNumberId: tools.phoneNumberId
limit: tools.limit
createdAtGt: tools.createdAtGt
createdAtLt: tools.createdAtLt
createdAtGe: tools.createdAtGe
createdAtLe: tools.createdAtLe
updatedAtGt: tools.updatedAtGt
updatedAtLt: tools.updatedAtLt
updatedAtGe: tools.updatedAtGe
updatedAtLe: tools.updatedAtLe
outputParameters:
- type: object
mapping: $.
- name: get-call
description: Get Call
hints:
readOnly: true
destructive: false
idempotent: true
call: vapi-calls.callcontrollerfindone
with:
id: tools.id
outputParameters:
- type: object
mapping: $.
- name: update-call
description: Update Call
hints:
readOnly: false
destructive: false
idempotent: true
call: vapi-calls.callcontrollerupdate
with:
id: tools.id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: delete-call
description: Delete Call
hints:
readOnly: false
destructive: true
idempotent: true
call: vapi-calls.callcontrollerdeletecalldata
with:
body: tools.body
outputParameters:
- type: object
mapping: $.