Passager

Transportstyrelsen ansvarar för trängselskattesystemet i Sverige trängselskattesystem och för att broavgifter tas ut vid Motala- och Sundsvallsbron. Trängselskatten syftar till att minska trängseln, förbättra miljön och bidra till att finansiera infrastruktursatsningar. Infrastrukturavgifter tas ut för att finansiera bygget av en ny bro, väg eller tunnel. Läs mer om infrastrukturavgift och trängselskatt.

API:et innehåller öppna data kopplat till passager genom uppsatta betalstationer i Göteborg, Stockholm samt vid Motala- och Sundsvallsbron.

Har ni frågor om eller funderingar kring datat så hör av er till: oppnadata@transportstyrelsen.se

AntalByBetalstation

Operationen returnerar antal passager genom uppsatta betalstationer i Göteborg, Stockholm (Trängselskatten) samt vid Motala- och Sundsvallsbron (Infrastrukturavgift) vid en given tidpunkt.

Kommun kan vara ett av följande värden:
Ale, Alingsås, Alvesta, Aneby, Arboga, Arjeplog, Arvidsjaur, Arvika, Askersund, Avesta, Bengtsfors, Berg, Bjurholm, Bjuv, Boden, Bollebygd, Bollnäs, Borgholm, Borlänge, Borås, Botkyrka, Boxholm, Bromölla, Bräcke, Burlöv, Båstad, Dals-Ed, Danderyd, Degerfors, Dorotea, Eda, Ekerö, Eksjö, Emmaboda, Enköping, Eskilstuna, Eslöv, Essunga, Fagersta, Falkenberg, Falköping, Falun, Filipstad, Finspång, Flen, Forshaga, Färgelanda, Gagnef, Gislaved, Gnesta, Gnosjö, Gotland, Grums, Grästorp, Gullspång, Gällivare, Gävle, Göteborg, Götene, Habo, Hagfors, Hallsberg, Hallstahammar, Halmstad, Hammarö, Haninge, Haparanda, Heby, Hedemora, Helsingborg, Herrljunga, Hjo, Hofors, Huddinge, Hudiksvall, Hultsfred, Hylte, Hällefors, Härjedalen, Härnösand, Härryda, Hässleholm, Håbo, Höganäs, Högsby, Hörby, Höör, Jokkmokk, Järfälla, Jönköping, Kalix, Kalmar, Karlsborg, Karlshamn, Karlskoga, Karlskrona, Karlstad, Katrineholm, Kil, Kinda, Kiruna, Klippan, Knivsta, Kramfors, Kristianstad, Kristinehamn, Krokom, Kumla, Kungsbacka, Kungsör, Kungälv, Kävlinge, Köping, Laholm, Landskrona, Laxå, Lekeberg, Leksand, Lerum, Lessebo, Lidingö, Lidköping, Lilla Edet, Lindesberg, Linköping, Ljungby, Ljusdal, Ljusnarsberg, Lomma, Ludvika, Luleå, Lund, Lycksele, Lysekil, Malmö, Malung-Sälen, Malå, Mariestad, Mark, Markaryd, Mellerud, Missing, Mjölby, Mora, Motala, Mullsjö, Munkedal, Munkfors, Mölndal, Mönsterås, Mörbylånga, Nacka, Nora, Norberg, Nordanstig, Nordmaling, Norrköping, Norrtälje, Norsjö, Nybro, Nykvarn, Nyköping, Nynäshamn, Nässjö, Ockelbo, Olofström, Orsa, Orust, Osby, Oskarshamn, Ovanåker, Oxelösund, Pajala, Partille, Perstorp, Piteå, Ragunda, Robertsfors, Ronneby, Rättvik, Sala, Salem, Sandviken, Sigtuna, Simrishamn, Sjöbo, Skara, Skellefteå, Skinnskatteberg, Skurup, Skövde, Smedjebacken, Sollefteå, Sollentuna, Solna, Sorsele, Sotenäs, Staffanstorp, Stenungsund, Stockholm, Storfors, Storuman, Strängnäs, Strömstad, Strömsund, Sundbyberg, Sundsvall, Sunne, Surahammar, Svalöv, Svedala, Svenljunga, Säffle, Säter, Sävsjö, Söderhamn, Söderköping, Södertälje, Sölvesborg, Tanum, Tibro, Tidaholm, Tierp, Timrå, Tingsryd, Tjörn, Tomelilla, Torsby, Torsås, Tranemo, Tranås, Trelleborg, Trollhättan, Trosa, Tyresö, Täby, Töreboda, Uddevalla, Ulricehamn, Umeå, Upplands Väsby, Upplands-Bro, Uppsala, Uppvidinge, Vadstena, Vaggeryd, Valdemarsvik, Vallentuna, Vansbro, Vara, Varberg, Vaxholm, Vellinge, Vetlanda, Vilhelmina, Vimmerby, Vindeln, Vingåker, Vänersborg, Vännäs, Värmdö, Värnamo, Västervik, Västerås, Växjö, Vårgårda, Ydre, Ystad, Älmhult, Älvdalen, Älvkarleby, Älvsbyn, Ängelholm, Åmål, Ånge, Åre, Årjäng, Åsele, Åstorp, Åtvidaberg, Öckerö, Ödeshög, Örebro, Örkelljunga, Örnsköldsvik, Östersund, Österåker, Östhammar, Östra Göinge, Överkalix, eller Övertorneå.

