TaigaTaiga

Quickstart

End-to-end integration in 3 API calls.

Three API calls to go from therapy note to insurance claim. Before you start, create an API key in the Partner Portal.

1. Onboard a provider (one-time)

Register the therapist before submitting sessions on their behalf.

const response = await fetch("https://api.usetaiga.com/api/v1/partner/providers", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    provider: {
      firstName: "Jane",
      lastName: "Smith",
      npi: "1234567890",
      taxonomyCode: "103T00000X",
    },
    practice: {
      name: "Smith Therapy Associates",
      taxId: "123456789",
      address: {
        street: "100 Main St",
        city: "New York",
        state: "NY",
        zip: "10001",
      },
    },
  }),
});

const data = await response.json();
import requests

response = requests.post(
    "https://api.usetaiga.com/api/v1/partner/providers",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "provider": {
            "firstName": "Jane",
            "lastName": "Smith",
            "npi": "1234567890",
            "taxonomyCode": "103T00000X",
        },
        "practice": {
            "name": "Smith Therapy Associates",
            "taxId": "123456789",
            "address": {
                "street": "100 Main St",
                "city": "New York",
                "state": "NY",
                "zip": "10001",
            },
        },
    },
)

data = response.json()
curl -X POST https://api.usetaiga.com/api/v1/partner/providers \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": {
      "firstName": "Jane",
      "lastName": "Smith",
      "npi": "1234567890",
      "taxonomyCode": "103T00000X"
    },
    "practice": {
      "name": "Smith Therapy Associates",
      "taxId": "123456789",
      "address": {
        "street": "100 Main St",
        "city": "New York",
        "state": "NY",
        "zip": "10001"
      }
    }
  }'
Response
{
  "providerId": "uuid",
  "practiceId": "uuid",
  "providerNpi": "1234567890",
  "practiceName": "Smith Therapy Associates",
  "status": "created"
}

2. Submit a session (after each appointment)

Send the patient info, diagnosis codes, and session duration. No clinical note needed — we derive the CPT code from the duration automatically.

const response = await fetch("https://api.usetaiga.com/api/v1/partner/sessions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    externalSessionId: "session-abc-123",
    providerNpi: "1234567890",
    patient: {
      firstName: "Sarah",
      lastName: "Johnson",
      dateOfBirth: "1988-05-15",
      gender: "F",
      address: {
        street: "2222 Random St",
        city: "New York",
        state: "NY",
        zip: "10001",
      },
      insurance: {
        memberId: "MEM-2026-0042",
        payerName: "Cigna",
      },
    },
    session: {
      dateOfService: "2026-04-01",
      placeOfService: "telehealth",
      durationMinutes: 45,
      diagnosisCodes: [
        { code: "F32.1", description: "Major depressive disorder, single episode, moderate" },
      ],
    },
  }),
});

const data = await response.json();
import requests

response = requests.post(
    "https://api.usetaiga.com/api/v1/partner/sessions",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "externalSessionId": "session-abc-123",
        "providerNpi": "1234567890",
        "patient": {
            "firstName": "Sarah",
            "lastName": "Johnson",
            "dateOfBirth": "1988-05-15",
            "gender": "F",
            "address": {
                "street": "2222 Random St",
                "city": "New York",
                "state": "NY",
                "zip": "10001",
            },
            "insurance": {
                "memberId": "MEM-2026-0042",
                "payerName": "Cigna",
            },
        },
        "session": {
            "dateOfService": "2026-04-01",
            "placeOfService": "telehealth",
            "durationMinutes": 45,
            "diagnosisCodes": [
                {"code": "F32.1", "description": "Major depressive disorder, single episode, moderate"}
            ],
        },
    },
)

data = response.json()
curl -X POST https://api.usetaiga.com/api/v1/partner/sessions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "externalSessionId": "session-abc-123",
    "providerNpi": "1234567890",
    "patient": {
      "firstName": "Sarah",
      "lastName": "Johnson",
      "dateOfBirth": "1988-05-15",
      "gender": "F",
      "address": {
        "street": "2222 Random St",
        "city": "New York",
        "state": "NY",
        "zip": "10001"
      },
      "insurance": {
        "memberId": "MEM-2026-0042",
        "payerName": "Cigna"
      }
    },
    "session": {
      "dateOfService": "2026-04-01",
      "placeOfService": "telehealth",
      "durationMinutes": 45,
      "diagnosisCodes": [
        { "code": "F32.1", "description": "Major depressive disorder, single episode, moderate" }
      ]
    }
  }'
Response
{
  "sessionId": "uuid",
  "externalSessionId": "session-abc-123",
  "status": "processing",
  "message": "Session received with codes. Ready for review. Poll GET /api/v1/partner/sessions/{sessionId} for status."
}

No clinical note or CPT codes needed — just diagnosis codes and session duration. You can also send explicit CPT codes, a clinical note, or all of the above. See Submit Session for all options.

3. Check status

Poll the session to see where it is in the billing pipeline.

const response = await fetch(
  "https://api.usetaiga.com/api/v1/partner/sessions/SESSION_ID",
  {
    headers: {
      "Authorization": "Bearer YOUR_API_KEY",
    },
  }
);

const data = await response.json();
import requests

response = requests.get(
    "https://api.usetaiga.com/api/v1/partner/sessions/SESSION_ID",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
)

data = response.json()
curl https://api.usetaiga.com/api/v1/partner/sessions/SESSION_ID \
  -H "Authorization: Bearer YOUR_API_KEY"
Response
{
  "sessionId": "uuid",
  "status": "processing",
  "message": "Session is being processed.",
  "patientName": "Sarah Johnson",
  "dateOfService": "2026-04-01"
}

That's it. See the full endpoint references for all available fields:

On this page