Salon API endpoint
Returns a Salon writer's profile by canonical `url` (`https://www.salon.com/writer/<slug>`): name, `job_title`, `bio`, `image_url`, `same_as` links and a list of articles. Each article carries only a title and URL, with no date or category. Job title, photo and `same_as` appear only when the writer page shows them.
/salon/authorQuery parameters:
url (required): a canonical https://www.salon.com/writer/<slug> URL.job_title, image_url, and same_as reflect whatever Salon's own writer page shows for that author -- not every writer page carries a job title, photo, or a linked social account. Each article in articles carries only a title and URL; Salon's writer-page article list does not render a per-card publish date or category.
Example response (truncated):
{"code":200,"data":{"url":"https://www.salon.com/writer/troy_farah","name":"Troy Farah","job_title":"News Editor","bio":"Troy Farah is Salon's news editor and author of our morning newsletter, Crash Course. Previously he served as the national affairs editor and science and health editor.","image_url":"https://www.salon.com/app/uploads/2026/04/troy-farah.jpg","same_as":["https://x.com/filth_filler"],"articles":[{"title":"Trump admin spars with Iran at UN meeting","url":"https://www.salon.com/2026/09/23/trump-admin-spars-with-iran-at-un-meeting/"}]}}
| Field | Filled in, of 24 checked | Values in the sample |
|---|---|---|
| title | 24 | median 44 characters |
| url | 24 | salon.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| url | string | Yes | Canonical Salon writer URL | https://www.salon.com/writer/troy_farah | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/salon/author?url=https%3A%2F%2Fwww.salon.com%2Fwriter%2Ftroy_farah" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"url": "https://www.salon.com/writer/troy_farah",
"name": "Troy Farah",
"job_title": "News Editor",
"bio": "Troy Farah is Salon's news editor and author of our morning newsletter, Crash Course. Previously he served as the national affairs editor and science and health editor.",
"image_url": "https://www.salon.com/app/uploads/2026/04/troy-farah.jpg",
"same_as": [
"https://x.com/filth_filler"
],
"articles": [
{
"title": "Trump admin spars with Iran at UN meeting",
"url": "https://www.salon.com/2026/09/23/trump-admin-spars-with-iran-at-un-meeting/"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/publicnews.salonAuthorResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| data | salon.AuthorResponse | No | ||||
| data.articles | array | No | ||||
| data.articles[].title | string | No | ||||
| data.articles[].url | string | No | ||||
| data.bio | string | No | ||||
| data.image_url | string | No | ||||
| data.job_title | string | No | ||||
| data.name | string | No | ||||
| data.same_as | array | No | ||||
| data.url | string | No |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/salon/author?url=https%3A%2F%2Fwww.salon.com%2Fwriter%2Ftroy_farah" \
-H "x-api-key: $CRAWLORA_API_KEY"