API Documentation
jawawa.id provides a free JSON API for accessing the Indonesian news archive. Use it to search articles, retrieve full text, and export data for research.
Base URL
https://jawawa.id/api/v1
Endpoints
GET /api/v1/search
Search the article archive. Returns paginated results with metadata.
| Parameter | Type | Description |
|---|---|---|
q | string | Search query (supports boolean: AND, OR, NOT, "exact phrase") |
year | int | Filter by year (e.g. 2005) |
month | int | Filter by month (1-12, requires year) |
source | string | Filter by source name |
from | date | Start date (YYYY-MM-DD) |
to | date | End date (YYYY-MM-DD) |
limit | int | Results per page (default 50, max 100) |
offset | int | Pagination offset (default 0) |
Example:
curl "https://jawawa.id/api/v1/search?q=infrastructure&year=2015&limit=10"
GET /api/v1/article/{id}
Retrieve a single article by numeric ID or legacy MsgID.
Example:
curl "https://jawawa.id/api/v1/article/12345"
GET /api/v1/export
Export articles in JSON or CSV format. Requires an API key.
| Parameter | Type | Description |
|---|---|---|
key | string | Your API key (required) |
format | string | json (default) or csv |
q | string | Search query |
year | int | Filter by year |
limit | int | Max articles (default 1000, max 1000) |
Example:
curl "https://jawawa.id/api/v1/export?format=json&q=banking&key=YOUR_KEY"
Rate Limits
| Endpoint | Per Minute | Per Day |
|---|---|---|
| Search & Article | 60 | 100 |
| Export | 10 | 20 |
Rate limit headers (X-RateLimit-Daily-Limit, X-RateLimit-Daily-Remaining) are included in every response.
Usage Restrictions
- CORS is restricted to
jawawa.idorigin — server-side requests are recommended. - Intended for research and non-commercial use.
- Attribution to jawawa.id is required when publishing results.
- Automated scraping beyond API rate limits is not permitted.
API Keys for Researchers
Researchers and academics can request an API key for higher daily limits and access to the export endpoint. To apply, email sysadmin@okusi.id with:
- Your name and institutional affiliation
- A brief description of your intended use
Response Format
All endpoints return JSON with the following structure:
{
"success": true,
"total": 142,
"limit": 50,
"offset": 0,
"data": [ ... ],
"sponsor": "Okusi Associates",
"sponsor_url": "https://okusiassociates.com"
}
Error responses include "success": false with an "error" message and HTTP status "code".