Amigo Context Graphs API
The Context Graphs API from Amigo — 4 operation(s) for context graphs.
The Context Graphs API from Amigo — 4 operation(s) for context graphs.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/amigo-context-graphs-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Amigo Account Context Graphs API
version: 0.1.0
servers:
- url: https://api.amigo.ai
- url: https://internal-api.amigo.ai
- url: https://api-eu-central-1.amigo.ai
- url: https://api-ap-southeast-2.amigo.ai
- url: https://api-ca-central-1.amigo.ai
security:
- Bearer-Authorization: []
Bearer-Authorization-Organization: []
Basic: []
tags:
- name: Context Graphs
paths:
/v1/{workspace_id}/context-graphs:
post:
tags:
- Context Graphs
summary: Create a context graph
description: Create a new context graph in a workspace. Requires `ContextGraph.create` permission.
operationId: create-context_graph
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateContextGraphRequest'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ContextGraphResponse'
'404':
description: Not found.
'409':
description: Name already taken.
'403':
description: Insufficient permissions.
'401':
description: Missing or invalid API key.
'422':
description: Invalid request body.
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
get:
tags:
- Context Graphs
summary: List context graphs
description: List context graphs in a workspace with pagination. Requires `ContextGraph.view` permission.
operationId: list-context_graphs
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: search
in: query
required: false
schema:
anyOf:
- $ref: '#/components/schemas/SearchString'
- type: 'null'
title: Search
- name: sort_by
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Sort By
- name: limit
in: query
required: false
schema:
type: integer
maximum: 100
exclusiveMinimum: 0
default: 10
title: Limit
- name: continuation_token
in: query
required: false
schema:
type: integer
default: 0
title: Continuation Token
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedResponse_ContextGraphResponse_'
'404':
description: Not found.
'403':
description: Insufficient permissions.
'401':
description: Missing or invalid API key.
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/context-graphs/{context_graph_id}:
get:
tags:
- Context Graphs
summary: Get a context graph
description: Retrieve a context graph by ID. Requires `ContextGraph.view` permission.
operationId: get-context_graph
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: context_graph_id
in: path
required: true
schema:
type: string
format: uuid
title: Context Graph Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ContextGraphResponse'
'404':
description: Not found.
'403':
description: Insufficient permissions.
'401':
description: Missing or invalid API key.
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
put:
tags:
- Context Graphs
summary: Update a context graph
description: Update a context graph's name or description. Requires `ContextGraph.update` permission.
operationId: update-context_graph
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: context_graph_id
in: path
required: true
schema:
type: string
format: uuid
title: Context Graph Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateContextGraphRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ContextGraphResponse'
'404':
description: Not found.
'409':
description: Name already taken.
'403':
description: Insufficient permissions.
'401':
description: Missing or invalid API key.
'422':
description: Invalid request body.
delete:
tags:
- Context Graphs
summary: Delete a context graph
description: Delete a context graph. context graph versions are retained. Requires `ContextGraph.delete` permission.
operationId: delete-context_graph
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: context_graph_id
in: path
required: true
schema:
type: string
format: uuid
title: Context Graph Id
responses:
'204':
description: Successful Response
'404':
description: Not found.
'403':
description: Insufficient permissions.
'401':
description: Missing or invalid API key.
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/context-graphs/{context_graph_id}/versions:
post:
tags:
- Context Graphs
summary: Create a context graph version
description: Create a new version of a context graph. Version number is auto-incremented. Requires `ContextGraph.create` permission for the first version and `ContextGraph.update` permission afterward.
operationId: create-context_graph-version
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: context_graph_id
in: path
required: true
schema:
type: string
format: uuid
title: Context Graph Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateContextGraphVersionRequest'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ContextGraphVersionResponse'
'404':
description: Not found.
'409':
description: Name already taken.
'403':
description: Insufficient permissions.
'401':
description: Missing or invalid API key.
'422':
description: Invalid request body.
get:
tags:
- Context Graphs
summary: List context graph versions
description: List versions of a context graph with pagination. Requires `ContextGraph.view` permission.
operationId: list-context_graph-versions
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: context_graph_id
in: path
required: true
schema:
type: string
format: uuid
title: Context Graph Id
- name: sort_by
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Sort By
- name: limit
in: query
required: false
schema:
type: integer
maximum: 100
exclusiveMinimum: 0
default: 10
title: Limit
- name: continuation_token
in: query
required: false
schema:
type: integer
default: 0
title: Continuation Token
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedResponse_ContextGraphVersionResponse_'
'404':
description: Not found.
'403':
description: Insufficient permissions.
'401':
description: Missing or invalid API key.
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/context-graphs/{context_graph_id}/versions/{version}:
get:
tags:
- Context Graphs
summary: Get a context graph version
description: Retrieve a specific context graph version by number, or 'latest'. Requires `ContextGraph.view` permission.
operationId: get-context_graph-version
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: context_graph_id
in: path
required: true
schema:
type: string
format: uuid
title: Context Graph Id
- name: version
in: path
required: true
schema:
anyOf:
- type: integer
- type: string
title: Version
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ContextGraphVersionResponse'
'404':
description: Not found.
'403':
description: Insufficient permissions.
'401':
description: Missing or invalid API key.
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
ExitCondition:
properties:
description:
type: string
title: Description
next_state:
type: string
title: Next State
filler_hint:
anyOf:
- type: string
- type: 'null'
title: Filler Hint
type: object
required:
- description
- next_state
title: ExitCondition
CreateContextGraphVersionRequest:
properties:
description:
$ref: '#/components/schemas/DescriptionString'
default: ''
states:
items:
$ref: '#/components/schemas/ContextGraphState-Input'
type: array
title: States
new_user_initial_state:
type: string
title: New User Initial State
returning_user_initial_state:
type: string
title: Returning User Initial State
terminal_state:
type: string
title: Terminal State
global_intra_state_navigation_guidelines:
items:
type: string
type: array
title: Global Intra State Navigation Guidelines
default: []
global_action_guidelines:
items:
type: string
type: array
title: Global Action Guidelines
default: []
global_boundary_constraints:
items:
type: string
type: array
title: Global Boundary Constraints
default: []
topology_description:
anyOf:
- type: string
- type: 'null'
title: Topology Description
type: object
required:
- states
- new_user_initial_state
- returning_user_initial_state
- terminal_state
title: CreateContextGraphVersionRequest
DecisionState-Output:
properties:
type:
type: string
const: decision
title: Type
name:
type: string
title: Name
objective:
type: string
title: Objective
exit_conditions:
items:
$ref: '#/components/schemas/ExitCondition'
type: array
title: Exit Conditions
decision_guidelines:
items:
type: string
type: array
title: Decision Guidelines
default: []
tool_call_specs:
items:
$ref: '#/components/schemas/ToolCallSpec'
type: array
title: Tool Call Specs
default: []
wait_for:
anyOf:
- type: string
enum:
- surface_submission
- human_approval
- type: 'null'
title: Wait For
guardrails:
items:
$ref: '#/components/schemas/Guardrail'
type: array
title: Guardrails
default: []
channel_overrides:
additionalProperties:
$ref: '#/components/schemas/ChannelOverride'
type: object
title: Channel Overrides
turn_policy:
anyOf:
- $ref: '#/components/schemas/TurnPolicy'
- type: 'null'
type: object
required:
- type
- name
- objective
- exit_conditions
title: DecisionState
description: Passthrough routing state — Agent picks an exit condition, no user interaction.
DescriptionString:
type: string
maxLength: 2000
DataCollectionState-Input:
properties:
type:
type: string
const: data_collection
title: Type
name:
type: string
title: Name
objective:
type: string
title: Objective
fields:
items:
$ref: '#/components/schemas/CollectionField'
type: array
title: Fields
on_complete:
type: string
title: On Complete
action_guidelines:
items:
type: string
type: array
title: Action Guidelines
default: []
boundary_constraints:
items:
type: string
type: array
title: Boundary Constraints
default: []
surface_fallback:
type: boolean
title: Surface Fallback
default: false
surface_fallback_after_turns:
type: integer
title: Surface Fallback After Turns
default: 6
max_turns:
type: integer
title: Max Turns
default: 10
guardrails:
items:
$ref: '#/components/schemas/Guardrail'
type: array
title: Guardrails
default: []
channel_overrides:
additionalProperties:
$ref: '#/components/schemas/ChannelOverride'
type: object
title: Channel Overrides
turn_policy:
anyOf:
- $ref: '#/components/schemas/TurnPolicy'
- type: 'null'
tool_call_specs:
items:
$ref: '#/components/schemas/ToolCallSpec'
type: array
title: Tool Call Specs
default: []
type: object
required:
- type
- name
- objective
- fields
- on_complete
title: DataCollectionState
description: 'Structured voice/text data collection with field tracking.
The engine presents fields conversationally, tracks completion, and
optionally falls back to a Surface form after N turns. Each collected
field produces a world.event with confidence 0.5.'
ProgressHint:
properties:
deterministic:
type: boolean
title: Deterministic
default: false
phrases:
anyOf:
- items:
type: string
type: array
maxItems: 10
minItems: 1
description: 'Filler phrases. deterministic=true: played verbatim in order. deterministic=false: used as hints for early attempts.'
- type: 'null'
title: Phrases
trigger_delay_ms:
anyOf:
- type: integer
maximum: 30000.0
minimum: 0.0
- type: 'null'
title: Trigger Delay Ms
interval_ms:
anyOf:
- type: integer
maximum: 30000.0
minimum: 100.0
- type: 'null'
title: Interval Ms
mode:
type: string
enum:
- auto
- silent
- backchannel
- verbal
title: Mode
default: auto
progress_class:
anyOf:
- type: string
enum:
- lookup
- write
- external_call
- compute
- multi_step
- type: 'null'
title: Progress Class
expected_latency_ms:
anyOf:
- type: integer
maximum: 60000.0
minimum: 0.0
- type: 'null'
title: Expected Latency Ms
custom_phrase:
anyOf:
- type: string
maxLength: 500
description: 'Legacy: use phrases instead.'
- type: 'null'
title: Custom Phrase
additionalProperties: false
type: object
title: ProgressHint
description: 'How the agent narrates waiting on a tool.
``deterministic=true``: scripted — ``phrases`` play verbatim in order.
``deterministic=false``: engine picks — ``phrases`` are hints.
``trigger_delay_ms``: milliseconds before first filler (0 = immediate).
``interval_ms``: milliseconds between subsequent fillers.'
ActionState-Input:
properties:
type:
type: string
const: action
title: Type
name:
type: string
title: Name
objective:
type: string
title: Objective
actions:
items:
$ref: '#/components/schemas/Action'
type: array
title: Actions
intra_state_navigation_guidelines:
items:
type: string
type: array
title: Intra State Navigation Guidelines
action_guidelines:
items:
type: string
type: array
title: Action Guidelines
boundary_constraints:
items:
type: string
type: array
title: Boundary Constraints
exit_conditions:
items:
$ref: '#/components/schemas/ExitCondition'
type: array
title: Exit Conditions
action_tool_call_specs:
items:
$ref: '#/components/schemas/ToolCallSpec'
type: array
title: Action Tool Call Specs
default: []
exit_condition_tool_call_specs:
items:
$ref: '#/components/schemas/ToolCallSpec'
type: array
title: Exit Condition Tool Call Specs
default: []
wait_for:
anyOf:
- type: string
enum:
- surface_submission
- human_approval
- type: 'null'
title: Wait For
guardrails:
items:
$ref: '#/components/schemas/Guardrail'
type: array
title: Guardrails
default: []
channel_overrides:
additionalProperties:
$ref: '#/components/schemas/ChannelOverride'
type: object
title: Channel Overrides
surface_spec_template:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Surface Spec Template
turn_policy:
anyOf:
- $ref: '#/components/schemas/TurnPolicy'
- type: 'null'
preload:
items:
$ref: '#/components/schemas/PreloadSpec'
type: array
maxItems: 20
title: Preload
type: object
required:
- type
- name
- objective
- actions
- intra_state_navigation_guidelines
- action_guidelines
- boundary_constraints
- exit_conditions
title: ActionState
description: User-facing engagement state with actions and exit conditions.
NameString:
type: string
maxLength: 256
minLength: 1
ContextGraphVersionResponse:
properties:
id:
type: string
format: uuid
title: Id
workspace_id:
type: string
format: uuid
title: Workspace Id
context_graph_id:
type: string
format: uuid
title: Context Graph Id
version:
type: integer
title: Version
description:
type: string
title: Description
states:
items:
$ref: '#/components/schemas/ContextGraphState-Output'
type: array
title: States
new_user_initial_state:
type: string
title: New User Initial State
returning_user_initial_state:
type: string
title: Returning User Initial State
terminal_state:
type: string
title: Terminal State
global_intra_state_navigation_guidelines:
items:
type: string
type: array
title: Global Intra State Navigation Guidelines
global_action_guidelines:
items:
type: string
type: array
title: Global Action Guidelines
global_boundary_constraints:
items:
type: string
type: array
title: Global Boundary Constraints
topology_description:
anyOf:
- type: string
- type: 'null'
title: Topology Description
created_at:
type: string
format: date-time
title: Created At
updated_at:
type: string
format: date-time
title: Updated At
type: object
required:
- id
- workspace_id
- context_graph_id
- version
- description
- states
- new_user_initial_state
- returning_user_initial_state
- terminal_state
- global_intra_state_navigation_guidelines
- global_action_guidelines
- global_boundary_constraints
- topology_description
- created_at
- updated_at
title: ContextGraphVersionResponse
DecisionState-Input:
properties:
type:
type: string
const: decision
title: Type
name:
type: string
title: Name
objective:
type: string
title: Objective
exit_conditions:
items:
$ref: '#/components/schemas/ExitCondition'
type: array
title: Exit Conditions
decision_guidelines:
items:
type: string
type: array
title: Decision Guidelines
default: []
tool_call_specs:
items:
$ref: '#/components/schemas/ToolCallSpec'
type: array
title: Tool Call Specs
default: []
wait_for:
anyOf:
- type: string
enum:
- surface_submission
- human_approval
- type: 'null'
title: Wait For
guardrails:
items:
$ref: '#/components/schemas/Guardrail'
type: array
title: Guardrails
default: []
channel_overrides:
additionalProperties:
$ref: '#/components/schemas/ChannelOverride'
type: object
title: Channel Overrides
turn_policy:
anyOf:
- $ref: '#/components/schemas/TurnPolicy'
- type: 'null'
type: object
required:
- type
- name
- objective
- exit_conditions
title: DecisionState
description: Passthrough routing state — Agent picks an exit condition, no user interaction.
TurnPolicy:
properties:
barge_in_enabled:
type: boolean
title: Barge In Enabled
default: true
greeting_shield_s:
type: number
title: Greeting Shield S
default: 0.0
safety_response:
type: string
enum:
- suspend_forward
- stay_empathize
- alert
title: Safety Response
default: stay_empathize
context_strategy:
type: string
enum:
- full
- compact
title: Context Strategy
default: full
degradation_threshold:
type: integer
minimum: -1.0
title: Degradation Threshold
default: -1
block_forward_call:
type: boolean
title: Block Forward Call
default: false
block_forward_call_after_turns:
type: integer
minimum: -1.0
title: Block Forward Call After Turns
default: -1
stt_eot_threshold:
anyOf:
- type: number
- type: 'null'
title: Stt Eot Threshold
stt_eager_eot_threshold:
anyOf:
- type: number
- type: 'null'
title: Stt Eager Eot Threshold
stt_eot_timeout_ms:
anyOf:
- type: integer
- type: 'null'
title: Stt Eot Timeout Ms
type: object
title: TurnPolicy
description: 'Voice pipeline parameters declared per HSM state.
Lives on ActionState/DecisionState alongside guardrails, wait_for, and
channel_overrides. The HSM state IS the policy — no shadow state machine.
All fields optional with safe defaults (production behavior unchanged
when no turn_policy is set).'
PaginatedResponse_ContextGraphResponse_:
properties:
items:
items:
$ref: '#/components/schemas/ContextGraphResponse'
type: array
title: Items
has_more:
type: boolean
title: Has More
continuation_token:
anyOf:
- type: integer
- type: 'null'
title: Continuation Token
total:
anyOf:
- type: integer
- type: 'null'
title: Total
type: object
required:
- items
- has_more
title: PaginatedResponse[ContextGraphResponse]
CollectionField:
properties:
key:
type: string
title: Key
type:
type: string
title: Type
label:
type: string
title: Label
required:
type: boolean
title: Required
default: true
options:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Options
validation:
anyOf:
- type: string
- type: 'null'
title: Validation
ask_prompt:
anyOf:
- type: string
- type: 'null'
title: Ask Prompt
fhir_path:
anyOf:
- type: string
- type: 'null'
title: Fhir Path
type: object
required:
- key
- type
- label
title: CollectionField
description: A single field to collect during a data collection state.
Guardrail:
properties:
name:
type: string
maxLength: 128
title: Name
description:
type: string
maxLength: 1000
title: Description
enforcement:
type: string
enum:
- hard
- soft
title: Enforcement
default: hard
type: object
required:
- name
- description
title: Guardrail
description: Typed safety rule enforced per-state (not just global freetext guidelines).
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
SearchString:
type: string
maxLength: 200
minLength: 1
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
ToolCallSpec:
properties:
tool_id:
type: string
title: Tool Id
additional_instruction:
type: string
title: Additional Instruction
default: ''
navigate_on_completion:
type: boolean
title: Navigate On Completion
default: false
progress:
anyOf:
- $ref: '#/components/schemas/ProgressHint'
- type: 'null'
result_persistence:
type: string
enum:
- accumulate
- override
title: Result Persistence
default: accumulate
delivery:
type: string
enum:
- interrupt
- queue
title: Delivery
default: interrupt
failure_delivery:
anyOf:
- type: string
enum:
- interrupt
- queue
- type: 'null'
title: Failure Delivery
failure_delivery_by_class:
anyOf:
- additionalProperties:
type: string
enum:
- interrupt
- queue
propertyNames:
$ref: '#/components/schemas/FailureClass'
type: object
- type: 'null'
title: Failure Delivery By Class
execution:
type: string
enum:
- blocking
- background
title: Execution
default: blocking
lifecycle:
type: string
enum:
- coupled
- independent
title: Lifecycle
default: independent
audio_fillers:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Audio Fillers
audio_filler_triggered_after:
anyOf:
- type: number
- type: 'null'
title: Audio Filler Triggered After
type: object
required:
- tool_id
title: ToolCallSpec
description: A tool call that the agent can make in a state.
PreloadSpec:
properties:
tool_id:
type: string
maxLength: 256
title: Tool Id
params:
additionalProperties: true
# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/amigo/refs/heads/main/openapi/amigo-context-graphs-api-openapi.yml