Betalstation kan vara ett av följande värden:

  • Stockholm:
    Bobergsgatan, Danvikstull, Drottningholmsvägen - från Alvik, Drottningholmsvägen - från E4N, Drottningholmsvägen - till Alvik, Drottningholmsvägen - till E4S, Ekelundsbron, Ekhagen - 211, Ekhagen - 212, Ekhagen - 213, Ekhagen - 214, Gasverksvägen, Johanneshovsbron, Klarastrandsleden, Lidingövägen, Liljeholmsbron, Lilla Essingen - till E4N, Lilla Frescativägen, Lindhagensgatan - från E4, Lindhagensgatan - till E4, Norra Hamnvägen, Norrtull Norra stationsgatan, Norrtull Sveavägen, Norrtull Tillfällig väg 1, Norrtull Tillfällig väg 2, Norrtullstunneln, Ropsten, 261, Ropsten, 262, Ropsten, 263, Ropsten, 264, Roslagstull, Roslagsvägen, Skansbron, Skanstullsbron, Solnabron Nord, Solnabron Syd, Stora Essingen - Från E4N, Stora Essingen - från E4S, Stora Essingen - Till E4S, Tomtebodavägen, Tpl Fredhäll - Essingeleden - Från Alvik, Tpl Fredhäll - Essingeleden - Mot Alvik, Tpl Fredhäll - Essingeleden - Norrgående, Tpl Fredhäll - Essingeleden - Södergående, Tpl Kristineberg - avfart E4N, Tpl Kristineberg - avfart E4S, Tpl Kristineberg - påfart E4N, Tpl Kristineberg - påfart E4S, Universitetet, Värtan - från E20/Hjorthagsv Öst mot Tpl Värtan, Värtan - från E20/Hjorthagsv/Lidingöv mot S. Hamnv, Värtan - till E20/Hjorthagsv Väst från Tpl Värtan, Värtan - till E20/Hjorthagsv Öst mot Södra Hamnv, eller Värtan - till E20/Hjorthagsv/Lidingöv fr. S. Hamnv.
  • Göteborg:
    Almedalsvägen, Backadalen, Dag Hammarskjöldsleden, Doktor Allards gata, E20 Alingsåsleden, E45 Marieholmsleden, E45 Oskarsleden, E6/E20 Kungsbackaleden, Ehrenströmsgatan, Emigrantvägen, Fjällgatan/Jungmansgatan, Fridkullagatan, Gibraltargatan, Hjalmar Brantingsgatan, Karlavagnsgatan västra, Karlavagnsgatan östra, Lindholmsallén, Margretebergsgatan, Marieholmsgatan, Mölndalsvägen, Olskroksmotet avfart E20, Olskroksmotet påfart E6, Partihandelsgatan, Polstjärnegatan, Redbergsvägen, Ringömotet, Salsmästaregatan, Sankt Sigfridsgatan, Skälltorpsvägen, Stigbergsliden, Södra Tagenevägen, Tingstadsmotet avfart E6, Tingstadsvägen, Willinsbron, Älvsborgsbron, eller Örgrytevägen.
  • Övriga:
    Motalabron, Sundsvallsbron Norrgående, Sundsvallsbron Norrgående Påfart, Sundsvallsbron Södergående, eller Sundsvallsbron Södergående Avfart.

Try it

Request URL

Request parameters

string

Format - date-time (as date-time in RFC3339).

(optional)
string
(optional)
string

