# Optagonen Public API

Optagonen är primärt en innehållsplattform. Följande lättviktsendpoints är publikt tillgängliga för agenter och automationer.

## Workshops (viktigaste resursen)

Optagonens workshops är kärnan i verksamheten — musik, dans, teater, skapande, AI och mer.

- HTML-index: https://optagonen.se/workshops
- Enskild workshop: https://optagonen.se/workshops/<slug>
- JSON-API: `GET https://optagonen.se/api/workshops`
- Filtrera per kategori: `GET https://optagonen.se/api/workshops?category=musik`

JSON-svar innehåller för varje workshop: `slug`, `title`, `category`, `duration`, `participants`, `targetGrades`, `shortDescription`, `image`, `popular`, `isNew` och `url`.

Kategorier: `musik`, `las-skriv`, `dans`, `teater`, `video`, `digital`, `larare`, `foretag`.

## Bokning

Optagonens bokningsflöde. Interaktiv chat finns på https://optagonen.se/boka men är **inte** en publik agent-resurs (rate-limiting + abuse-detection). Agenter bör använda e-post, telefon eller kontaktformulär.

- Statisk info: `GET https://optagonen.se/api/booking-info` — kontaktuppgifter, bokningskanaler, obligatorisk info vid förfrågan, finansiering (Skapande skola), leverans.
- Kontaktformulär: `POST https://optagonen.se/api/contact` — strukturerad förfrågan (kräver name, email, message).
- HTML-sida: https://optagonen.se/boka

## Jobb (lediga tjänster)

- HTML-index: https://optagonen.se/jobba-hos-oss
- Enskild tjänst: https://optagonen.se/jobba-hos-oss/<slug>
- JSON-API: `GET https://optagonen.se/api/jobs`

Returnerar `{ total, jobs: [...] }` där varje jobb har: `slug`, `title`, `excerpt`, `publishedAt`, `modifiedAt`, `image`, `url`, `meta`. Drivs av WordPress-kategorin `lediga-jobb`.

## Artiklar

- HTML-index: https://optagonen.se/nyheter
- JSON-API: `GET https://optagonen.se/api/articles?page=1&per_page=50`
- Fulltext som markdown: använd `markdownUrl` i svaret eller `GET https://optagonen.se/api/markdown?path=/nyheter/<slug>`

Returnerar `{ total, totalPages, page, perPage, hasMore, nextPage, articles: [...] }` där varje artikel har: `id`, `slug`, `title`, `excerpt`, `publishedAt`, `modifiedAt`, `categories`, `image`, `path`, `url` och `markdownUrl`.

## Markdown content negotiation

`GET https://optagonen.se/<path>` med `Accept: text/markdown` returnerar en markdown-version av sidan.

Svarsheaders:
- `Content-Type: text/markdown; charset=utf-8`
- `x-markdown-tokens` — approximativ token-räkning
- `Vary: Accept`

Ni kan även anropa `GET https://optagonen.se/api/markdown` direkt med `?path=/nyheter`.

## Search

`GET https://optagonen.se/api/search?q=<query>`

Returnerar upp till 10 resultat i JSON. Kräver minst 2 tecken i `q`.

## Kulturaktörer

`GET https://optagonen.se/api/kulturaktorer`

Listar aktiva kulturaktörer (profilkort) som JSON.

## Health

`GET https://optagonen.se/api/health`

Returnerar `{ "status": "ok" }` när tjänsten lever.

## API catalog

`GET https://optagonen.se/.well-known/api-catalog`

Maskinläsbart länkset per RFC 9727 som pekar på alla endpoints.
