Prerequisites
Before you begin, you’ll need:- An API key from Penelope (contact us at [email protected])
- A tool to make HTTP requests (curl, Postman, or your preferred language)
Step 1: Authenticate
All Penelope API requests require authentication via thex-api-key header.
200 response. See the Authentication docs for error handling and security best practices.
Step 2: List Lines of Business
Find lines of business you want to query. Lines of business can be filtered by category (commercial, medicare_advantage, medicaid, etc.) and payer.
lob_id values—you’ll use these to filter policy queries.
List LOBs API
View all filtering options and response fields
Step 3: Query Policies by Medical Codes
Find policies related to specific CPT, HCPCS, or ICD-10-CM codes. This is the primary way to check coverage for a procedure or diagnosis.Filtering by Coverage Type
Use theedge_types parameter to filter by relationship type:
COVERS— policy explicitly covers the codeDOES_NOT_COVER— policy explicitly excludes the codeREFERENCES— code is mentioned but coverage isn’t explicit
List Policies API
Full documentation for code-based policy queries
Step 4: Search Policies by Keywords
For exploratory research when you don’t have specific codes, use full-text search across policy titles and summaries.applicability field shows which payers and lines of business this policy applies to. Combine with lob_ids to scope the search to specific lines of business. Set "include_code_groups": true to get associated codes.
Each result includes a policy_id — save it to fetch the policy’s coverage criteria in the next step.
List Policies API
Use the
q parameter for full-text search across policy titles and summariesStep 5: Get Policy Coverage Criteria
Steps 3 and 4 return apolicy_id for each matching policy. Pass that policy_id to the Get Policy endpoint to retrieve the full policy detail — including the criteria_text, the medical-necessity criteria extracted from the policy as LLM-ready markdown.
code_groups (covered/excluded codes), applicability (payers and lines of business), and summary. Use criteria_text when you need the coverage rules themselves — for example to drive a prior-authorization check or surface requirements to a user.
Get Policy API
Retrieve a single policy’s criteria text, code groups, and applicability by
policy_idStep 6: Download Policy Files
To work with the original source document rather than the extracted criteria, download the full file (PDF or HTML) using the policy’spolicy_id.
variant=text to get an LLM-optimized markdown version:
Download Policy API
Get temporary download links for policy documents
Next Steps
Key Concepts
Understand the data model and relationships
Data Coverage
See which payers and plans are covered
Examples
More examples
API Reference
Complete API documentation
