Fortune API endpoint
Returns one Fortune author's public profile: name, bio, email, social accounts, and one page of their recent articles (30 fortune.com/2026-format article dates use "Month D, YYYY"; converted to YYYY-MM-DD here).
/fortune/authorQuery parameters:
slug (optional): an author slug, e.g. sheryl-estrada.url (optional): a canonical https://fortune.com/author/<slug>/ URL, as an alternative to slug. A URL that itself carries fortune.com's own /page/<n>/ suffix (for example https://fortune.com/author/sheryl-estrada/page/2/) sets the page from that suffix.page (optional): 1-based page number of the author's article list; overrides any page number embedded in url. Defaults to 1.Exactly one of slug/url is required. total_pages in the response is the highest page number Fortune currently exposes for that author's article history; requesting a page past it returns 404.
email and social_accounts reflect whatever contact links the author's page actually shows -- most Fortune authors show an editorial email plus X/Twitter and LinkedIn, but this varies per author and unlisted accounts are simply absent, not an error. Article published_at is YYYY-MM-DD.
Example response (truncated):
{"code":200,"data":{"name":"Sheryl Estrada","slug":"sheryl-estrada","url":"https://fortune.com/author/sheryl-estrada/","bio":"Sheryl Estrada is a senior writer at Fortune, where she covers the corporate finance industry, Wall Street, and corporate leadership...","email":"[email protected]","social_accounts":[{"platform":"twitter","url":"https://twitter.com/sherylestrada"},{"platform":"linkedin","url":"https://www.linkedin.com/in/sherylestrada/"}],"page":1,"total_pages":96,"articles":[{"title":"From $2 billion to $112 billion in annual profit: How Apple transformed its business","url":"https://fortune.com/2026/09/22/from-2-billion-to-112-billion-annual-profit-how-apple-transformed-business-cfo/","section":"Big Tech","section_url":"https://fortune.com/section/big-tech/","published_at":"2026-09-22","authors":["Sheryl Estrada"]}]}}
| Field | Filled in, of 18 checked | Values in the sample |
|---|---|---|
| title | 18 | median 88 characters |
| url | 18 | fortune.com |
| section | 18 | |
| section_url | 18 | fortune.com |
| published_at | 18 | 2026-09-23 to 2026-10-12 |
| authors | 18 | median 1 entry |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug | string | No | Author slug, e.g. sheryl-estrada | sheryl-estrada | |
| url | string | No | Canonical fortune.com/author/<slug>/ URL, optionally with a /page/<n>/ suffix; alternative to slug | https://fortune.com/author/sheryl-estrada/page/2/ | |
| page | integer | No | 1-based page number; overrides any page number in url | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/fortune/author?page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"name": "Sheryl Estrada",
"slug": "sheryl-estrada",
"url": "https://fortune.com/author/sheryl-estrada/",
"bio": "Sheryl Estrada is a senior writer at Fortune, where she covers the corporate finance industry, Wall Street, and corporate leadership...",
"email": "[email protected]",
"social_accounts": [
{
"platform": "twitter",
"url": "https://twitter.com/sherylestrada"
},
{
"platform": "linkedin",
"url": "https://www.linkedin.com/in/sherylestrada/"
}
],
"page": 1,
"total_pages": 96,
"articles": [
{
"title": "From $2 billion to $112 billion in annual profit: How Apple transformed its business",
"url": "https://fortune.com/2026/09/22/from-2-billion-to-112-billion-annual-profit-how-apple-transformed-business-cfo/",
"section": "Big Tech",
"section_url": "https://fortune.com/section/big-tech/",
"published_at": "2026-09-22",
"authors": [
"Sheryl Estrada"
]
}
]
}
}Request schema
No body schema
Response schema
#/definitions/publicnews.fortuneAuthorResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| data | fortune.AuthorResponse | No | ||||
| data.articles | array | No | ||||
| data.articles[].authors | array | No | ||||
| data.articles[].published_at | string | No | ||||
| data.articles[].section | string | No | ||||
| data.articles[].section_url | string | No | ||||
| data.articles[].title | string | No | ||||
| data.articles[].url | string | No | ||||
| data.bio | string | No | ||||
| data.email | string | No | ||||
| data.name | string | No | ||||
| data.page | integer | No | ||||
| data.slug | string | No | ||||
| data.social_accounts | array | No | ||||
| data.social_accounts[].platform | string | No | ||||
| data.social_accounts[].url | string | No | ||||
| data.total_pages | integer | 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/fortune/author?page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"