SOAPNoteAPI
Multiple5 min4 steps

Add Billing Codes to SOAP Notes

Include ICD-10 and CPT codes alongside your SOAP note to streamline clinical billing workflows.

1

Request billing codes

Add "include_billing_codes": true to your request body. The API will return ICD-10 and CPT codes alongside the SOAP note sections.
Terminal
curl -X POST https://api.soapnoteapi.com/v1/note \
  -H "Authorization: Bearer snapi_sk_test_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "transcript": "Patient is a 55-year-old male presenting with chest pain radiating to the left arm for 2 hours. History of hyperlipidemia and smoking. ECG shows ST elevation in leads II, III, aVF. Troponin I elevated at 2.4. Assessment: acute ST-elevation myocardial infarction. Plan: activate cath lab, aspirin 325mg, heparin drip, cardiology consult stat.",
    "specialty": "ems",
    "include_billing_codes": true
  }'
2

Parse ICD-10 codes from the response

The billing_codes.icd10 array contains diagnosis codes derived from the clinical assessment. Each entry includes the code and its description.
JSON
# Response includes billing_codes object
{
  "noteId": "note_def456",
  "subjective": "...",
  "objective": "...",
  "assessment": "...",
  "plan": "...",
  "billing_codes": {
    "icd10": [
      { "code": "I21.19", "description": "ST elevation myocardial infarction involving other coronary artery of inferior wall" },
      { "code": "E78.5", "description": "Dyslipidemia, unspecified" },
      { "code": "F17.210", "description": "Nicotine dependence, cigarettes, uncomplicated" }
    ],
    "cpt": [
      { "code": "99285", "description": "Emergency department visit, high complexity" },
      { "code": "93010", "description": "Electrocardiogram, interpretation and report" }
    ]
  },
  "billing_codes_disclaimer": "Recommended codes for review. Not a substitute for professional coding. Verify all codes before submission.",
  "expires_at": "2026-09-21T00:00:00Z"
}
3

Parse CPT codes from the response

The billing_codes.cpt array contains procedure codes. Use them to pre-populate your billing system or flag for coder review.
Python
import os
import requests

api_key = os.environ["SOAPNOTEAPI_KEY"]

response = requests.post(
    "https://api.soapnoteapi.com/v1/note",
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    json={
        "transcript": "Patient is a 55-year-old male presenting with chest pain...",
        "specialty": "ems",
        "include_billing_codes": True,
    },
)

note = response.json()
codes = note["billing_codes"]

print("=== ICD-10 Codes ===")
for dx in codes["icd10"]:
    print(f"  {dx['code']}  {dx['description']}")

print("\n=== CPT Codes ===")
for proc in codes["cpt"]:
    print(f"  {proc['code']}  {proc['description']}")
4

Display alongside the SOAP note

In a frontend application, render the billing codes in a sidebar or collapsible section next to the SOAP note for easy review and copy.
JavaScript
// Node.js / TypeScript example
const response = await fetch("https://api.soapnoteapi.com/v1/note", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.SOAPNOTEAPI_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    transcript: "Patient is a 55-year-old male presenting with chest pain...",
    specialty: "ems",
    include_billing_codes: true,
  }),
});

const note = await response.json();

// Display SOAP sections
for (const section of ["subjective", "objective", "assessment", "plan"]) {
  console.log(`\n--- ${section.toUpperCase()} ---`);
  console.log(note[section]);
}

// Display billing codes
console.log("\n--- BILLING CODES ---");
console.log("ICD-10:");
note.billing_codes.icd10.forEach((dx) => console.log(`  ${dx.code}  ${dx.description}`));
console.log("CPT:");
note.billing_codes.cpt.forEach((proc) => console.log(`  ${proc.code}  ${proc.description}`));

Ready to start building?

Get a free API key and $10 in credit — no credit card required.

Get your free API key