NAV Navbar
Danske Bank Logo
Shell HTTP JavaScript Node.JS Python Ruby Java

Danske Bank Open API v1.0.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Danske Bank Open API specification

API allows to access information about Danske Banks ATMs and branches in Denmark, Finland, Norway, Sweden.

This is only a preview, the api is not live. ETA Q2.2017

Base URL = https://obp-api.danskebank.com/open-api/v1.0

ATM

ATM data endpoint

GET /atms

Code samples

# You can also use wget
curl -X get https://obp-api.danskebank.com/open-api/v1.0/atms \
  -H 'If-Modified-Since: string' \
  -H 'If-None-Match: string' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json'

GET https://obp-api.danskebank.com/open-api/v1.0/atms HTTP/1.1
Host: undefined
Content-Type: application/json
Accept: application/json
If-Modified-Since: string
If-None-Match: string

var headers = {
  'If-Modified-Since':'string',
  'If-None-Match':'string',
  'Accept':'application/json',
  'Content-Type':'application/json'

};

$.ajax({
  url: 'https://obp-api.danskebank.com/open-api/v1.0/atms',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');

const headers = {
  'If-Modified-Since':'string',
  'If-None-Match':'string',
  'Accept':'application/json',
  'Content-Type':'application/json'

};

fetch('https://obp-api.danskebank.com/open-api/v1.0/atms',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'

headers = {
  'If-Modified-Since' => 'string',
  'If-None-Match' => 'string',
  'Accept' => 'application/json',
  'Content-Type' => 'application/json'
}

result = RestClient.get 'https://obp-api.danskebank.com/open-api/v1.0/atms', params: {
  }, headers: headers

p JSON.parse(result)
import requests
headers = {
  'If-Modified-Since': 'string',
  'If-None-Match': 'string',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

r = requests.get('https://obp-api.danskebank.com/open-api/v1.0/atms', params={

}, headers = headers)

print r.json()
URL obj = new URL("https://obp-api.danskebank.com/open-api/v1.0/atms");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Example response Http Code 200

{
   "meta":    {
      "CurrentPage": 3,
      "TotalPages": 5,
      "PageItems": 1,
      "TotalItems": 5,
      "PageSize": 1,
      "LastModified": "2017-01-01T01:01:01.000Z",
      "Agreement": "TODO Agreement",
      "License": "TODO License",
      "TermsOfUse": "TODO Terms of Use"
   },
   "data":    [
       {
         "Id": "DK154",
         "Name": "home Tårnby",
         "Address":          {
            "Country": "DK",
            "TownName": "København S",
            "PostCode": "2300",
            "StreetOrBuildingNameWithNumber": "Kastrupvej 89"
         },
         "GeographicLocation":          {
            "Latitude": "55.6520363",
            "Longitude": "12.6202463"
         },
         "Currency": ["DKK","EUR"]
      }
   ],
   "links":    {
      "First": "https://api.com/open-api/v1.0/atms?page=1&pagesize=1",
      "Prev": "https://api.com/open-api/v1.0/atms?page=2&pagesize=1",
      "Next": "https://api.com/open-api/v1.0/atms?page=4&pagesize=1",
      "Last": "https://api.com/open-api/v1.0/atms?page=5&pagesize=1"
   }
}              

Example response Http Code 400

{
   "timestamp": "2017-01-01T01:01:01.000Z",
   "status": 429,
   "error": "Bad request",
   "exception": "Exception name",
   "message": "Exception message",
   "path": "/open-api/v1.0/atms"
}

Example response Http Code 429

{
   "timestamp": "2017-01-01T01:01:01.000Z",
   "status": 429,
   "error": "Too many requests",
   "exception": "Exception name",
   "message": "Exception message",
   "path": "/open-api/v1.0/atms"
}

Example response Http Code 500

{
   "timestamp": "2017-01-01T01:01:01.000Z",
   "status": 500,
   "error": "Internal server error",
   "exception": "Exception name",
   "message": "Exception message",
   "path": "/open-api/v1.0/atms"
}

Example response Http Code 503

{
   "timestamp": "2017-01-01T01:01:01.000Z",
   "status": 503,
   "error": "Service unavailable",
   "exception": "Exception name",
   "message": "Exception message",
   "path": "/open-api/v1.0/atms"
}

Returns Atm objects.

Parameters

Parameter In Type Required Description
If-Modified-Since header string false Header for checking if data has changed since the given time. If-Modified-Since
If-None-Match header string false Header for checking if backend data is different than the sent Etag. If-None-Match
page query integer false Data page to be returned (e.g. 1)
pagesize query integer false Maximum data items that can be returned on 1 page (e.g. 100)
sort query string false Sort parameters. Format: {[+|-][id,name,country,town,street]}+ (e.g. +town,-street)
country query string false Country filter. Single value equals check (e.g. DK)
town query string false Town name filter. Substring value check (e.g. Roskil)
currency query string false Currency filter. Single value include check (e.g. EUR)
nearto query string false Filter for finding nearest ATMs. Format: latitude,longitude. Values in ISO 213 (e.g. 55.84244,12.43)

Responses

Status Meaning Description
200 OK Successful response
400 Bad Request You have sent a request which could not be understood.
429 Too Many Requests You have requested this resource too often. Slow down.
500 Internal Server Error An error occurred on the server. No further information is available.
503 Service Unavailable The service is temporarily unavailable.

Response Headers

Status Header Type Format Description
200 Strict-Transport-Security string HTTPS strict transport security
200 Etag string Data version id
200 Cache-Control string Cache max age
200 X-Frame-Options string Prevent from loading in iframes
200 X-Content-Type-Options string Prevent MIME sniffing
400 Strict-Transport-Security string HTTPS strict transport security
400 X-Frame-Options string Prevent from loading in iframes
400 X-Content-Type-Options string Prevent MIME sniffing
400 Status Code integer HTTP status code
429 Strict-Transport-Security string HTTPS strict transport security
429 X-Frame-Options string Prevent from loading in iframes
429 X-Content-Type-Options string Prevent MIME sniffing
429 Status Code integer HTTP status code
500 Strict-Transport-Security string HTTPS strict transport security
500 X-Frame-Options string Prevent from loading in iframes
500 X-Content-Type-Options string Prevent MIME sniffing
500 Status Code integer HTTP status code
503 Strict-Transport-Security string HTTPS strict transport security
503 X-Frame-Options string Prevent from loading in iframes
503 X-Content-Type-Options string Prevent MIME sniffing
503 Status Code integer HTTP status code

HEAD /atms

Code samples

# You can also use wget
curl -X head https://obp-api.danskebank.com/open-api/v1.0/atms \
  -H 'If-Modified-Since: string' \
  -H 'If-None-Match: string' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json'

HEAD https://obp-api.danskebank.com/open-api/v1.0/atms HTTP/1.1
Host: undefined
Content-Type: application/json
Accept: application/json
If-Modified-Since: string
If-None-Match: string

var headers = {
  'If-Modified-Since':'string',
  'If-None-Match':'string',
  'Accept':'application/json',
  'Content-Type':'application/json'

};

$.ajax({
  url: 'https://obp-api.danskebank.com/open-api/v1.0/atms',
  method: 'head',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');

const headers = {
  'If-Modified-Since':'string',
  'If-None-Match':'string',
  'Accept':'application/json',
  'Content-Type':'application/json'

};

fetch('https://obp-api.danskebank.com/open-api/v1.0/atms',
{
  method: 'HEAD',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'

headers = {
  'If-Modified-Since' => 'string',
  'If-None-Match' => 'string',
  'Accept' => 'application/json',
  'Content-Type' => 'application/json'
}

result = RestClient.head 'https://obp-api.danskebank.com/open-api/v1.0/atms', params: {
  }, headers: headers

p JSON.parse(result)
import requests
headers = {
  'If-Modified-Since': 'string',
  'If-None-Match': 'string',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

r = requests.head('https://obp-api.danskebank.com/open-api/v1.0/atms', params={

}, headers = headers)

print r.json()
URL obj = new URL("https://obp-api.danskebank.com/open-api/v1.0/atms");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("HEAD");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Example response Http Code default

{}

Returns info about current Atm data

Parameters

Parameter In Type Required Description
If-Modified-Since header string false No description
If-None-Match header string false No description

Responses

Status Meaning Description
default Default No response

Branch

Branch data endpoint

GET /branches

Code samples

# You can also use wget
curl -X get https://obp-api.danskebank.com/open-api/v1.0/branches \
  -H 'If-Modified-Since: string' \
  -H 'If-None-Match: string' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json'

GET https://obp-api.danskebank.com/open-api/v1.0/branches HTTP/1.1
Host: undefined
Content-Type: application/json
Accept: application/json
If-Modified-Since: string
If-None-Match: string

var headers = {
  'If-Modified-Since':'string',
  'If-None-Match':'string',
  'Accept':'application/json',
  'Content-Type':'application/json'

};

$.ajax({
  url: 'https://obp-api.danskebank.com/open-api/v1.0/branches',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');

const headers = {
  'If-Modified-Since':'string',
  'If-None-Match':'string',
  'Accept':'application/json',
  'Content-Type':'application/json'

};

fetch('https://obp-api.danskebank.com/open-api/v1.0/branches',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'

headers = {
  'If-Modified-Since' => 'string',
  'If-None-Match' => 'string',
  'Accept' => 'application/json',
  'Content-Type' => 'application/json'
}

result = RestClient.get 'https://obp-api.danskebank.com/open-api/v1.0/branches', params: {
  }, headers: headers

p JSON.parse(result)
import requests
headers = {
  'If-Modified-Since': 'string',
  'If-None-Match': 'string',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

r = requests.get('https://obp-api.danskebank.com/open-api/v1.0/branches', params={

}, headers = headers)

print r.json()
URL obj = new URL("https://obp-api.danskebank.com/open-api/v1.0/branches");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Example response Http Code 200

{
  "meta" : {
    "CurrentPage": 3,
    "TotalPages": 5,
    "PageItems": 1,
    "TotalItems": 5,
    "PageSize": 1,
    "LastModified": "2017-01-01T01:01:01.000Z",
    "Agreement": "TODO Agreement",
    "License": "TODO License",
    "TermsOfUse": "TODO Terms of Use"
  },
  "data" : {
    {
      "Id": "DK80",
      "Name": "Aabenraa Afdeling",
      "Address": {
        "Country": "DK",
        "TownName": "Aabenraa",
        "PostCode": "6200",
        "StreetOrBuildingNameWithNumber": "Storegade 3"
      },
      "GeographicLocation": {
        "Latitude": "55.0444600",
        "Longitude": "9.4188300"
      },
      "TelephoneNumber": "+45-45125170",
      "FaxNumber": "+45-45125171",
      "Email": "aabenraa@danskebank.dk",
      "OpeningTimes": [
        {
           "OpeningDay": "Monday",
           "OpeningTime": "10:00",
           "ClosingTime": "16:00"
        },{
           "OpeningDay": "Tuesday",
           "OpeningTime": "10:00",
           "ClosingTime": "16:00"
        },{
           "OpeningDay": "Wednesday",
           "OpeningTime": "10:00",
           "ClosingTime": "16:00"
        },{
           "OpeningDay": "Thursday",
           "OpeningTime": "10:00",
           "ClosingTime": "17:30"
        },{
           "OpeningDay": "Friday",
           "OpeningTime": "10:00",
           "ClosingTime": "16:00"
        }
      ],
      "CustomerSegment": ["Private"]
    }
  },
  "links" : {
    "First": "https://api.com/open-api/v1.0/branches?page=1&pagesize=1",
    "Prev": "https://api.com/open-api/v1.0/branches?page=2&pagesize=1",
    "Next": "https://api.com/open-api/v1.0/branches?page=4&pagesize=1",
    "Last": "https://api.com/open-api/v1.0/branches?page=5&pagesize=1"
  }
}

Example response Http Code 400

{
   "timestamp": "2017-01-01T01:01:01.000Z",
   "status": 400,
   "error": "Bad request",
   "exception": "Exception name",
   "message": "Exception message",
   "path": "/open-api/v1.0/branches"
}

Example response Http Code 429

{
   "timestamp": "2017-01-01T01:01:01.000Z",
   "status": 429,
   "error": "Too many requests",
   "exception": "Exception name",
   "message": "Exception message",
   "path": "/open-api/v1.0/branches"
}

Example response Http Code 500

{
   "timestamp": "2017-01-01T01:01:01.000Z",
   "status": 500,
   "error": "Internal server error",
   "exception": "Exception name",
   "message": "Exception message",
   "path": "/open-api/v1.0/branches"
}

Example response Http Code 503

{
   "timestamp": "2017-01-01T01:01:01.000Z",
   "status": 503,
   "error": "Service unavailable",
   "exception": "Exception name",
   "message": "Exception message",
   "path": "/open-api/v1.0/branches"
}

Returns Branch objects.

Parameters

Parameter In Type Required Description
If-Modified-Since header string false Header for checking if data has changed since the given time. If-Modified-Since
If-None-Match header string false Header for checking if backend data is different than the sent Etag. If-None-Match
page query integer false Data page to be returned (e.g. 1)
pagesize query integer false Maximum data items that can be returned on 1 page (e.g. 100)
sort query string false Sort parameters. Format: {[+|-][id,name,country,town,street]}+ (e.g. +town,-street)
country query string false Country filter. Single value equals check (e.g. DK)
town query string false Town name filter. Substring value check (e.g. Roskil)
openday query string false Opening day. Filters branches opened on the given date. Format: [Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday] (e.g. Monday)
openfrom query string false Opening hour from. Filters branches with opening hour ‘from’ less or equal to the given value. Format: hh:mm where: hh - integer [0,23] mm - integer [0,59] (e.g. 08:00)
opento query string false Opening hour to. Filters branches with opening hour ‘to’ greater or equal to the given value. Format: hh:mm where: hh - integer [0,23] mm - integer [0,59] (e.g. 21:00)
segment query string false Customer segment filter. Single value equals check. Format: [private|corporate] (e.g. private)
nearto query string false Filter for finding nearest Branches. Format: latitude,longitude. Values in ISO 213 (e.g. 55.84244,12.43)

Enumerated Values

Parameter Value
openday Monday
openday Tuesday
openday Wednesday
openday Thursday
openday Friday
openday Saturday
openday Sunday

Responses

Status Meaning Description
200 OK Successful response
400 Bad Request You have sent a request which could not be understood.
429 Too Many Requests You have requested this resource too often. Slow down.
500 Internal Server Error An error occurred on the server. No further information is available.
503 Service Unavailable The service is temporarily unavailable.

Response Headers

Status Header Type Format Description
200 Strict-Transport-Security string HTTPS strict transport security
200 Etag string Data version id
200 Cache-Control string Cache max age
200 X-Frame-Options string Prevent from loading in iframes
200 X-Content-Type-Options string Prevent MIME sniffing
400 Strict-Transport-Security string HTTPS strict transport security
400 X-Frame-Options string Prevent from loading in iframes
400 X-Content-Type-Options string Prevent MIME sniffing
400 Status Code integer HTTP status code
429 Strict-Transport-Security string HTTPS strict transport security
429 X-Frame-Options string Prevent from loading in iframes
429 X-Content-Type-Options string Prevent MIME sniffing
429 Status Code integer HTTP status code
500 Strict-Transport-Security string HTTPS strict transport security
500 X-Frame-Options string Prevent from loading in iframes
500 X-Content-Type-Options string Prevent MIME sniffing
500 Status Code integer HTTP status code
503 Strict-Transport-Security string HTTPS strict transport security
503 X-Frame-Options string Prevent from loading in iframes
503 X-Content-Type-Options string Prevent MIME sniffing
503 Status Code integer HTTP status code

HEAD /branches

Code samples

# You can also use wget
curl -X head https://obp-api.danskebank.com/open-api/v1.0/branches \
  -H 'If-Modified-Since: string' \
  -H 'If-None-Match: string' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json'

HEAD https://obp-api.danskebank.com/open-api/v1.0/branches HTTP/1.1
Host: undefined
Content-Type: application/json
Accept: application/json
If-Modified-Since: string
If-None-Match: string

var headers = {
  'If-Modified-Since':'string',
  'If-None-Match':'string',
  'Accept':'application/json',
  'Content-Type':'application/json'

};

$.ajax({
  url: 'https://obp-api.danskebank.com/open-api/v1.0/branches',
  method: 'head',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})
const request = require('node-fetch');

const headers = {
  'If-Modified-Since':'string',
  'If-None-Match':'string',
  'Accept':'application/json',
  'Content-Type':'application/json'

};

fetch('https://obp-api.danskebank.com/open-api/v1.0/branches',
{
  method: 'HEAD',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
require 'rest-client'
require 'json'

headers = {
  'If-Modified-Since' => 'string',
  'If-None-Match' => 'string',
  'Accept' => 'application/json',
  'Content-Type' => 'application/json'
}

result = RestClient.head 'https://obp-api.danskebank.com/open-api/v1.0/branches', params: {
  }, headers: headers

p JSON.parse(result)
import requests
headers = {
  'If-Modified-Since': 'string',
  'If-None-Match': 'string',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

r = requests.head('https://obp-api.danskebank.com/open-api/v1.0/branches', params={

}, headers = headers)

print r.json()
URL obj = new URL("https://obp-api.danskebank.com/open-api/v1.0/branches");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("HEAD");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

Example response Http Code default

{}

Returns info about current Branch data

Parameters

Parameter In Type Required Description
If-Modified-Since header string false No description
If-None-Match header string false No description

Responses

Status Meaning Description
default Default No response