ForeignPolicy API endpoint
Returns a public Foreign Policy curated project hub and its current article cards. Use foreignpolicy-projects to discover live project slugs.
/foreignpolicy/projectQuery parameter: required project, a safe project slug returned by foreignpolicy-projects, such as asia.
Returns the project name, canonical URL, and current public article cards. Each card includes its title, URL, optional summary, section, and author names. The project template does not expose a stable publication date, so no date is inferred.
| Field | Filled in, of 100 checked | Values in the sample |
|---|---|---|
| title | 100 | “Mecca Pact, Activated” and 99 other values |
| url | 100 | foreignpolicy.com |
| summary | 100 | “What Pakistan and Turkey will likely do (and want) in Saudi…” and 99 other values |
| section | 100 | “Situation Report” and 13 other values |
| authors | 100 | median 1 entry |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| project | string | Yes | Foreign Policy project slug | asia | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/foreignpolicy/project?project=asia" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"slug": "asia",
"name": "Asia & the Pacific",
"url": "https://foreignpolicy.com/projects/asia/",
"items": [
{
"title": "Example project story",
"url": "https://foreignpolicy.com/2026/09/16/example-project-story/",
"summary": "A short project-card summary.",
"section": "South Asia Brief",
"authors": [
"Michael Kugelman"
]
}
]
},
"msg": "OK"
}Request schema
No body schema
Response schema
#/definitions/foreignpolicy.projectResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | foreignpolicy.ProjectResponse | No | ||||
| data.items | array | No | ||||
| data.items[].authors | array | No | ||||
| data.items[].section | string | No | ||||
| data.items[].summary | string | No | ||||
| data.items[].title | string | No | ||||
| data.items[].url | string | No | ||||
| data.name | string | No | ||||
| data.slug | 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 |
| 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/foreignpolicy/project?project=asia" \
-H "x-api-key: $CRAWLORA_API_KEY"