Yahoo News API endpoint
Returns a single Yahoo News article's full content: headline, description, author, publish/update time, section, image, keywords, original publisher, and body paragraphs. Accepts a canonical yahoo.com/news article URL, such as one returned by the home or category story streams.
/yahoo-news/articleQuery parameters:
url (required) — a www.yahoo.com/news/.../articles/....html or
www.yahoo.com/news/.../article/....html (singular) URL, such as one
returned by the home, category, or originals category story streams.
Both path forms serve the identical article template. URLs on any other
host, or Yahoo News URLs that are not article pages (e.g. a category
page), are rejected.Notable response behavior:
id is the article's internal id, usable as content_id on
/yahoo-news/comments to fetch this article's comments. It is omitted
when the id could not be extracted (very rare; treat it as best-effort).provider/provider_url identify the original publisher (e.g. "The
Guardian", "AFP") when the story is syndicated content Yahoo hosts;
Yahoo News itself is the provider for original Yahoo News content.paragraphs is the article's body text as a list of plain-text
paragraphs, in order. Empty paragraphs are dropped.404. A blocked, CAPTCHA-served, or
structurally different response (missing both the article metadata and
body) returns 503.| Field | In the sample | Value in the sample |
|---|---|---|
| id | Has a value | |
| url | Has a value | yahoo.com |
| title | Has a value | 80 characters |
| description | Has a value | 108 characters |
| author | Has a value | |
| published_at | Has a value | 2026-08-13 |
| updated_at | Has a value | 2026-08-13 |
| category | Has a value | “Politics” |
| image_url | Has a value | s.yimg.com |
| keywords | Has a value | 9 entries |
| provider | Has a value | “The Guardian” |
| provider_url | Has a value | theguardian.com |
| paragraphs | Has a value | 8 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| url | string | Yes | Canonical www.yahoo.com/news article URL | https://www.yahoo.com/news/politics/articles/example-headline-000000000.html | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/yahoo-news/article?url=https%3A%2F%2Fwww.yahoo.com%2Fnews%2Fpolitics%2Farticles%2Fexample-headline-000000000.html" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"id": "1bfd4c19-ae78-369c-a4cb-8489000ca9d7",
"url": "https://www.yahoo.com/news/politics/articles/hegseth-criticized-locking-democrats-closed-150610567.html",
"title": "Hegseth criticized for locking Democrats out of closed-door defense budget talks",
"description": "Republican lawmakers express concern after US defense secretary repeatedly excluded Democrats from briefings",
"author": "Joseph Gedeon in Washington",
"published_at": "2026-08-13T15:06:10Z",
"updated_at": "2026-08-13T15:06:10Z",
"category": "Politics",
"image_url": "https://s.yimg.com/lo/mysterio/api/.../resizefill_w1200.../https%3A%2F%2Fmedia.zenfs.com%2F...",
"keywords": [
"Pete Hegseth",
"the Pentagon",
"Democrats",
"Capitol Hill"
],
"provider": "The Guardian",
"provider_url": "https://www.theguardian.com/international",
"paragraphs": [
"Republican senators have criticized the Pentagon for locking Democrats out of classified briefings on defense spending, warning that Pete Hegseth's approach could jeopardize passage of Donald Trump's record $1.5tn military budget increase.",
"The US defense secretary has made at least two trips to Capitol Hill in recent weeks to pitch the budget, but has repeatedly excluded Democrats from the closed-door sessions, according to lawmakers from both parties."
]
}
}Request schema
No body schema
Response schema
#/definitions/yahoonews.articleResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | yahoonews.ArticleResponse | No | ||||
| data.author | string | No | ||||
| data.category | string | No | ||||
| data.description | string | No | ||||
| data.id | string | No | ||||
| data.image_url | string | No | ||||
| data.keywords | array | No | ||||
| data.paragraphs | array | No | ||||
| data.provider | string | No | ||||
| data.provider_url | string | No | ||||
| data.published_at | 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/yahoo-news/article?url=https%3A%2F%2Fwww.yahoo.com%2Fnews%2Fpolitics%2Farticles%2Fexample-headline-000000000.html" \
-H "x-api-key: $CRAWLORA_API_KEY"