Amigo Workspaces API
The Workspaces API from Amigo — 8 operation(s) for workspaces.
The Workspaces API from Amigo — 8 operation(s) for workspaces.
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-workspaces-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
openapi: 3.2.0
info:
title: Platform Workspaces API
description: Management API for the Amigo platform. Provides CRUD operations for workspaces, API keys, and resources.
version: 1.0.0
servers:
- url: https://api.platform.amigo.ai
description: Production
security:
- BearerAuth: []
tags:
- name: Workspaces
paths:
/v1/workspaces/{workspace_id}:
get:
tags:
- Workspaces
summary: Get a workspace
description: Retrieve a workspace by ID. Requires `Workspace.view` permission.
operationId: get-workspace
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceResponse'
'404':
description: Workspace not found.
'403':
description: Insufficient permissions.
'401':
description: Missing or invalid API key.
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
patch:
tags:
- Workspaces
summary: Update a workspace
description: Update workspace fields. Requires `Workspace.update` permission.
operationId: update-workspace
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateWorkspaceRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceResponse'
'404':
description: Workspace not found.
'403':
description: Insufficient permissions.
'401':
description: Missing or invalid API key.
'422':
description: Invalid request body, or region provided (immutable).
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
/v1/workspaces:
get:
tags:
- Workspaces
summary: List workspaces
description: List workspaces accessible to this API key. Requires `Workspace.view` permission.
operationId: list-workspaces
parameters:
- 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_WorkspaceResponse_'
'403':
description: Insufficient permissions.
'401':
description: Missing or invalid API key.
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/workspaces/{workspace_id}/provision:
post:
tags:
- Workspaces
summary: Provision workspace resources
description: Seed default integrations and mark workspace as provisioned. Idempotent. Requires `Workspace.update` permission.
operationId: provision-workspace
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ProvisionResponse'
'404':
description: Workspace not found.
'403':
description: Insufficient permissions.
'401':
description: Missing or invalid API key.
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
/v1/workspaces/{workspace_id}/archive:
post:
tags:
- Workspaces
summary: Archive a workspace
description: Archive a workspace and remove it from active access flows while preserving underlying data. Requires owner access and slug confirmation.
operationId: archive-workspace
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ArchiveWorkspaceRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceResponse'
'404':
description: Workspace not found.
'403':
description: Only owners can archive a workspace.
'401':
description: Missing or invalid API key.
'422':
description: Workspace slug confirmation did not match.
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
/v1/workspaces/{workspace_id}/environment-check:
get:
tags:
- Workspaces
summary: Pre-check environment conversion
description: Returns compliance warnings for converting between staging and production. Does not mutate.
operationId: check-environment-conversion
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: target
in: query
required: false
schema:
enum:
- production
- staging
type: string
default: production
title: Target
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/EnvironmentCheckResponse'
'403':
description: Insufficient permissions.
'401':
description: Missing or invalid API key.
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/workspaces/{workspace_id}/convert-environment:
post:
tags:
- Workspaces
summary: Convert workspace environment
description: Convert workspace between staging and production. Requires slug confirmation.
operationId: convert-workspace-environment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConvertEnvironmentRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceResponse'
'404':
description: Workspace not found.
'403':
description: Insufficient permissions.
'401':
description: Missing or invalid API key.
'422':
description: Workspace slug confirmation did not match.
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
/v1/workspaces/{workspace_id}/test-caller-numbers:
get:
tags:
- Workspaces
summary: Get test caller numbers
description: Get phone numbers configured as test callers for this workspace.
operationId: get-test-caller-numbers
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/TestCallerNumbersResponse'
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
put:
tags:
- Workspaces
summary: Update test caller numbers
description: Set phone numbers to be treated as test callers. Calls from these numbers are tagged source='test' and excluded from billing, scores, analytics, outbound EHR sync, and entity views.
operationId: update-test-caller-numbers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TestCallerNumbersRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/TestCallerNumbersResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
/v1/workspaces/{workspace_id}/test-credential-ids:
get:
tags:
- Workspaces
summary: Get test credential IDs
description: Get the credential IDs configured as test principals for this workspace's text channel.
operationId: get-test-credential-ids
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/TestCredentialIdsResponse'
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
put:
tags:
- Workspaces
summary: Update test credential IDs
description: Set credential IDs to be treated as test principals. Text turns from these credentials are tagged source='test' and excluded from billing, scores, analytics, outbound EHR sync, and entity views.
operationId: update-test-credential-ids
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TestCredentialIdsRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/TestCredentialIdsResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
components:
schemas:
ArchiveWorkspaceRequest:
properties:
slug:
$ref: '#/components/schemas/SlugString'
type: object
required:
- slug
title: ArchiveWorkspaceRequest
UpdateWorkspaceRequest:
properties:
name:
anyOf:
- $ref: '#/components/schemas/StrippedNonemptyString'
- type: 'null'
environment:
anyOf:
- type: string
enum:
- production
- staging
- development
- type: 'null'
title: Environment
region:
anyOf:
- type: string
enum:
- us-east-1
- ap-southeast-2
- eu-central-1
- ca-central-1
- type: 'null'
title: Region
connector_type:
anyOf:
- type: string
enum:
- epic
- cerner
- allscripts
- fhir_store
- athenahealth
- charmhealth
- eclinicalworks
- meditab
- type: 'null'
title: Connector Type
type: object
title: UpdateWorkspaceRequest
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
ConvertEnvironmentRequest:
properties:
target:
type: string
enum:
- production
- staging
title: Target
confirm_slug:
$ref: '#/components/schemas/SlugString'
type: object
required:
- target
- confirm_slug
title: ConvertEnvironmentRequest
PaginatedResponse_WorkspaceResponse_:
properties:
items:
items:
$ref: '#/components/schemas/WorkspaceResponse'
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[WorkspaceResponse]
TestCallerNumbersResponse:
properties:
numbers:
items:
type: string
type: array
title: Numbers
type: object
required:
- numbers
title: TestCallerNumbersResponse
TestCredentialIdsResponse:
properties:
credential_ids:
items:
type: string
format: uuid
type: array
title: Credential Ids
type: object
required:
- credential_ids
title: TestCredentialIdsResponse
TestCallerNumbersRequest:
properties:
numbers:
items:
type: string
type: array
maxItems: 100
title: Numbers
type: object
required:
- numbers
title: TestCallerNumbersRequest
EnvironmentCheckResponse:
properties:
current:
type: string
title: Current
target:
type: string
title: Target
warnings:
items:
type: string
type: array
title: Warnings
type: object
required:
- current
- target
- warnings
title: EnvironmentCheckResponse
TestCredentialIdsRequest:
properties:
credential_ids:
items:
type: string
format: uuid
type: array
maxItems: 100
title: Credential Ids
type: object
required:
- credential_ids
title: TestCredentialIdsRequest
WorkspaceResponse:
properties:
id:
type: string
format: uuid
title: Id
slug:
type: string
title: Slug
name:
type: string
title: Name
environment:
type: string
title: Environment
backend_org_id:
anyOf:
- type: string
- type: 'null'
title: Backend Org Id
region:
type: string
title: Region
connector_type:
anyOf:
- type: string
- type: 'null'
title: Connector Type
provisioned_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Provisioned At
created_at:
type: string
format: date-time
title: Created At
updated_at:
type: string
format: date-time
title: Updated At
type: object
required:
- id
- slug
- name
- environment
- backend_org_id
- region
- connector_type
- provisioned_at
- created_at
- updated_at
title: WorkspaceResponse
SlugString:
type: string
maxLength: 63
minLength: 2
pattern: ^[a-z0-9][a-z0-9-]*[a-z0-9]$
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
StrippedNonemptyString:
type: string
minLength: 1
ProvisionResponse:
properties:
workspace:
$ref: '#/components/schemas/WorkspaceResponse'
type: object
required:
- workspace
title: ProvisionResponse
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: API key issued via `POST /v1/{workspace_id}/api-keys`. Pass the returned `api_key` value as a Bearer token.