Tolletatens API gir deg muligheten til å hente sanntidsdata for blant annet valutakurser, tolltariffer, og handelsinformasjon. I denne guiden viser jeg hvordan du kan bruke Python til å hente og filtrere data fra API-en for egne behov.
Hvorfor Tolletatens API?
API-et tilbyr strukturert og oppdatert data som er relevant for bedrifter, økonomer, og utviklere. Med riktig bruk kan du:
- Automatisere oppgaver som valutakursoppdateringer.
- Hente tilpasset data for rapporter.
- Koble data med andre systemer for analyse.
Tilgjengelige Datasett
Her er en oversikt over noen av datasettene som er tilgjengelige via Tolletatens API. En fullstendig liste finner du på Tolletatens datasettoversikt.
- Valutakurs / Exchange rates: Gjeldende og fremtidige valutakurser, oppdatert ukentlig. Brukes for deklarasjoner.
- Henvisninger: Informasjon om tollkvoter, tollnedsettelser og spesielle bestemmelser.
- Datogyldighet på varenummer: Viser gyldighetsperioder for varenummer, inkludert endringer og utløp.
- Bound Tariff Concessions: Data om tollsatser som gjelder for ulike varenummer, inkludert MFN-satser.
- Tolltariff struktur: Hierarkisk struktur av tolltariffen med varenummer og beskrivelser.
- Avgifter ved innførsel: Satser og avgifter knyttet til innførsel av varer basert på varenummer og landgruppe.
- Nåværende og fremtidige tollavgiftsatser: Tollsatser for landbruksvarer, tekstiler, og andre tollbelagte varer.
- Free Trade Agreements: Oversikt over Norges tollmessige forpliktelser i ulike frihandelsavtaler.
- Restriksjoner ved utførsel / Export restrictions: Eksportrestriksjoner, inkludert krav om tillatelser.
- Restriksjoner ved innførsel / Import restrictions: Importrestriksjoner som krever spesifikke tillatelser.
- Historisk valutakurs: Valutakurser for de siste fem årene, med standard ISO4217.
- Tollkvoter: Kvoter for bestemte varegrupper, inkludert kjøtt og landbruksvarer.
- Referansekoder ved innførsel og utførsel: Koder knyttet til spesielle krav ved inn- eller utførsel av varer.
- Feilmeldinger i TVINN: Oversikt over feilkoder generert av TVINN-systemet.
- Avgifter ved utførsel: Avgifter og satser som gjelder ved utførsel av varer.
- Lettelser for tollavgift: Informasjon om lettelser for spesifikke varegrupper, som luftfartøyer og deler.
- Landgrupper og Landkoder: Oversikt over landgrupper og landkoder som brukes i deklarasjoner.
- Nåværende og fremtidige råvaretollsatser: Råvaretollavgifter for bearbeidede landbruksvarer.
- Typetilfeller ved omberegning: Liste over årsaker til omberegning av toll- og avgiftsdeklarasjoner.
- Prosedyrekoder i TVINN: Koder som beskriver formålet med inn- eller utførsel.
Steg 1: Hente Metadata
Før du begynner å jobbe med data fra Tolletatens API, er det viktig å hente metadata for å få oversikt over hva som er tilgjengelig i datasettet. Dette inkluderer informasjon om ressurstyper (f.eks. JSON, XML, CSV), oppdateringsfrekvens, og hvilke felter som finnes. I dette eksemplet bruker vi datasettet valutakurs for å vise hvordan du kan hente metadata og forstå strukturen.
Kodeeksempel: Hente Metadata
Her viser jeg et enkelt eksempel på hvordan du kan hente metadata ved hjelp av Python og biblioteket requests
.
import requests
DATASET_URL = "https://data.toll.no/api/3/action/package_show?id=valutakurs"
response = requests.get(DATASET_URL)
if response.status_code == 200:
metadata = response.json()
if metadata.get("success"):
print("Metadata hentet:")
print(metadata["result"]) # Skriv ut metadata
else:
print("Feil: Metadata kunne ikke hentes.")
else:
print(f"HTTP-feil: {response.status_code}")
Steg 2: Forstå Datastrukturen
Bruk metadata til å hente datastrukturen for å planlegge hvordan du skal håndtere dataene.
Kodeeksempel
import requests
import json
def extract_structure(data):
if isinstance(data, dict):
return {k: extract_structure(v) for k, v in data.items()}
elif isinstance(data, list):
return [extract_structure(data[0])] if data else []
return type(data).__name__
DATASET_METADATA_URL = "https://data.toll.no/api/3/action/package_show?id=valutakurs"
metadata_response = requests.get(DATASET_METADATA_URL).json()
resources = metadata_response["result"]["resources"]
resource_url = next((res["url"] for res in resources if res["format"].upper() == "JSON"), None)
data = requests.get(resource_url).json()
structure = extract_structure(data)
print("Datastruktur for valutakurs:")
print(json.dumps(structure, indent=4))
Steg 3: Hente og Filtrere Data
Til slutt kan du hente dataene og bruke filtre for å tilpasse dem etter dine behov.
Kodeeksempel
import requests
import pandas as pd
DATASET_URL = "https://data.toll.no/api/3/action/package_show?id=valutakurs_historisk"
CSV_FILE_NAME = "filtered_valutakurser.csv"
start_date = "2024-06-01"
end_date = "2024-12-15"
currency_filter = "USD"
response = requests.get(DATASET_URL)
resource_url = next((res["url"] for res in response.json()["result"]["resources"] if res["format"].upper() == "JSON"), None)
data = requests.get(resource_url).json()
kurs_data = data.get("omregningskurser", [])
filtered_data = [
item for item in kurs_data
if start_date <= item.get("fomdato", "") <= end_date and item.get("valutakode") == currency_filter
]
df = pd.DataFrame(filtered_data)
df.to_csv(CSV_FILE_NAME, index=False, encoding="utf-8-sig")
print(f"Filtrerte data lagret i {CSV_FILE_NAME}")
Oppsummering
Med Tolletatens API kan du hente tilpasset data på en effektiv måte. Denne guiden viser grunnleggende teknikker som kan utvides etter behov. Besøk mitt GitHub-repository for mer informasjon og kodeeksempler, eller besøk tollportalen.no der det finnes flere dataset og spesialtilpassede verktøy laget fra API-et. Dette var et enkelt eksempel og kan utvides ved å kombinere flere dataset sammen eller integrere data med andre norska eller internatsjonale API-er.
Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *