Datasets API endpoint
Returns one journalist by outlet id and slug from dataset id enum value `journalists`. Returns 404 when the outlet is not supported or the journalist is not in the index.
/datasets/journalists/items/{outlet}/{slug}Dataset id enum:
journalistsPath parameters:
outlet: outlet id, e.g. techcrunch. Use the ids returned by facets?facet=outlet.slug: journalist slug within the outlet, e.g. zack-whittaker.Response behavior:
404 when the outlet is not a supported outlet, or the journalist is not in the index.| Field | In the sample | Value in the sample |
|---|---|---|
| outlet_id | Has a value | |
| outlet | Has a value | |
| outlet_domain | Has a value | |
| vertical | Has a value | |
| slug | Has a value | |
| name | Has a value | |
| title | Has a value | |
| bio | Has a value | 293 characters |
| topics | Has a value | 1 entry |
| profile_url | Has a value | techcrunch.com |
| contact_email | Has a value | |
| social_links.bluesky | Has a value | bsky.app |
| social_links.mastodon | Has a value | mastodon.social |
| social_links.signal | Has a value | |
| contact_type | Has a value | |
| normalized_name | Has a value | |
| record_type | Has a value | |
| role_type | Has a value | |
| email_kind | Has a value | |
| email_domain | Has a value | |
| contact_source_url | Has a value | techcrunch.com |
| outreach_readiness_score | Has a value | 100 |
| outreach_readiness_band | Has a value | |
| outreach_readiness_reasons | Has a value | 8 entries |
| outreach_quality_version | Has a value | |
| crawled_at | Has a value | 2026-10-05 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| outlet (path) | string | Yes | Outlet id, e.g. techcrunch. Use the ids returned by facets?facet=outlet | techcrunch | |
| slug (path) | string | Yes | Journalist slug within the outlet, e.g. zack-whittaker | zack-whittaker | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/datasets/journalists/items/techcrunch/zack-whittaker" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"outlet_id": "techcrunch",
"outlet": "TechCrunch",
"outlet_domain": "techcrunch.com",
"vertical": "tech",
"slug": "zack-whittaker",
"name": "Zack Whittaker",
"title": "Security Editor",
"bio": "Zack Whittaker is the security editor at TechCrunch...",
"topics": [
"security"
],
"profile_url": "https://techcrunch.com/author/zack-whittaker/",
"contact_email": "zack.whittaker@techcrunch.com",
"social_links": {
"signal": "zackwhittaker.1337",
"bluesky": "https://bsky.app/profile/zackwhittaker.com"
},
"contact_type": "email",
"normalized_name": "Zack Whittaker",
"record_type": "person",
"role_type": "editor",
"email_kind": "individual_work",
"email_domain": "techcrunch.com",
"contact_source_url": "https://techcrunch.com/author/zack-whittaker/",
"outreach_readiness_score": 98,
"outreach_readiness_band": "ready",
"outreach_readiness_reasons": [
"person_record",
"editorial_role",
"individual_work_email",
"profile_source",
"title_signal",
"topic_signal"
],
"outreach_quality_version": 1,
"crawled_at": "2026-09-14T12:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/datasets.journalistsItemResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | es.JournalistRecord | No | ||||
| data.bio | string | No | ||||
| data.contact_email | string | No | ||||
| data.contact_source_url | string | No | ||||
| data.contact_type | string | No | email | social | none | |||
| data.crawled_at | string | No | RFC3339 | |||
| data.email_domain | string | No | ||||
| data.email_kind | string | No | ||||
| data.name | string | No | ||||
| data.normalized_name | string | No | ||||
| data.outlet | string | No | ||||
| data.outlet_domain | string | No | ||||
| data.outlet_id | string | No | ||||
| data.outreach_quality_version | integer | No | ||||
| data.outreach_readiness_band | string | No | ||||
| data.outreach_readiness_reasons | array | No | ||||
| data.outreach_readiness_score | integer | No | ||||
| data.profile_url | string | No | ||||
| data.record_type | string | No | ||||
| data.role_type | string | No | ||||
| data.slug | string | No | ||||
| data.social_links | object | No | ||||
| data.title | string | No | ||||
| data.topics | array | No | ||||
| data.vertical | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/datasets/journalists/items/techcrunch/zack-whittaker" \
-H "x-api-key: $CRAWLORA_API_KEY"