CKAN Data API

Få tillgång till resursens data via ett webb-API med kraftfullt frågestöd.. Further information in the main CKAN Data API and DataStore documentation.

Code examples:

Get 5 results containing "jones" in any field:
curl https://data.svk.se/sv/api/action/datastore_search \
  -H"Authorization:$API_TOKEN" -d '
{
  "resource_id": "72ef5ec0-d0d7-4d22-95e9-4f22b3048af4",
  "limit": 5,
  "q": "jones"
}'
const resp = await fetch(`https://data.svk.se/sv/api/action/datastore_search`, {
    method: 'POST',
    headers: {
        'content-type': 'application/json',
        authorization: API_TOKEN
    },
    body: JSON.stringify({
        resource_id: '72ef5ec0-d0d7-4d22-95e9-4f22b3048af4',
        limit: 5,
        q: 'jones'
    })
})
await resp.json()
$json = @'
{
  "resource_id": "72ef5ec0-d0d7-4d22-95e9-4f22b3048af4",
  "limit": 5,
  "q": "jones"
}
'@
$response = Invoke-RestMethod https://data.svk.se/sv/api/action/datastore_search`
  -Method Post -Body $json -Headers @{"Authorization"="$API_TOKEN"}
$response.result.records

(using the ckanapi client library)

from ckanapi import RemoteCKAN

rc = RemoteCKAN('https://data.svk.se/sv/', apikey=API_TOKEN)
result = rc.action.datastore_search(
    resource_id="72ef5ec0-d0d7-4d22-95e9-4f22b3048af4",
    limit=5,
    q="jones",
)
print(result['records'])
library(httr2)

req <- request("https://data.svk.se/sv/api/action/datastore_search")
result <- req %>% 
    req_headers(Authorization = API_TOKEN) %>% 
    req_body_json(list(
        resource_id = '72ef5ec0-d0d7-4d22-95e9-4f22b3048af4',
        limit = 5,
        q = 'jones'))
    req_perform %>% 
    resp_body_json
Get results filtered by the contents of specific fields:
curl https://data.svk.se/sv/api/action/datastore_search \
-H"Authorization:$API_TOKEN" -d '
{
  "resource_id": "72ef5ec0-d0d7-4d22-95e9-4f22b3048af4",
  "filters": {
    "rating": "2.01",
    "subject": "free-form text"
  }
}'
const resp = await fetch(`https://data.svk.se/sv/api/action/datastore_search`, {
    method: 'POST',
    headers: {
        'content-type': 'application/json',
        authorization: API_TOKEN
    },
    body: JSON.stringify({
        resource_id: '72ef5ec0-d0d7-4d22-95e9-4f22b3048af4',
        filters: {
            subject: "free-form text",
            rating: "2.01"
        }
    })
await resp.json()
$json = @'
{
  "resource_id": "72ef5ec0-d0d7-4d22-95e9-4f22b3048af4",
  "filters": {
    "rating": "2.01",
    "subject": "free-form text"
  }
}
'@
$response = Invoke-RestMethod https://data.svk.se/sv/api/action/datastore_search`
  -Method Post -Body $json -Headers @{"Authorization"="$API_TOKEN"}
$response.result.records
from ckanapi import RemoteCKAN

ck = RemoteCKAN('https://data.svk.se/sv/', apikey=API_TOKEN)
result = ck.action.datastore_search(
    resource_id="72ef5ec0-d0d7-4d22-95e9-4f22b3048af4",
    filters={
        "rating": "2.01",
        "subject": "free-form text"
    },
)
print(result['records'])
library(httr2)

req <- request("https://data.svk.se/sv/api/action/datastore_search")
result <- req %>% 
    req_headers(Authorization = API_TOKEN) %>% 
    req_body_json(list(
        resource_id = '72ef5ec0-d0d7-4d22-95e9-4f22b3048af4', 
        filters = list(
            subject = "free-form text",
            rating = "2.01")))
    req_perform %>% 
    resp_body_json
SQL query example:
curl https://data.svk.se/sv/api/action/datastore_search_sql \
  -H"Authorization:$API_TOKEN" -d @- <<END
{
  "sql": "SELECT * FROM \"72ef5ec0-d0d7-4d22-95e9-4f22b3048af4\" WHERE subject LIKE 'jones'"
}
END
const resp = await fetch(`https://data.svk.se/sv/api/action/datastore_search_sql`, {
    method: 'POST',
    headers: {
        'content-type': 'application/json',
        authorization: API_TOKEN
    },
    body: JSON.stringify({
        sql: `SELECT * FROM "72ef5ec0-d0d7-4d22-95e9-4f22b3048af4" WHERE subject LIKE 'jones'`
    })
})
await resp.json()
$json = @'
{
  "sql": "SELECT * from \"72ef5ec0-d0d7-4d22-95e9-4f22b3048af4\" WHERE subject LIKE 'jones'"
}
'@
$response = Invoke-RestMethod https://data.svk.se/sv/api/action/datastore_search_sql`
  -Method Post -Body $json -Headers @{"Authorization"="$API_TOKEN"}
$response.result.records
from ckanapi import RemoteCKAN

ck = RemoteCKAN('https://data.svk.se/sv/', apikey=API_TOKEN)
rresult = ck.action.datastore_search_sql(
    sql="""SELECT * from "72ef5ec0-d0d7-4d22-95e9-4f22b3048af4" WHERE subject LIKE 'jones'"""
)
print(result['records'])
library(httr2)

req <- request("https://data.svk.se/sv/api/action/datastore_search_sql")
result <- req %>% 
    req_headers(Authorization = API_TOKEN) %>% 
    req_body_json(list(
        sql = "SELECT * FROM \"72ef5ec0-d0d7-4d22-95e9-4f22b3048af4\" WHERE subject LIKE 'jones'"))
    req_perform %>% 
    resp_body_json

Some API endpoints may be accessed using a GET query string.

Exempelfråga (första 5 svaren)

https://data.svk.se/sv/api/action/datastore_search?resource_id=72ef5ec0-d0d7-4d22-95e9-4f22b3048af4&limit=5

Exempelfråga (svar som innehåller 'jones')

https://data.svk.se/sv/api/action/datastore_search?resource_id=72ef5ec0-d0d7-4d22-95e9-4f22b3048af4&q=jones

Exempelfråga (via SQL-sats)

https://data.svk.se/sv/api/action/datastore_search_sql?sql=SELECT * from "72ef5ec0-d0d7-4d22-95e9-4f22b3048af4" WHERE title LIKE 'jones'