The Atlantic API endpoint
Returns one public Atlantic article's metadata and body paragraphs from a canonical article URL. `metered` reflects the site's own soft-paywall flag for that article; the body returned here is the same one the site's own page serves to an anonymous visitor and is never truncated because of it. An article whose page genuinely withholds its body is reported as a restricted-access error instead of a hollow response.
/theatlantic/articleQuery parameter: required url, a canonical Atlantic article URL (e.g. https://www.theatlantic.com/politics/2026/09/example-slug/688738/). Query strings and fragments are stripped; the URL is canonicalized to https://www.theatlantic.com.
Returns one public Atlantic article's metadata — title, description, published_at, updated_at, section, authors, image_url, tags — plus its body paragraphs in order and metered, the site's own soft-paywall flag for that article.
Behavior:
metered reflects whether the site treats the article as premium for a repeat reader (its Zephr meter). The body returned here is the same body the site's own page serves to an anonymous visitor and is never truncated because metered is true.403 (restricted) rather than a hollow success when the upstream also marked it metered, and as 503 otherwise (parser drift).400 before any upstream request.| Field | In the sample | Value in the sample |
|---|---|---|
| url | Has a value | theatlantic.com |
| title | Has a value | 51 characters |
| description | Has a value | 102 characters |
| published_at | Has a value | 2026-09-22 |
| updated_at | Has a value | 2026-09-22 |
| section | Has a value | “Politics” |
| authors | Has a value | 1 entry |
| image_url | Has a value | cdn.theatlantic.com |
| tags | Has a value | 6 entries |
| metered | Has a value | true |
| paragraphs | Has a value | 13 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| url | string | Yes | Canonical The Atlantic article URL | https://www.theatlantic.com/politics/2026/09/example-slug/688738/ | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/theatlantic/article?url=https%3A%2F%2Fwww.theatlantic.com%2Fpolitics%2F2026%2F09%2Fexample-slug%2F688738%2F" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"url": "https://www.theatlantic.com/politics/2026/09/example-slug/688738/",
"title": "Example Article Title",
"description": "An example subtitle for the article.",
"published_at": "2026-09-22T16:29:21Z",
"updated_at": "2026-09-22T17:12:16Z",
"section": "Politics",
"authors": [
"Jane Example"
],
"image_url": "https://cdn.theatlantic.com/img/lead.jpg",
"tags": [
"Example Tag"
],
"metered": true,
"paragraphs": [
"First paragraph of the article.",
"Second paragraph of the article."
]
}
}Request schema
No body schema
Response schema
#/definitions/theatlantic.articleResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | theatlantic.ArticleResponse | No | ||||
| data.authors | array | No | ||||
| data.description | string | No | ||||
| data.image_url | string | No | ||||
| data.metered | boolean | No | ||||
| data.paragraphs | array | No | ||||
| data.published_at | string | No | ||||
| data.section | string | No | ||||
| data.tags | array | 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 |
| 403 | Forbidden | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/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/theatlantic/article?url=https%3A%2F%2Fwww.theatlantic.com%2Fpolitics%2F2026%2F09%2Fexample-slug%2F688738%2F" \
-H "x-api-key: $CRAWLORA_API_KEY"