Quickstart
Get your free API key (100 credits/month, no credit card required), then make your first request:
1. Get your API key
Sign up and your key is emailed immediately — no approval process, no sales call.
Get API keys free →2. Make your first request
curl "https://jlft-api.jonlynchfinancial.com/v1/producers/lookup?npn=22048330" \ -H "Authorization: Bearer jlft_pk_your_key_here"
3. Get the response
{
"result": {
"found": true,
"npn": "22048330",
"first_name": "Jonathan",
"last_name": "Lynch",
"licensed_states": ["FL"],
"license_lines": ["Life", "Health", "Annuities"],
"license_status": "ACTIVE",
"appointments": ["Equitable", "North American"],
"cache_hit": false
},
"credits_used": 1,
"credits_remaining": 49
}
Authentication
All API requests require a Bearer token in the Authorization header:
Authorization: Bearer jlft_pk_a1b2c3d4e5f6...
jlft_pk_. Never expose your API key in client-side code.Endpoints
Look up a single insurance producer by NPN, or by license number + state. Returns license, appointment, E&O, and CE data.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| npn | string | optional* | National Producer Number. Most precise — returns exact match. |
| first_name | string | optional* | Required with last_name + state. Not yet available — use npn or license + state. |
| last_name | string | optional* | Required with first_name + state for name lookup. |
| state | string | optional* | 2-letter state code. Required for name lookups. |
* Provide npn, or license + state. Lookup by name is on the roadmap and not yet served. There is no lookup by email or phone.
curl "https://jlft-api.jonlynchfinancial.com/v1/producers/lookup?npn=22048330" \ -H "Authorization: Bearer jlft_pk_your_key" # Name + state lookup curl "https://jlft-api.jonlynchfinancial.com/v1/producers/lookup?first_name=Jon&last_name=Lynch&state=FL" \ -H "Authorization: Bearer jlft_pk_your_key"
Look up up to 100 producers in a single request. Each record can use npn, or license + state lookup. Credits are deducted per found record.
Request Body
{
"records": [
{ "npn": "22048330" },
{ "npn": "8968912" },
{ "license": "G295490", "state": "FL" }
]
}
Response Schema
Every producer result contains these fields.
Identity Fields
| Field | Type | Description |
|---|---|---|
| npn | string | National Producer Number |
| first_name | string | First name |
| last_name | string | Last name |
Insurance-Specific Fields (unique to Forge)
| Field | Type | Description |
|---|---|---|
| licensed_states | string[] | All active licensed states, e.g. ["FL"] |
| license_lines | string[] | License lines: ["Life","Health","Annuities"] |
| license_status | string | "active" | "inactive" | "expired" |
| appointments | string[] | Active carrier appointments by name |
Error Codes
| Status | Code | Meaning |
|---|---|---|
| 401 | unauthorized | Missing or invalid API key |
| 402 | payment_required | Insufficient credits — upgrade your plan |
| 422 | validation_error | Missing required parameters |
| 500 | server_error | Retry — transient error |
Pricing & Credits
Each successful lookup deducts 1 credit. Records enriched within the last 7 days are served from cache at 0 credits.