FitOut Post REST API
Read-only JSON endpoints delivering daily-refreshed global fit-out intelligence — news, tenders, pipeline projects and company data. Available to Pro members.
⚡ Pro feature — upgrade to accessOverview
The FitOut Post API provides programmatic access to the same data that powers the platform — updated daily at 06:00 UTC by the automated fetch pipeline. All endpoints return JSON and require a Bearer token in the Authorization header.
The API is intentionally simple: no pagination parameters, no complex query DSL. Each endpoint returns the complete dataset for that day. Filter client-side or integrate the raw feed into your own pipeline.
Base URL
Available endpoints
| Method | Endpoint | Description | Updated | Rate limit |
|---|---|---|---|---|
| GET | /api/news.json | All news articles, current feed | Daily 06:00 UTC | 100 req/day |
| GET | /api/tenders.json | Active tender listings worldwide | Daily 06:00 UTC | 100 req/day |
| GET | /api/pipeline.json | Pipeline / project announcements | Daily 06:00 UTC | 50 req/day |
| GET | /api/companies.json | Company directory (171+ firms) | Weekly | 20 req/day |
Static JSON on GitHub Pages. The API is served as static files via GitHub Pages — no server-side query processing. All filtering, sorting and searching must be done client-side after fetching the payload.
Authentication
All API requests must include your Pro API key in the Authorization header.
Your API key
Find your API key in your account settings after upgrading to Pro. API keys are prefixed fop_live_ for production.
Keep your key private — do not expose it in client-side JavaScript or public repositories.
Request example
Rate limits
Rate limits are applied per API key per calendar day (UTC). Since the data is static and refreshed once daily, there is no need to poll more frequently than once per day per endpoint.
| Plan | Limit | Notes |
|---|---|---|
| Pro Monthly | 100 req/day | Per endpoint |
| Pro Annual | 200 req/day | Per endpoint |
| Enterprise | Unlimited | Custom SLA available |
Recommended pattern: Fetch once per day at 07:00 UTC (one hour after the daily build), cache the result in your own database, and serve from cache for the rest of the day.
GET /api/news.json
Returns an array of all news articles in the current daily feed. Covers 190+ countries, sourced from 300+ RSS feeds and web scrapers. Refreshed daily at 06:00 UTC.
Response schema
| Field | Type | Description |
|---|---|---|
| title | string | Article headline |
| link | string | Source URL |
| description | string | Article excerpt / summary |
| pubDate | string (ISO 8601) | Publication date-time |
| source | string | Publication name |
| country | string | Country name (ISO common name) |
| continent | string | One of: Europe · Middle East · Americas · Asia-Pacific · Africa |
| signal | string | Classified signal type: award · tender · pipeline · progress · news |
| fetched_at | string (ISO 8601) | When FitOut Post fetched this article |
Example response
GET /api/tenders.json
Returns all active tender listings. Sources include TED/OJEU (Europe), Saudi Etimad, UAE Tejouri, Australian AusTender, US SAM.gov, and regional procurement portals across 60+ countries.
Response schema
| Field | Type | Description |
|---|---|---|
| title | string | Tender / contract title |
| contracting_authority | string | Issuing body / client |
| country | string | Country of tender |
| continent | string | Geographic region |
| deadline | string (ISO 8601) | Submission deadline (null if unknown) |
| value_eur | number | null | Estimated contract value in EUR (null if undisclosed) |
| cpv_codes | string[] | EU CPV procurement codes (empty for non-EU) |
| source_url | string | Direct link to tender notice |
| source | string | Procurement platform (TED, SAM.gov, Etimad, etc.) |
| published | string (ISO 8601) | Notice publication date |
GET /api/pipeline.json
Returns announced pipeline projects — developments at planning, design or pre-tender stage. Useful for early market intelligence before tenders are issued.
Response schema
| Field | Type | Description |
|---|---|---|
| title | string | Project title |
| developer | string | Developer / client name |
| country | string | Country |
| continent | string | Region |
| sector | string | Office · Retail · Hospitality · Healthcare · Education · Mixed-use |
| gfa_m2 | number | null | Gross floor area in m² (null if undisclosed) |
| value_usd | number | null | Estimated project value in USD |
| stage | string | planning · design · pre-tender · tender · construction |
| expected_completion | string | Year or quarter (e.g. "2027 Q4") |
| source_url | string | Source article URL |
| pubDate | string | When announced |
GET /api/companies.json
Returns the FitOut Post company directory — 171+ fit-out contractors and developers with profile data. Updated weekly.
Response schema
| Field | Type | Description |
|---|---|---|
| name | string | Company name |
| country | string | HQ country |
| continent | string | Region |
| sectors | string[] | Sectors of activity |
| website | string | Company website URL |
| description | string | Short company description |
| feed_url | string | RSS feed monitored by FitOut Post |
Error codes
| HTTP status | Code | Meaning |
|---|---|---|
| 401 | UNAUTHORIZED | Missing or invalid API key |
| 403 | FORBIDDEN | API key valid but Pro plan not active |
| 429 | RATE_LIMITED | Daily request limit exceeded |
| 404 | NOT_FOUND | Endpoint does not exist |
| 503 | BUILDING | Daily build in progress — retry after 10 minutes |
503 during build window. The daily build runs 06:00–06:15 UTC. If you fetch during this window, static files may be temporarily unavailable. Recommend scheduling fetches for 07:00 UTC or later.
Changelog
v1.0 — May 2026
- Initial API release with /api/news.json, /api/tenders.json, /api/pipeline.json
- /api/companies.json added (weekly refresh)
- Signal type field added to news articles
- continent field standardised across all endpoints
SDKs & examples
Official SDKs are on the roadmap. In the meantime, the following community examples demonstrate typical integration patterns.
Python — daily fetch and filter
Node.js — keyword filter
Ready to integrate?
Upgrade to Pro and get your API key in minutes.