HH:MM

(optional)
string

HH:MM

(optional)
string
(optional)
string
(optional)
string
(optional)
string

Request headers

string
Subscription key which provides access to this API. Found in your Profile.

Request body

Response 200

OK

{
  "format": "int32",
  "type": "integer"
}
0
{
  "format": "int32",
  "type": "integer"
}
0
{
  "format": "int32",
  "type": "integer"
}

Code samples

@ECHO OFF

curl -v -X GET "https://tsopendata.azure-api.net/Passager/v0.1/AntalByBetalstation?Passagedatum={string}&Betalstation={string}&PassageTidStart={string}&PassageTidStopp={string}&Lan={string}&Kommun={string}&Fordonstyp={string}&Skatteobjekt={string}"
-H "Ocp-Apim-Subscription-Key: {subscription key}"

--data-ascii "{body}" 
using System;
using System.Net.Http.Headers;
using System.Text;
using System.Net.Http;
using System.Web;

namespace CSHttpClientSample
{
    static class Program
    {
        static void Main()
        {
            MakeRequest();
            Console.WriteLine("Hit ENTER to exit...");
            Console.ReadLine();
        }
        
        static async void MakeRequest()
        {
            var client = new HttpClient();
            var queryString = HttpUtility.ParseQueryString(string.Empty);

            // Request headers
            client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "{subscription key}");

            // Request parameters
            queryString["Passagedatum"] = "{string}";
            queryString["Betalstation"] = "{string}";
            queryString["PassageTidStart"] = "{string}";
            queryString["PassageTidStopp"] = "{string}";
            queryString["Lan"] = "{string}";
            queryString["Kommun"] = "{string}";
            queryString["Fordonstyp"] = "{string}";
            queryString["Skatteobjekt"] = "{string}";
            var uri = "https://tsopendata.azure-api.net/Passager/v0.1/AntalByBetalstation?" + queryString;

            var response = await client.GetAsync(uri);
        }
    }
}	
// // This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
import java.net.URI;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class JavaSample 
{
    public static void main(String[] args) 
    {
        HttpClient httpclient = HttpClients.createDefault();

        try
        {
            URIBuilder builder = new URIBuilder("https://tsopendata.azure-api.net/Passager/v0.1/AntalByBetalstation");

            builder.setParameter("Passagedatum", "{string}");
            builder.setParameter("Betalstation", "{string}");
            builder.setParameter("PassageTidStart", "{string}");
            builder.setParameter("PassageTidStopp", "{string}");
            builder.setParameter("Lan", "{string}");
            builder.setParameter("Kommun", "{string}");
            builder.setParameter("Fordonstyp", "{string}");
            builder.setParameter("Skatteobjekt", "{string}");

            URI uri = builder.build();
            HttpGet request = new HttpGet(uri);
            request.setHeader("Ocp-Apim-Subscription-Key", "{subscription key}");


            // Request body
            StringEntity reqEntity = new StringEntity("{body}");
            request.setEntity(reqEntity);

            HttpResponse response = httpclient.execute(request);
            HttpEntity entity = response.getEntity();

            if (entity != null) 
            {
                System.out.println(EntityUtils.toString(entity));
            }
        }
        catch (Exception e)
        {
            System.out.println(e.getMessage());
        }
    }
}

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    
    NSString* path = @"https://tsopendata.azure-api.net/Passager/v0.1/AntalByBetalstation";
    NSArray* array = @[
                         // Request parameters
                         @"entities=true",
                         @"Passagedatum={string}",
                         @"Betalstation={string}",
                         @"PassageTidStart={string}",
                         @"PassageTidStopp={string}",
                         @"Lan={string}",
                         @"Kommun={string}",
                         @"Fordonstyp={string}",
                         @"Skatteobjekt={string}",
                      ];
    
    NSString* string = [array componentsJoinedByString:@"&"];
    path = [path stringByAppendingFormat:@"?%@", string];

    NSLog(@"%@", path);

    NSMutableURLRequest* _request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:path]];
    [_request setHTTPMethod:@"GET"];
    // Request headers
    [_request setValue:@"{subscription key}" forHTTPHeaderField:@"Ocp-Apim-Subscription-Key"];
    // Request body
    [_request setHTTPBody:[@"{body}" dataUsingEncoding:NSUTF8StringEncoding]];
    
    NSURLResponse *response = nil;
    NSError *error = nil;
    NSData* _connectionData = [NSURLConnection sendSynchronousRequest:_request returningResponse:&response error:&error];

    if (nil != error)
    {
        NSLog(@"Error: %@", error);
    }
    else
    {
        NSError* error = nil;
        NSMutableDictionary* json = nil;
        NSString* dataString = [[NSString alloc] initWithData:_connectionData encoding:NSUTF8StringEncoding];
        NSLog(@"%@", dataString);
        
        if (nil != _connectionData)
        {
            json = [NSJSONSerialization JSONObjectWithData:_connectionData options:NSJSONReadingMutableContainers error:&error];
        }
        
        if (error || !json)
        {
            NSLog(@"Could not parse loaded json with error:%@", error);
        }
        
        NSLog(@"%@", json);
        _connectionData = nil;
    }
    
    [pool drain];

    return 0;
}
<?php
// This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
require_once 'HTTP/Request2.php';

