API-dokumentation för svenskatal.se

Base URL

https://www.svenskatal.se/api/v1

Endpoints

Lista över Tal

GET /speeches

Hämta en lista över tal med valfri filtrering och sortering.

Svarsformat

API:et stödjer två svarsformat:

För att ta emot svar i CSV-format, lägg till ?format=csv till URL:en.

Förfrågningsparametrar

Parameter Beskrivning Exempel
q Söktext över alla fält eller specificerade fält q=demokrati
fields Begränsa sökning till specifika fält. Flera värden accepteras. fields=title,location
tags Filtrera efter taggar. Kommaseparerad lista. tags=demokrati,krig
speaker_id Filtrera tal efter specifikt talar-ID speaker_id=1
date Filtrera efter datum eller datumintervall i ISO-8601 format date=2023 eller date=2023-01--2023-06
sort Sortera resultat efter specificerat fält sort=date
mode Formatering av transkription. Alternativ: plain (standard), html mode=html
format Svarsformat. Alternativ: json (standard), csv format=csv
page Sidnummer för paginering page=2
per_page Antal resultat per sida (standard: 10, max: 50) per_page=25

Fältparametervärden: - title (titel) - location (plats) - language (språk) - circumstances (omständigheter) - transcription (transkription)

Sorteringsparametervärden: - title (titel) - score (poäng, standard) - date (datum)

Tillståndsparametervärden: - plain (vanlig, standard) - html

Datumparameterformat

Obs: Datumintervall måste innehålla årtal.

Hämta Tal efter ID

GET /speeches/:id

Hämta ett specifikt tal efter dess ID.

Svarsformat

JSON Format

{
  "speeches": [
    {
      "id": number,
      "url": string,
      "created_at": string,
      "updated_at": string,
      "title": string,
      "language": string,
      "location": string,
      "circumstances": string,
      "date": {
        "iso_date": string,
        "day": number,
        "month": number,
        "year": number
      },
      "speakers": [
        {
          "id": number,
          "lastname": string,
          "firstname": string,
          "title": string,
          "born_year": number
        }
      ],
      "transcription": string|html,
      "tags": [
        {
          "name": string,
          "context": string
        }
      ]
    }
  ],
  "meta": {
    "current_page": number,
    "total_pages": number, 
    "total_count": number,
    "per_page": number
  }
}

CSV Format

CSV-svar innehåller följande kolumner:

ID, Created, Updated, URL, Title, Language, Location, Circumstances, ISO date, Day, Month, Year, Speakers id, Speakers name, Speakers title, Speakers born year, Transcription, Tags, Tags context

Pagineringsinformation läggs till som kommentarer i slutet av CSV-filen:

# Pagination info
# Current page: 1 Total pages: 25 Total count: 1234 Per page: 50

Paginering

För både JSON och CSV-format inkluderar API:et följande pagineringsheaders:

X-Pagination-Current-Page: 1
X-Pagination-Total-Pages: 25
X-Pagination-Total-Count: 1234
X-Pagination-Per-Page: 50

Exempel

Lista alla tal från 2023 i CSV-format

GET /speeches?date=2023&format=csv

Sök efter tal om demokrati endast i titlar

GET /speeches?q=demokrati&fields=title

Hämta tal från specifik talare sorterade efter datum

GET /speeches?speaker_id=1&sort=date

Filtrera tal med flera taggar

GET /speeches?tags=demokrati,krig,fred

Hämta tal från första hälften av 2023

GET /speeches?date=2023-01--2023-06

Hämta tal med HTML-formatering

GET /speeches?mode=html

Hämta sida två med 25 resultat per sida

GET /speeches?page=2&per_page=25

Felsvar

API:et returnerar standard HTTP-statuskoder:

Felsvar inkluderar ett meddelande som beskriver felet.