Python
Use a biblioteca requests com uma Session: reaproveita a conexão e mantém os cabeçalhos entre chamadas. Não há SDK oficial.
Requisitos
Python 3.9+ e requests (pip install requests).
Cliente mínimo
Envia o token, a clínica ativa quando houver e transforma o erro padrão em exceção com o requestId.
import requestsBASE_URL = "https://myclinc.leadpoint.com.br/v1"def client(token, clinic_id=None): s = requests.Session() s.headers["Authorization"] = f"Bearer {token}" if clinic_id: s.headers["X-Clinic-Id"] = clinic_id return sdef call(s, method, path, **kwargs): res = s.request(method, BASE_URL + path, timeout=30, **kwargs) if res.status_code == 204: return None body = res.json() if not res.ok: erro = body["error"] raise RuntimeError(f"{res.status_code} {erro['code']}: {erro['message']} (requestId {erro['requestId']})") return bodyPercorrer uma lista
Listas usam cursor: repita enquanto meta.hasNext for verdadeiro. Detalhes em Paginação e filtros.
s = client(token)cursor = Nonewhile True: params = {"limit": 100} if cursor: params["cursor"] = cursor page = call(s, "GET", "/patients", params=params) for paciente in page["data"]: print(paciente["id"], paciente["name"]) if not page["meta"]["hasNext"]: break cursor = page["meta"]["nextCursor"]Exemplo da referência
Gerado do contrato para listar pacientes (GET /v1/patients).
import requestsurl = "https://myclinc.leadpoint.com.br/v1/patients?limit=25"headers = { "Authorization": "Bearer <TOKEN>", "X-Clinic-Id": "<clinic_id>",}res = requests.get(url, headers=headers, timeout=30)if not res.ok: erro = res.json()["error"] raise RuntimeError(f"{erro['code']}: {erro['message']} ({erro['requestId']})")data = res.json()["data"]Troque os marcadores entre < > pelos seus valores. O token nunca deve ficar no código-fonte: leia de uma variável de ambiente.