Journalist Lookup API
GET /api/v1/journalists/lookup finds up to 10 journalists already known to
Medialyst. It accepts a name, name plus outlet, outlet, email address, or
profile URL. Results contain masked addresses and cost 0 credits.
Use the selected result as a journalist_reference in
POST /api/v1/journalists/enrich when you need current contact details.
Before You Start
Create an API key from the Medialyst Developers page,
store it in secret storage or an environment variable such as
MEDIALYST_API_KEY, and send it as a bearer token:
Authorization: Bearer <YOUR_API_KEY>Journalist Lookup is available on paid plans. All examples use
https://medialyst.ai/api as the API base URL.
Look Up a Journalist
curl --request GET \
'https://medialyst.ai/api/v1/journalists/lookup?q=Kara%20Swisher%20at%20New%20York%20Magazine' \
--header "Authorization: Bearer $MEDIALYST_API_KEY"| Query parameter | Required | Description |
|---|---|---|
q | Yes | A journalist name, name and outlet, outlet, email address, or profile URL. Maximum 200 characters. |
The response includes ranked candidates and the resolution decision:
{
"results": [
{
"journalist_id": "j_01HT...",
"name": "Kara Swisher",
"publication": "New York Magazine",
"domain": "nymag.com",
"url": "https://nymag.com/author/kara-swisher/",
"masked_email": "k•••••@nymag.com",
"email_state": "verified",
"last_seen_at": "2026-08-20T15:30:00.000Z"
}
],
"resolution": {
"tier": "deterministic",
"pickedId": "j_01HT...",
"latencyMs": 0,
"reason": "unique_name_and_outlet_match"
}
}email_state is one of verified, catch_all, unknown, user_provided,
seed_import, none, or under_review. masked_email is always masked and
is null when no address may be shown. This endpoint never reveals a full
address.
resolution.tier is deterministic, jev, or list. When pickedId is
present, it identifies the confident match. A list result means the caller
should choose among the candidates or retry with an outlet or domain.
Enrich the Selected Journalist
Pass the selected result into the enrichment endpoint:
{
"from": [
{
"type": "journalist_reference",
"name": "Kara Swisher",
"publication": "New York Magazine",
"domain": "nymag.com",
"url": "https://nymag.com/author/kara-swisher/"
}
]
}Lookup costs 0 credits. Journalist enrichment uses outcome billing: one credit when it delivers a verified address and no credit for a miss.
Rate Limits
Lookup uses the API-wide limit of 60 requests per
minute. A rate-limited request
returns 429 RATE_LIMITED and a Retry-After header.
Common Errors
| HTTP status | Code | Meaning | What to do |
|---|---|---|---|
400 | INVALID_REQUEST | q is missing, empty, or longer than 200 characters. | Send one specific name, outlet, address, or profile URL. |
401 | UNAUTHORIZED | The API key is missing or invalid. | Check the bearer token. |
403 | PAID_PLAN_REQUIRED | The organization is on the free plan. | Upgrade the organization, then retry. |
429 | RATE_LIMITED | The API-wide request limit was reached. | Wait for Retry-After, then retry. |
MCP
The hosted Medialyst MCP server exposes this route as
lookup_journalist. It accepts the same q value and returns the same masked
response. Authentication, plan access, rate limits, and errors match direct
API calls.