Partner API: Overview
Programmatic, server-to-server access to Exlitem search and expert profiles — how it differs from the widget, and where to start.
The Exlitem Partner API gives approved partners programmatic access to the Exlitem expert witness database: hybrid keyword + semantic search (including natural-language queries) and full expert profiles. It's a separate integration path from the search widget covered earlier in this section — use whichever fits how you want to build.
#Partner API vs. the Search Widget
| Search Widget | Partner API | |
|---|---|---|
| Integration | Two lines of HTML, runs in the visitor's browser | Server-to-server, you build the UI |
| Authentication | Publishable key (safe to expose) | Secret key (server-side only, never exposed) |
| Billing | Included in your affiliate tier | Metered per call, invoiced monthly |
| Onboarding | Self-contained once you have a key | Hand-onboarded — talk to your Exlitem contact |
| Best for | Adding search to a page quickly | Custom UIs, backend workflows, bulk integration |
A single partner account can hold either capability, or both — ask your account contact if you'd like the Partner API capability added to an existing affiliate account.
#What You Get
- Search — by name, discipline/specialty, or natural language (e.g. "orthopedic surgeon in California with spinal fusion trial experience, under $700/hr")
- Full expert profiles — bio, credentials, education, publications, case history, rates
- Filters and disciplines — the same taxonomy the Exlitem platform itself uses
Contact details (email, phone) are only returned to accounts with the contact_info
capability, granted per-account by your Exlitem contact — see Search & Profile Endpoints. Without it, link your users to
the expert's Exlitem profile to initiate contact instead.
#Base URL & Format
- Base URL:
https://api.exlitem.com/partner/v1 - Format: JSON over HTTPS. All timestamps are UTC ISO-8601.
- Interactive spec:
GET /partner/v1/openapi.json· Swagger UI at/partner/v1/docs
Every endpoint returns the same envelope:
{
"success": true,
"data": { },
"pagination": { "page": 1, "size": 20, "total": 143, "pages": 8 },
"error": null
}
On error, success is false, data is null, and error carries a stable code, a
human-readable message, and a machine-readable detail object. Always branch on
error.code / error.detail.reason — never on the message text, which may change.
#Next Steps
- Authentication — get your secret key and confirm connectivity.
- Search & Profile Endpoints — the full endpoint reference with sample requests and responses.
- Billing & Usage — how metering and monthly invoicing work.
- Errors, Rate Limits & Integration Checklist — everything you need before going live.