API-dokumentation

Aapl.se är Sveriges ledande Apple-nyhetssajt sedan 2008. Vi aggregerar ~40 källor och sammanfattar på svenska med AI. Den här sidan dokumenterar sajtens publika, skrivskyddade gränssnitt för utvecklare och AI-agenter.

Föredrar du markdown? Samma innehåll finns på /api-docs.md.

Om innehållet: de svenska sammanfattningarna är Aapl.se:s eget innehåll. Originalartiklarna tillhör respektive källa — fulltext exponeras aldrig via något gränssnitt. Citera gärna "enligt {källa}, via Aapl.se" med länk. Datumfält (published_at) är ISO 8601. Om inget annat anges krävs ingen autentisering och endast GET stöds.

1. Anonyma JSON-endpoints (legacy)

Öppna, skrivskyddade och utan autentisering. Endast apple_relevant-artiklar listas. Parametern items begränsas till max 100.

  • https://aapl.se/entries.json — de senaste artiklarna (nyast först). Frivillig ?items=.
  • https://aapl.se/entries/popular.json — ordnad på popularitet (flest klick först).
  • https://aapl.se/entries/:id.json — en enskild artikel (numeriskt :id).
  • https://aapl.se/feeds.json — aktiva nyhetskällor.
  • https://aapl.se/feeds/:id.json — artiklarna för en källa.
  • https://aapl.se/tags.json — alla taggar.
  • https://aapl.se/tags/:id.json — artiklarna för en tagg.

Svarsform för en artikellista:

{
  "entries": [
    {
      "id": 123,
      "title": "Apple lanserar ny iPhone",
      "url": "https://källa.example/artikel",
      "image": "https://aapl.se/rails/active_storage/...",
      "summary": "Svensk AI-sammanfattning av artikeln.",
      "source": "MacRumors",
      "source_id": 7,
      "posted": "about 3 hours",
      "published_at": "2026-07-04T09:21:13Z"
    }
  ]
}

posted är en människoläsbar relativ tid (svenska ord) och kan vara null. Parsa alltid published_at (ISO) i stället — det kan vara null för äldre poster. /feeds.json ger { id, title }, /tags.json ger { id, name }.

2. /api/v1 (modernt API, Bearer-auth)

Bas: https://aapl.se/api/v1. De flesta endpoints är publika; skicka en token bara för personaliserade vyer (följda källor) med Authorization: Bearer <token>. Listsvar har höljet { data, pagination, meta }; fel returneras som { error: { type, message }, meta } med lämplig HTTP-status. Paginering via ?per_page= (max 100), språkfilter via ?lang=sv|en.

Metod & sökväg Auth Beskrivning
POST /api/v1/auth/loginLogga in med provider (email/apple/google); returnerar en token.
POST /api/v1/auth/logoutBearerRoterar och ogiltigförklarar aktuell token.
DELETE /api/v1/auth/accountBearerRaderar det autentiserade kontot permanent.
GET /api/v1/entriesvalfriArtiklar (nyast först). ?sort=popular, ?lang=.
GET /api/v1/entries/popularArtiklar ordnade på popularitet.
GET /api/v1/entries/followsBearerArtiklar från användarens följda källor.
GET /api/v1/feedsvalfriAktiva källor (med entries_count, is_following).
GET /api/v1/feeds/:idvalfriEn källa i detalj.
GET /api/v1/feeds/:id/entriesvalfriArtiklar för en källa.
POST /api/v1/feeds/:id/followBearerFölj en källa (idempotent).
DELETE /api/v1/feeds/:id/followBearerSluta följa en källa (idempotent).
GET /api/v1/tagsTaggar med artiklar.
GET /api/v1/tags/:idEn tagg i detalj (:id = slug).
GET /api/v1/tags/:id/entriesArtiklar för en tagg.

Artikelobjekten i /api/v1 innehåller id, url, main_image_url, published_at (ISO), click_count, apple_relevant, en feed, ett content-objekt (original/translated) och tags. Även här är content.*.summary sammanfattning/utdrag — aldrig full originaltext.

3. Markdown för agenter

Token-effektiva markdown-ytor med endast metadata + svensk sammanfattning. Alla bär X-Robots-Tag: noindex och sätter aldrig cookies.

  • https://aapl.se/entries/:id.md — en artikel som markdown (YAML-frontmatter + rubrik + sammanfattning + länk). Lägg .md på valfri artikel-URL, eller skicka Accept: text/markdown.
  • https://aapl.se/index.md — de senaste 50 apple_relevant-artiklarna som länkar till respektive .md-version.
  • https://aapl.se/llms.txt — startpunkt för agenter (llmstxt.org-format).

4. MCP-server (Model Context Protocol)

https://aapl.se/mcp — stateless Streamable HTTP, ingen autentisering. Anslut som custom connector i Claude (Settings → Connectors) eller i ChatGPT developer mode. Servern exponerar skrivskyddade verktyg: latest_news, popular_news, search_news (semantisk sökning), get_entry, list_feeds och list_tags. Verktygssvaren följer samma innehållssnitt som markdown-ytorna (sammanfattning + metadata, aldrig originaltext).

5. Fel & format

  • Okända artiklar/sökvägar returnerar HTTP 404 med en HTML-body (public/404.html), inte JSON — kontrollera statuskoden, inte kroppen.
  • .json-endpoints i avsnitt 1 kräver .json-suffix i sökvägen (inte bara en Accept-header).
  • RSS finns på https://aapl.se/entries.rss (senaste 50, med taggar och bilder).

Autentisering med query-parameter (?token=) är avsiktligt odokumenterad och stöds inte för nya integrationer.

© 2008 – 2026 Aapl.se - Byggt med Rails och en kärlek för RSS. Allt innehåll tillhör respektive ägare