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:
- JSON (standard)
- CSV: Lägg till
format=csv
som query parameter
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
- Komplett datum:
ÅÅÅÅ-MM-DD
- År och månad:
ÅÅÅÅ-MM
- Endast år:
ÅÅÅÅ
- Månad och dag:
MM-DD
- Datumintervall:
ÅÅÅÅ-MM--ÅÅÅÅ-MM
ellerÅÅÅÅ--ÅÅÅÅ
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:
- 200: Framgång
- 400: Ogiltig Förfrågan - Ogiltiga parametrar
- 404: Hittas Inte - Tal eller resurs hittas inte
- 500: Internt Serverfel
Felsvar inkluderar ett meddelande som beskriver felet.