Work with this as data
Every API 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 apis
7 MCP tools reach this
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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/amigo-m42-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
OpenAPI Specification
openapi: 3.2.0
info:
title: Amigo Account M42 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: M42
paths:
/v1/{workspace_id}/m42/patient-topology:
get:
tags:
- M42
summary: List Patient Topology
description: Patient-level UMAP coordinates + predicted risk for the Self-Image scatter. Hand-seeded demo data (no ML training). Paginated.
operationId: list_patient_topology_v1__workspace_id__m42_patient_topology_get
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: cluster
in: query
required: false
schema:
anyOf:
- type: string
minLength: 1
maxLength: 64
- type: 'null'
title: Cluster
- name: risk_tier
in: query
required: false
schema:
anyOf:
- type: integer
maximum: 4
minimum: 0
- type: 'null'
title: Risk Tier
- name: limit
in: query
required: false
schema:
type: integer
maximum: 50000
minimum: 1
default: 10000
title: Limit
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
default: 0
title: Offset
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PatientTopologyResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/m42/district-metrics:
get:
tags:
- M42
summary: List District Metrics
description: Per-district t2d observed vs predicted incidence, capacity gap, and unmet-demand score. Hand-seeded demo data.
operationId: list_district_metrics_v1__workspace_id__m42_district_metrics_get
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: limit
in: query
required: false
schema:
type: integer
maximum: 500
minimum: 1
default: 50
title: Limit
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
default: 0
title: Offset
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/DistrictMetricsResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/m42/anomaly-alerts:
get:
tags:
- M42
summary: List Anomaly Alerts
description: Emerging health anomalies with inline causal decomposition, recommended actions, and unacted projection. Hand-seeded demo data.
operationId: list_anomaly_alerts_v1__workspace_id__m42_anomaly_alerts_get
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: severity
in: query
required: false
schema:
anyOf:
- enum:
- high
- medium
- low
type: string
- type: 'null'
title: Severity
- name: limit
in: query
required: false
schema:
type: integer
maximum: 500
minimum: 1
default: 50
title: Limit
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
default: 0
title: Offset
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/AnomalyAlertResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/m42/forecast-fan:
get:
tags:
- M42
summary: List Forecast Fan
description: Forecast fan points (t, median, lower/upper 95% CI) for a named run + scenario. Used by the Sensorium observational fan and the Sims dual-envelope overlay.
operationId: list_forecast_fan_v1__workspace_id__m42_forecast_fan_get
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: run_id
in: query
required: false
schema:
anyOf:
- type: string
minLength: 1
maxLength: 128
- type: 'null'
title: Run Id
- name: scenario
in: query
required: false
schema:
anyOf:
- enum:
- baseline
- with_policy
- observational
type: string
- type: 'null'
title: Scenario
- name: limit
in: query
required: false
schema:
type: integer
maximum: 5000
minimum: 1
default: 1000
title: Limit
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
default: 0
title: Offset
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ForecastFanResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/m42/positive-signals:
get:
tags:
- M42
summary: List Positive Signals
description: Small set of positive-trend headline metrics for the Sensorium hero strip. Hand-seeded demo data.
operationId: list_positive_signals_v1__workspace_id__m42_positive_signals_get
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: limit
in: query
required: false
schema:
type: integer
maximum: 200
minimum: 1
default: 50
title: Limit
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
default: 0
title: Offset
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PositiveSignalResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/m42/anomalies/ranked:
get:
tags:
- M42
summary: List Anomalies Ranked
description: Ranked anomalies for a single indicator (default ``t2d_risk``). Includes inline decomposition + district centroids for the map. Schema-probes the alerts table so it works pre- and post-multi-indicator pipeline expansion.
operationId: list_anomalies_ranked_v1__workspace_id__m42_anomalies_ranked_get
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: indicator
in: query
required: false
schema:
anyOf:
- type: string
minLength: 1
maxLength: 32
- type: 'null'
title: Indicator
- name: limit
in: query
required: false
schema:
type: integer
maximum: 500
minimum: 1
default: 50
title: Limit
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
default: 0
title: Offset
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/RankedAnomalyResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/m42/clusters/summary:
get:
tags:
- M42
summary: List Cluster Summary
description: Per-cluster cohort stats — size, mean age/BMI/HbA1c, prediabetes / T2D %, predicted-risk mean. Powers the Patient Profile cluster strip.
operationId: list_cluster_summary_v1__workspace_id__m42_clusters_summary_get
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: limit
in: query
required: false
schema:
type: integer
maximum: 500
minimum: 1
default: 50
title: Limit
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
default: 0
title: Offset
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ClusterSummaryResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/m42/clusters/forecast:
get:
tags:
- M42
summary: List Cluster Forecast
description: Per-cluster forecast fan points for the Patient Profile multi-line chart. ``focus_area`` defaults to T2D for backward compat.
operationId: list_cluster_forecast_v1__workspace_id__m42_clusters_forecast_get
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: focus_area
in: query
required: false
schema:
anyOf:
- type: string
minLength: 1
maxLength: 32
- type: 'null'
title: Focus Area
- name: limit
in: query
required: false
schema:
type: integer
maximum: 5000
minimum: 1
default: 1000
title: Limit
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
default: 0
title: Offset
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ClusterForecastResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/m42/forecast-fan/draws:
get:
tags:
- M42
summary: List Forecast Draws
description: Sampled subset of raw Poisson bootstrap draws (faint spaghetti curves behind the forecast fan).
operationId: list_forecast_draws_v1__workspace_id__m42_forecast_fan_draws_get
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: run_id
in: query
required: false
schema:
type: string
minLength: 1
maxLength: 128
default: observational-territory-t2d
title: Run Id
- name: scenario
in: query
required: false
schema:
type: string
minLength: 1
maxLength: 32
default: baseline
title: Scenario
- name: sample
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
default: 20
title: Sample
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ForecastDrawsResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/m42/model-registry:
get:
tags:
- M42
summary: List Model Registry
description: Fitted GLM coefficients, training-set size, AUROC for each focus-area model. Inline JSON kept as strings — clients parse.
operationId: list_model_registry_v1__workspace_id__m42_model_registry_get
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: limit
in: query
required: false
schema:
type: integer
maximum: 500
minimum: 1
default: 50
title: Limit
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
default: 0
title: Offset
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ModelRegistryResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/m42/stratified-fits:
get:
tags:
- M42
summary: List Stratified Fits
description: Per-cohort x region GLM fits with pooled fallback. Drives the dashboard's outcome-by-segment comparison view.
operationId: list_stratified_fits_v1__workspace_id__m42_stratified_fits_get
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: outcome_key
in: query
required: false
schema:
anyOf:
- type: string
minLength: 1
maxLength: 64
- type: 'null'
title: Outcome Key
- name: limit
in: query
required: false
schema:
type: integer
maximum: 500
minimum: 1
default: 50
title: Limit
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
default: 0
title: Offset
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/StratifiedFitsResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/m42/patients/{patient_id}/labs:
get:
tags:
- M42
summary: List Patient Labs
description: Patient-level bronze lab rows ordered by observation_date. Drives the mini-trajectory charts in the Patient Profile drawer.
operationId: list_patient_labs_v1__workspace_id__m42_patients__patient_id__labs_get
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: patient_id
in: path
required: true
schema:
type: string
minLength: 1
maxLength: 64
title: Patient Id
- name: limit
in: query
required: false
schema:
type: integer
maximum: 2000
minimum: 1
default: 500
title: Limit
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
default: 0
title: Offset
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PatientLabsResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/m42/patients/{patient_id}/note:
get:
tags:
- M42
summary: Get Patient Note
description: Patient's synthetic clinical note + LLM-extracted structured fields. NLP sample is 500 patients — returns 404 outside that set.
operationId: get_patient_note_v1__workspace_id__m42_patients__patient_id__note_get
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: patient_id
in: path
required: true
schema:
type: string
minLength: 1
maxLength: 64
title: Patient Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PatientNoteResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/m42/notes/rollup:
get:
tags:
- M42
summary: Get Notes Rollup
description: Cohort-wide (or per-cluster / per-district) rollup of NLP extractions joined onto patient-topology risk. Surfaces which narrative signals correlate with higher predicted T2D risk.
operationId: get_notes_rollup_v1__workspace_id__m42_notes_rollup_get
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: cluster
in: query
required: false
schema:
anyOf:
- type: string
minLength: 1
maxLength: 64
- type: 'null'
title: Cluster
- name: district
in: query
required: false
schema:
anyOf:
- type: string
minLength: 1
maxLength: 64
- type: 'null'
title: District
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/NoteRollupResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/m42/catalog:
get:
tags:
- M42
summary: List Catalog
description: Per-table layer + description + row count for the Catalog page.
operationId: list_catalog_v1__workspace_id__m42_catalog_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/M42CatalogResponse'
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
/v1/{workspace_id}/m42/catalog/{table}/columns:
get:
tags:
- M42
summary: Describe Table
description: Column metadata (name, type, comment) for one allowlisted m42 table.
operationId: describe_table_v1__workspace_id__m42_catalog__table__columns_get
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: table
in: path
required: true
schema:
type: string
minLength: 1
maxLength: 64
title: Table
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ColumnsResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/m42/catalog/{table}/sample:
get:
tags:
- M42
summary: Sample Table
description: Up to ``limit`` raw rows from one allowlisted m42 table for preview.
operationId: sample_table_v1__workspace_id__m42_catalog__table__sample_get
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: table
in: path
required: true
schema:
type: string
minLength: 1
maxLength: 64
title: Table
- name: limit
in: query
required: false
schema:
type: integer
maximum: 50
minimum: 1
default: 5
title: Limit
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SampleResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/{workspace_id}/m42/features:
get:
tags:
- M42
summary: List Features
description: Allowlist of feature columns (continuous or binary) for the Explore UI.
operationId: list_features_v1__workspace_id__m42_features_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/FeaturesResponse'
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
/v1/{workspace_id}/m42/features/distribution:
get:
tags:
- M42
summary: Feature Distribution
description: Histogram bins for one allowlisted feature, stratified by ``y_t2d_1yr`` outcome. Continuous features get ``bins`` buckets; binary features collapse to 2.
operationId: feature_distribution_v1__workspace_id__m42_features_distribution_get
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: feature
in: query
required: true
schema:
type: string
minLength: 1
maxLength: 64
title: Feature
- name: bins
in: query
required: false
schema:
type: integer
maximum: 40
minimum: 2
default: 20
title: Bins
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/FeatureDistributionResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
PatientNoteExtractions:
properties:
symptoms:
items:
type: string
type: array
title: Symptoms
concerns:
items:
type: string
type: array
title: Concerns
medications_planned:
items:
type: string
type: array
title: Medications Planned
hba1c_sentiment:
anyOf:
- type: string
- type: 'null'
title: Hba1C Sentiment
activity_level:
anyOf:
- type: string
- type: 'null'
title: Activity Level
smoking_status:
anyOf:
- type: string
- type: 'null'
title: Smoking Status
food_pattern:
anyOf:
- type: string
- type: 'null'
title: Food Pattern
n_symptoms:
type: integer
title: N Symptoms
default: 0
n_concerns:
type: integer
title: N Concerns
default: 0
type: object
required:
- symptoms
- concerns
- medications_planned
title: PatientNoteExtractions
ModelRegistryResponse:
properties:
workspace_id:
type: string
format: uuid
title: Workspace Id
count:
type: integer
title: Count
items:
items:
$ref: '#/components/schemas/ModelRegistryRow'
type: array
title: Items
type: object
required:
- workspace_id
- count
- items
title: ModelRegistryResponse
ModelRegistryRow:
properties:
workspace_id:
anyOf:
- type: string
format: uuid
- type: string
const: labs
title: Workspace Id
model_id:
type: string
title: Model Id
name:
anyOf:
- type: string
- type: 'null'
title: Name
focus_area:
anyOf:
- type: string
- type: 'null'
title: Focus Area
algorithm:
anyOf:
- type: string
- type: 'null'
title: Algorithm
version:
anyOf:
- type: string
- type: 'null'
title: Version
trained_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Trained At
training_set_size:
anyOf:
- type: integer
- type: 'null'
title: Training Set Size
coefficients_json:
anyOf:
- type: string
- type: 'null'
title: Coefficients Json
metrics_json:
anyOf:
- type: string
- type: 'null'
title: Metrics Json
status:
anyOf:
- type: string
- type: 'null'
title: Status
type: object
required:
- workspace_id
- model_id
title: ModelRegistryRow
StratifiedFitsResponse:
properties:
workspace_id:
type: string
format: uuid
title: Workspace Id
count:
type: integer
title: Count
items:
items:
$ref: '#/components/schemas/StratifiedFitRow'
type: array
title: Items
type: object
required:
- workspace_id
- count
- items
title: StratifiedFitsResponse
ColumnsResponse:
properties:
workspace_id:
type: string
format: uuid
title: Workspace Id
count:
type: integer
title: Count
items:
items:
$ref: '#/components/schemas/ColumnInfo'
type: array
title: Items
type: object
required:
- workspace_id
- count
- items
title: ColumnsResponse
PatientNoteResponse:
properties:
workspace_id:
type: string
format: uuid
title: Workspace Id
patient_id:
type: string
title: Patient Id
authored_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Authored At
author:
anyOf:
- type: string
- type: 'null'
title: Author
note_text:
type: string
title: Note Text
extractions:
$ref: '#/components/schemas/PatientNoteExtractions'
type: object
required:
- workspace_id
- patient_id
- note_text
- extractions
title: PatientNoteResponse
PatientLabRow:
properties:
patient_id:
type: string
title: Patient Id
observation_date:
anyOf:
- type: string
- type: 'null'
title: Observation Date
test_name:
type: string
title: Test Name
value:
anyOf:
- type: number
- type: 'null'
title: Value
units:
anyOf:
- type: string
- type: 'null'
title: Units
loinc_code:
anyOf:
- type: string
- type: 'null'
title: Loinc Code
type: object
required:
- patient_id
- test_name
title: PatientLabRow
ClusterForecastResponse:
properties:
workspace_id:
type: string
format: uuid
title: Workspace Id
count:
type: integer
title: Count
items:
items:
$ref: '#/components/schemas/ClusterForecastPointRow'
type: array
title: Items
type: object
required:
- workspace_id
- count
- items
title: ClusterForecastResponse
HistogramBin:
properties:
x_lo:
type: number
title: X Lo
x_hi:
type: number
title: X Hi
y0:
type: integer
title: Y0
y1:
type: integer
title: Y1
type: object
required:
- x_lo
- x_hi
- y0
- y1
title: HistogramBin
NoteRollupCategoryEntry:
properties:
value:
type: string
title: Value
n:
type: integer
title: N
pct:
type: number
title: Pct
mean_risk:
type: number
title: Mean Risk
risk_lift:
type: number
title: Risk Lift
type: object
required:
- value
- n
- pct
- mean_risk
- risk_lift
title: NoteRollupCategoryEntry
ForecastFanResponse:
properties:
workspace_id:
type: string
format: uuid
title: Workspace Id
count:
type: integer
title: Count
items:
items:
$ref: '#/components/schemas/ForecastFanPointRow'
type: array
title: Items
type: object
required:
- workspace_id
- coun
# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/amigo/refs/heads/main/openapi/amigo-m42-api-openapi.yml