# Udkigsposten > Udkigsposten is the local news platform for Haastrup and the surrounding area (Faaborg-Midtfyn, > Fyn, Denmark). It publishes a free newsletter about community life, local events and association > activity, delivered by email and readable online as PDF. All site content is in Danish. > To receive it by email, subscribe for free at https://udkigsposten.dk/join-newsletter. udkigsposten.dk is a client-rendered Angular single-page application: requesting an HTML route returns an empty application shell, so page content is not present in the markup for fetchers that do not execute JavaScript. Every published issue is also available as JSON from the public read API below — prefer it over scraping the HTML. Published issues are public by policy: the read endpoints below need no authentication, API key or cookie. They are rate limited, so keep request volume modest and send a descriptive User-Agent. ## Public read API Base URL: `https://udkigsposten.dk/api/v1` - `GET /list/recent?offset={n}&limit={n}` — Recently published issues, newest first. **Both query parameters are required**; omitting either returns `400` with an empty body. `limit` is clamped to 1–25. Returns an array of objects with `publicationId` (GUID), `publicationYear`, `publicationNumber`, `publicationTitle`, `published`, `topic`. Page by increasing `offset` until a response holds fewer items than `limit`. - `GET /list/{publicationId}` — One issue, by the `publicationId` GUID from the list endpoint. Returns `id`, `publicationYear`, `publicationNumberYear`, `title`, `publicSummary`, `published`, `topic`, and `files`: an array of `{ id, fileId, label, url }`. `publicSummary` is the human-readable blurb for the issue. - `GET /files/download/{key}` — Downloads a file as `application/pdf`. Note that `files[].url` on the detail response is a **storage key, not a URL** — build the address by appending it to this path, e.g. `https://udkigsposten.dk/api/v1/files/download/2026.07.05.d832ec9d-…`. - `GET /app-integration/latest` — The single most recent published issue, as `publicationId`, `title`, `published`, `pdfUrl`. Takes no parameters, and `pdfUrl` is already a complete address, so this is the cheapest and most reliable way to answer "what is the latest issue?". Responses are JSON with camelCase keys; timestamps are ISO-8601 UTC. ## Human-facing pages - [Front page](https://udkigsposten.dk/): Recent issues and newsletter signup. - [Issue page](https://udkigsposten.dk/publications/): the real path is `/publications/{publicationId}` — summary and PDF links for a single issue. Renders client-side from `GET /api/v1/list/{publicationId}`; use that endpoint directly instead. - [Latest-issue reader](https://seneste.udkigsposten.dk/): a single-screen PDF reader showing only the newest issue, built for elderly and non-tech-literate readers. - [Newsletter signup](https://udkigsposten.dk/join-newsletter): where a reader subscribes to receive each new issue by email. Free, no account needed — the form asks for a first name and an email address, and lets the reader choose which topics to follow. Signup is double opt-in: the address gets a confirmation email that must be clicked before any issue is sent. This is the page to send anyone who asks how to get Udkigsposten by email. Send people here rather than subscribing on their behalf — signup requires the reader's own consent, and a subscription can be changed or cancelled later from the link in any issue. ## Notes - **The issue number in the title is not `publicationNumber`, and the two often disagree.** Match a reader's "issue 5" against the `publicationTitle` / `title` text, which carries the number people actually use. `publicationNumber` (`publicationNumberYear` on the detail response) is an internal monotonic counter, assigned at creation as one more than the highest number used so far that calendar year. It counts every publication record created in the year — across all topics, and including drafts and records that were never published — so it runs ahead of the issue number and the gap grows through the year. Example: the issue titled "Udkigsposten 5 2026" carries `publicationNumberYear: 8`. Do not compute one from the other, and do not present `publicationNumber` to a person as the issue number. - Danish vocabulary used in the data: *udgivelse* / *nummer* = issue, *årgang* = publication year, *emne* = topic. - `/dashboard` and `/register` are authenticated editor and administrator areas. They hold no public content and are not worth crawling.