$request = new Http_Request2('https://tsopendata.azure-api.net/Passager/v0.1/AntalByBetalstation');
$url = $request->getUrl();

$headers = array(
    // Request headers
    'Ocp-Apim-Subscription-Key' => '{subscription key}',
);

$request->setHeader($headers);

$parameters = array(
    // Request parameters
    'Passagedatum' => '{string}',
    'Betalstation' => '{string}',
    'PassageTidStart' => '{string}',
    'PassageTidStopp' => '{string}',
    'Lan' => '{string}',
    'Kommun' => '{string}',
    'Fordonstyp' => '{string}',
    'Skatteobjekt' => '{string}',
);

$url->setQueryVariables($parameters);

$request->setMethod(HTTP_Request2::METHOD_GET);

// Request body
$request->setBody("{body}");

try
{
    $response = $request->send();
    echo $response->getBody();
}
catch (HttpException $ex)
{
    echo $ex;
}

?>
########### Python 2.7 #############
import httplib, urllib, base64

headers = {
    # Request headers
    'Ocp-Apim-Subscription-Key': '{subscription key}',
}

params = urllib.urlencode({
    # Request parameters
    'Passagedatum': '{string}',
    'Betalstation': '{string}',
    'PassageTidStart': '{string}',
    'PassageTidStopp': '{string}',
    'Lan': '{string}',
    'Kommun': '{string}',
    'Fordonstyp': '{string}',
    'Skatteobjekt': '{string}',
})

try:
    conn = httplib.HTTPSConnection('tsopendata.azure-api.net')
    conn.request("GET", "/Passager/v0.1/AntalByBetalstation?%s" % params, "{body}", headers)
    response = conn.getresponse()
    data = response.read()
    print(data)
    conn.close()
except Exception as e:
    print("[Errno {0}] {1}".format(e.errno, e.strerror))

####################################

########### Python 3.2 #############
import http.client, urllib.request, urllib.parse, urllib.error, base64

headers = {
    # Request headers
    'Ocp-Apim-Subscription-Key': '{subscription key}',
}

params = urllib.parse.urlencode({
    # Request parameters
    'Passagedatum': '{string}',
    'Betalstation': '{string}',
    'PassageTidStart': '{string}',
    'PassageTidStopp': '{string}',
    'Lan': '{string}',
    'Kommun': '{string}',
    'Fordonstyp': '{string}',
    'Skatteobjekt': '{string}',
})

try:
    conn = http.client.HTTPSConnection('tsopendata.azure-api.net')
    conn.request("GET", "/Passager/v0.1/AntalByBetalstation?%s" % params, "{body}", headers)
    response = conn.getresponse()
    data = response.read()
    print(data)
    conn.close()
except Exception as e:
    print("[Errno {0}] {1}".format(e.errno, e.strerror))

####################################
require 'net/http'

uri = URI('https://tsopendata.azure-api.net/Passager/v0.1/AntalByBetalstation')
uri.query = URI.encode_www_form({
    # Request parameters
    'Passagedatum' => '{string}',
    'Betalstation' => '{string}',
    'PassageTidStart' => '{string}',
    'PassageTidStopp' => '{string}',
    'Lan' => '{string}',
    'Kommun' => '{string}',
    'Fordonstyp' => '{string}',
    'Skatteobjekt' => '{string}'
})

request = Net::HTTP::Get.new(uri.request_uri)
# Request headers
request['Ocp-Apim-Subscription-Key'] = '{subscription key}'
# Request body
request.body = "{body}"

response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
    http.request(request)
end

puts response.body