API documentation
iData public API
REST + JSON. Public endpoints need no keys. Saving and reactions need a Bearer token from /auth/login.
https://api.idata.qafdev.comFormat
JSON
Wrapped { data, statusCode }
Auth
Bearer (writes)
Authorization: Bearer <token>
Rate limit
60 req/min
Unauthenticated
Response envelope
Every successful response is wrapped like this. The actual payload is in data.
{
"data": <T>,
"statusCode": 200,
"timestamp": "2026-05-09T12:00:00Z",
"path": "/dashboards/123"
}Dashboards
/dashboardsList published dashboards
Returns paginated list of published dashboards with metadata.
curl https://api.idata.qafdev.com/dashboards?limit=20&offset=0
/dashboards/{id}Get one dashboard with sections
Full dashboard, all sections sorted by sortOrder.
curl https://api.idata.qafdev.com/dashboards/123
Governorate indicators
/governorate-indicatorsAll indicator rows
Bulk list of governorate × indicator × year rows; group client-side.
curl https://api.idata.qafdev.com/governorate-indicators
/categoriesContent categories
Categories used by dashboards, blog posts, news, and reports.
News
/news-itemsNews articles
Paginated list — supports ?categoryId, ?rssFeedId, ?search, ?start_date, ?end_date.
/news-indicatorsNews indicators feed
Numeric indicators extracted from recent news (newest first).
/rss-feedsNews sources
List of RSS feeds we ingest from — websiteName + websiteUrl.
Blog
/blogs/publishedPublished blog posts
All published articles with ?limit and ?search support.
/blogs/{id}One blog post
Full body in EN + AR if available.
Reports
/reportsList reports
Paginated reports with downloadable file URLs.
Authenticated
/auth/meAuthCurrent user
Requires Authorization: Bearer <user_token>.
/dashboard-reactionsAuthAdd a reaction
Body: `{ dashboardId, type: 'like' | 'insightful' | 'important' | 'love' }`.
/dashboard-commentsAuthPost a comment
Comment is created in 'pending' state and appears once approved.
Need an endpoint not listed here?
contact@kapita.iq