Forbes API endpoint
Returns public Forbes article metadata and body content. The response preserves rich body HTML, paragraphs, headings, and public embed metadata. Accepts dated /sites/<author>/... and /councils/<council>/... URLs; it does not bypass login, subscription, or bot challenges.
/forbes/articleReturns public Forbes article metadata and body content. It preserves body_html exactly as the public payload provides it, and also returns normalized paragraphs, headings, and public embeds so rich inline markup and [id=N] media markers are not lost. It does not bypass login, subscription, or bot challenges.
Parameters:
url query: required absolute HTTPS Forbes article URL. Supported shapes are dated /sites/<author>/... and /councils/<council>/... URLs, including Forbes Research articles under /sites/.x-api-key header: required API key.The response includes non-empty title, author, and published_at for a valid article. channel and section come from Forbes's primary channel metadata; template_type and content_paywall report the upstream content labels and are not used to bypass access controls.
| Field | In the sample | Value in the sample |
|---|---|---|
| url | Has a value | forbes.com |
| title | Has a value | 81 characters |
| description | Has a value | 145 characters |
| author | Has a value | |
| published_at | Has a value | 2026-09-21 |
| updated_at | Has a value | 2026-09-21 |
| channel | Has a value | “Business” |
| section | Has a value | “Media” |
| image_url | Has a value | specials-images.forbesimg.com |
| template_type | Has a value | “standard” |
| content_paywall | Has a value | “publication” |
| body_html | Has a value | 7,302 characters |
| paragraphs | Has a value | 19 entries |
| headings | Has a value | 3 entries |
| embeds | Has a value | 1 entry |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| url | string | Yes | Canonical HTTPS Forbes article URL | https://www.forbes.com/sites/example/2026/09/21/example-story/ | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/forbes/article?url=https%3A%2F%2Fwww.forbes.com%2Fsites%2Fexample%2F2026%2F09%2F21%2Fexample-story%2F" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"url": "https://www.forbes.com/sites/example/2026/09/21/example-story/",
"title": "Example story",
"description": "A concise example.",
"author": "Example Author",
"published_at": "2026-09-21T00:00:00Z",
"updated_at": "2026-09-21T01:00:00Z",
"channel": "Business",
"section": "Media",
"image_url": "https://images.forbes.com/example.jpg",
"template_type": "standard",
"content_paywall": "publication",
"body_html": "<p>First <em>paragraph</em> with a <a href=\"https://example.com\">link</a>.</p>",
"paragraphs": [
"First paragraph with a link."
],
"headings": [
"A heading"
],
"embeds": [
{
"id": 1,
"type": "image",
"position": "top",
"data": {
"caption": "Example image"
}
}
]
}
}Request schema
No body schema
Response schema
#/definitions/forbes.articleResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | forbes.ArticleResponse | No | ||||
| data.author | string | No | ||||
| data.body_html | string | No | ||||
| data.channel | string | No | ||||
| data.content_paywall | string | No | ||||
| data.description | string | No | ||||
| data.embeds | array | No | ||||
| data.embeds[].data | object | No | ||||
| data.embeds[].id | integer | No | ||||
| data.embeds[].position | string | No | ||||
| data.embeds[].type | string | No | ||||
| data.headings | array | No | ||||
| data.image_url | string | No | ||||
| data.paragraphs | array | No | ||||
| data.published_at | string | No | ||||
| data.section | string | No | ||||
| data.template_type | string | No | ||||
| data.title | string | No | ||||
| data.updated_at | string | No | ||||
| data.url | 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 |
| 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/forbes/article?url=https%3A%2F%2Fwww.forbes.com%2Fsites%2Fexample%2F2026%2F09%2F21%2Fexample-story%2F" \
-H "x-api-key: $CRAWLORA_API_KEY"