Skip to main content
GET
/
api
/
v1
/
info
/
suki-medical-form-templates
Gets the list of Suki-defined medical form templates.
curl --request GET \
  --url https://sdp.suki-stage.com/api/v1/info/suki-medical-form-templates \
  --header 'sdp_suki_token: <sdp_suki_token>'
{
  "form_templates": [
    {
      "description": "Standard vitals collection template for adult patients.",
      "name": "Adult Vitals",
      "template_id": "019d4cdc-9319-7d81-ae2e-fd6de7f1b4f0",
      "type": "VITALS_ASSESSMENT",
      "schema": {
        "items": [
          {
            "code": "Q003",
            "id": "respiratory_pattern",
            "kind": "field",
            "options": [
              {
                "code": null,
                "display": "Regular"
              },
              {
                "code": null,
                "display": "Shallow"
              }
            ],
            "pattern": "",
            "question": "Respiratory Pattern / Effort",
            "type": "radio"
          }
        ]
      }
    }
  ]
}

Documentation Index

Fetch the complete documentation index at: https://developer.suki.ai/llms.txt

Use this file to discover all available pages before exploring further.

Use this endpoint to get the list of Suki-defined medical form templates available for form-filling ambient sessions.

Code examples

The code examples below use placeholders and the stage host sdp.suki-stage.com only as examples. For credentials, base URLs, where to run Python or TypeScript, CORS, and cURL, refer to Using code examples in your integration in the API Reference Guidelines.
from typing import Any, TypedDict, cast

import requests

BASE_URL = "https://sdp.suki-stage.com"


class MedicalFormTemplate(TypedDict, total=False):
    description: str
    name: str
    schema: Any
    template_id: str
    type: str


class GetSukiFormTemplatesResponse(TypedDict):
    form_templates: list[MedicalFormTemplate]


class ApiHttpError(RuntimeError):
    """Wrong HTTP status; OpenAPI errors usually include JSON with message + code."""

    def __init__(self, status: int, url: str, detail: str) -> None:
        super().__init__(f"HTTP {status} {url}: {detail}")
        self.status = status
        self.url = url


def _get_expect_json_object(url: str, headers: dict[str, str], expect_status: int) -> dict[str, Any]:
    r = requests.get(url, headers=headers, timeout=60)
    if r.status_code == expect_status:
        data = r.json()
        if isinstance(data, dict):
            return data
        raise ApiHttpError(expect_status, url, "response JSON was not an object")

    detail = ""
    try:
        err = r.json()
        if isinstance(err, dict) and isinstance(err.get("message"), str):
            detail = err["message"]
    except ValueError:
        detail = (r.text or "")[:500]
    raise ApiHttpError(r.status_code, url, detail or "(no body)")


def get_suki_medical_form_templates(suki_token: str) -> GetSukiFormTemplatesResponse:
    """GET /api/v1/info/suki-medical-form-templates (sdp_suki_token header required). HTTP 200."""
    url = f"{BASE_URL}/api/v1/info/suki-medical-form-templates"
    data = _get_expect_json_object(url, {"sdp_suki_token": suki_token}, 200)
    ft = data.get("form_templates")
    if not isinstance(ft, list):
        raise ValueError(f"{url}: 200 response missing form_templates array")
    return cast(GetSukiFormTemplatesResponse, {"form_templates": ft})


if __name__ == "__main__":
    try:
        out = get_suki_medical_form_templates("YOUR_SUKI_TOKEN")
        print(len(out["form_templates"]))
    except (ApiHttpError, ValueError) as e:
        print(e)
If this endpoint returns an empty list, contact support.

Headers

sdp_suki_token
string
required

sdp_suki_token

Response

Success Response

Response body for the /info/suki-medical-form-templates endpoint

form_templates
object[]

List of Suki-defined medical form templates

Last modified on May 22, 2026