# Hva skjer i Midtre Gauldal? — utviklerportal

Hva skjer i Midtre Gauldal? publiserer arrangementene sine gjennom et **åpent GraphQL-API**. Du trenger verken konto,
nøkkel eller godkjenning for å lese det: dataene er offentlige og forblir offentlige.

- Endepunkt: `https://hvaskjerimidtregauldal.no/graphQL`
- Dokumentasjon: [API](/utviklere/api) · [Referanse](/utviklere/reference) · [Widget](/utviklere/widget) · [Endringslogg](/utviklere/changelog) · [Nøkler](/utviklere/keys)
- Prøv det: [sandboxen](https://hvaskjerimidtregauldal.no/graphQL) kjører spørringer mot denne kalenderen med skjemaet og autofullføring, ingenting å installere
- Maskinlesbare kopier: [llms.txt](https://hvaskjerimidtregauldal.no/utviklere/llms.txt), [schema.graphql](https://hvaskjerimidtregauldal.no/utviklere/schema.graphql), og hver side som markdown på `https://hvaskjerimidtregauldal.no/utviklere/<side>.nb.md` (norsk) eller `https://hvaskjerimidtregauldal.no/utviklere/<side>.md` (engelsk, som også er svaret på `Accept: text/markdown`).

API-et er **per lisens**: dette endepunktet svarer bare med denne kalenderens arrangementer. En annen
kommunes kalender har sitt eget endepunkt, sine egne kategori-id-er og sine egne nøkler.

## De tre reglene

Hver av disse har kostet noen flere uker. Les dem før den første spørringen.

1. **ID-ene er kontrakten.** Filtrer og match på `id` (arrangementer, steder, arrangører) og på kategori-id-er.
   Navn og slugs er presentasjon: de redigeres av mennesker, de er forskjellige fra lisens til lisens, og
   de endrer seg. Hent etikettene fra `categories` ved hver kjøring; cache dem aldri og skriv dem aldri for hånd.
2. **Datoer bærer UTC-forskyvningen som gjelder på arrangementets dato.** `startDate` og `endDate` ser ut som
   `2026-11-01 10:00:00+01:00` om vinteren og `2026-07-01 10:00:00+02:00` om sommeren. De er ikke
   «ISO med +00», og skilletegnet er et mellomrom, ikke en `T`. Vis dem i `Europe/Oslo`, eller bruk
   `startTime` (norsk klokkeslett slik arrangøren skrev det) og `duration` (minutter).
3. **Ingenting som kommer fra et skjema er garantert numerisk.** `Price.price` er typet `Int` og
   avrundes ved grensen, men arrangøren kan ha skrevet `1.595` eller `150,-`; `duration`,
   `availableTickets` og `minimumAge` kan være null. Behandle hvert tallfelt defensivt.

## Et første kall

```bash
curl -s https://hvaskjerimidtregauldal.no/graphQL \
  -H 'Content-Type: application/json' \
  -d '{"query":"{ events(page: 0, pageSize: 3) { totalCount hasMore data { id title_nb startDate startTime venue { name } eventLink } } }"}'
```

Samme spørring, lesbar:

```graphql
{
  events(page: 0, pageSize: 3) {
    totalCount
    hasMore
    data {
      id
      title_nb
      startDate
      startTime
      venue { name }
      eventLink
    }
  }
}
```

`startDate` er arrangementets **neste kommende forekomst**, og `repetitions` lister bare de
fremtidige; datoer som har passert returneres aldri. `page` starter på 0 og `pageSize` er 10 som standard.
[API-siden](/utviklere/api) har filteret, datoreglene og feilene.

## Identifiser deg

Send en API-nøkkel med hver forespørsel:

```
X-Api-Key: hsk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```

Nøkkelen er **identitet, ikke sikkerhet** — dataene er de samme med og uten. Det den gir deg:

- **Varsler om endringer.** En nøkkel har en kontaktadresse. Når en endring vil påvirke spørringene dine
  (en kategori som pensjoneres, et felt som får nytt navn, en lisens som flyttes), får kontaktene til
  nøklene som bruker de feltene beskjed før det skjer. Anonyme kallere finner det ut når noe ryker.
- **Din egen oversikt.** Anonyme forespørsler grupperes etter spørringens form; med en nøkkel er dine
  dine, og det betyr noe den dagen du spør hvorfor noe ser feil ut.
- **Din egen kvote, senere.** Det er ingen rate limit i dag. Når det kommer en, beholder trafikk med
  nøkkel sitt eget budsjett.

Ingen nøkkel, men vil vite likevel? [Abonner på endringsvarsler](/utviklere/varsler): én e-post per
brytende endring eller dataendring, ingen konto nødvendig, avmeldingslenke i hver.

Én nøkkel per applikasjon; en tjeneste som leser fem kalendere ber hver av dem om en nøkkel.
Lag din på [Nøkler-siden](/utviklere/keys) — du trenger en konto på Hva skjer i Midtre Gauldal? med
bekreftet e-postadresse. Samme side gir deg en blokk med instruksjoner du kan lime inn til en kodeagent.

Svar på anonyme forespørsler bærer en `extensions.notice`-streng som sier akkurat det. Den er
informativ; en klient som aldri ser på `extensions` påvirkes ikke.
