# NORDEN BUILD demo content API

> Demo data: NORDEN BUILD is a fictional construction company on a portfolio website built by the AdScaled agency. Services, projects, prices and FAQ answers are invented and illustrative only.

Version 1.0.0. Base URL: https://building.adscaled.media. OpenAPI 3.1: [https://building.adscaled.media/openapi.json](https://building.adscaled.media/openapi.json). API catalog: [https://building.adscaled.media/.well-known/api-catalog](https://building.adscaled.media/.well-known/api-catalog).

## Overview

- Read-only `GET` (and `HEAD`) requests, no authentication, no personal data.
- JSON responses; text content is Czech, keys are English. Every response has `demo: true` and a `notice`.
- CORS: `Access-Control-Allow-Origin: *`.
- Rate limit: 60 requests per minute per IP. Headers `RateLimit-Policy: "api";q=60;w=60` and `RateLimit: "api";r=<remaining>;t=<seconds>`; over the limit 429 with `Retry-After`.
- Errors: RFC 9457 problem details (`application/problem+json`) with `type`, `title`, `status`, `detail`.

## Operations

### GET /api/v1/health

`getHealth`: Returns `ok: true` and the API version when the API is up.

- Responses: 200 API is up.; 429 Too Many Requests.
- Example: `curl https://building.adscaled.media/api/v1/health`

### GET /api/v1/services

`listServices`: All 10 construction services of the fictional company with indicative price and duration.

- Responses: 200 List of services.; 429 Too Many Requests.
- Example: `curl https://building.adscaled.media/api/v1/services`

### GET /api/v1/services/{slug}

`getService`: Full detail of one service: scope of work, steps, price note, text sections and service FAQ.

- Parameter `slug` (path, required): Service slug (from listServices). One of: `vystavba-rodinnych-domu`, `rekonstrukce-bytu`, `rekonstrukce-domu`, `komercni-prostory`, `koupelny`, `elektroinstalace`, `voda-a-topeni`, `fasady`, `strechy`, `interiery`.
- Responses: 200 The service.; 404 Not Found; 429 Too Many Requests.
- Example: `curl https://building.adscaled.media/api/v1/services/vystavba-rodinnych-domu`

### GET /api/v1/projects

`listProjects`: All 14 fictional reference projects, optionally filtered by category.

- Parameter `type` (query, optional): Only projects of this category. One of: `novostavba`, `rekonstrukce-bytu`, `rekonstrukce-domu`, `koupelna`, `komercni`.
- Responses: 200 List of projects.; 400 Bad Request; 429 Too Many Requests.
- Example: `curl https://building.adscaled.media/api/v1/projects`

### GET /api/v1/projects/{slug}

`getProject`: Full detail of one project: works, description, challenge, solution and image URLs.

- Parameter `slug` (path, required): Project slug (from listProjects). One of: `rodinny-dum-praha-6`, `rekonstrukce-bytu-vinohrady`, `moderni-vila-pruhonice`, `kancelare-karlin`, `byt-holesovice`, `rodinny-dum-ricany`, `podkrovni-byt-smichov`, `rekonstrukce-domu-cernosice`, `restaurace-vrsovice`, `koupelna-dejvice`, `fasada-bytoveho-domu-nusle`, `nizkoenergeticky-dum-jesenice`, `showroom-brandys`, `vila-zbraslav`.
- Responses: 200 The project.; 404 Not Found; 429 Too Many Requests.
- Example: `curl https://building.adscaled.media/api/v1/projects/rodinny-dum-praha-6`

### GET /api/v1/faq

`listFaq`: General frequently asked questions and answers (Czech).

- Responses: 200 List of questions and answers.; 429 Too Many Requests.
- Example: `curl https://building.adscaled.media/api/v1/faq`

## Versioning and deprecation

- The major version is part of the path: `/api/v1/`. The current version is 1.0.0 (OpenAPI `info.version`).
- Additive, backwards-compatible changes (new fields, new operations, new enum values) are released within v1.
- Breaking changes (removed or renamed fields, changed types or semantics) are released only under a new path such as `/api/v2/`; v1 keeps working during the transition.
- A deprecated operation is marked `deprecated: true` in the OpenAPI description, answers with the `Deprecation` (RFC 9745) and `Sunset` (RFC 8594) response headers and stays available for at least 90 days after the deprecation is announced in these docs.

## More

- [Website](https://building.adscaled.media/)
- [llms.txt](https://building.adscaled.media/llms.txt)
- [Operator: AdScaled](https://www.adscaled.media)
