Find an API

Search public APIs with auth details & Postman guides

← All APIs

bunq API

bunq · Finance

Finance No Auth Free & Open financial

***UPDATE:*** *We have released a [beta version of the new bunq API documentation.](https://beta.doc.bunq.com)* ***NOTICE:*** *We have updated the sandbox base url to `https://public-api.sandbox.bunq.com/v1/`. Please update your applications accordingly. Check here: for more info.* ***PSD2 NOTICE:*** *The second Payment Services Directive (PSD2) may affect your current or planned usage of our public API, as some of the API services are now subject

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

GET List_all_Device

Get a collection of Devices. A Device is either a DevicePhone or a DeviceServer.

https://api.apis.guru/v2/specs/bunq.com/1.0/device

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
User-Agent example
X-Bunq-Client-Authentication example
curl -X GET "https://api.apis.guru/v2/specs/bunq.com/1.0/device" \
  -H "User-Agent: example" \
  -H "X-Bunq-Client-Authentication: example"
import requests
headers = {
    "User-Agent": "example",
    "X-Bunq-Client-Authentication": "example"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/bunq.com/1.0/device",
    headers=headers,
)
print(response.json())
const url = 'https://api.apis.guru/v2/specs/bunq.com/1.0/device';

const response = await fetch(url, {
  headers: {
    'User-Agent': 'example',
    'X-Bunq-Client-Authentication': 'example'
  },
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	targetURL := "https://api.apis.guru/v2/specs/bunq.com/1.0/device"
	req, _ := http.NewRequest("GET", targetURL, nil)
	req.Header.Set("User-Agent", "example")
	req.Header.Set("X-Bunq-Client-Authentication", "example")

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/bunq.com/1.0/device")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)
req["User-Agent"] = "example"
req["X-Bunq-Client-Authentication"] = "example"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/bunq.com/1.0/device";
$opts = ["http" => [
    "method" => "GET",
    "header" => implode("\r\n", [
        "User-Agent: example",
        "X-Bunq-Client-Authentication: example"
    ]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET List_all_DeviceServer

Get a collection of all the DeviceServers you have created.

https://api.apis.guru/v2/specs/bunq.com/1.0/device-server

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
User-Agent example
X-Bunq-Client-Authentication example
curl -X GET "https://api.apis.guru/v2/specs/bunq.com/1.0/device-server" \
  -H "User-Agent: example" \
  -H "X-Bunq-Client-Authentication: example"
import requests
headers = {
    "User-Agent": "example",
    "X-Bunq-Client-Authentication": "example"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/bunq.com/1.0/device-server",
    headers=headers,
)
print(response.json())
const url = 'https://api.apis.guru/v2/specs/bunq.com/1.0/device-server';

const response = await fetch(url, {
  headers: {
    'User-Agent': 'example',
    'X-Bunq-Client-Authentication': 'example'
  },
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	targetURL := "https://api.apis.guru/v2/specs/bunq.com/1.0/device-server"
	req, _ := http.NewRequest("GET", targetURL, nil)
	req.Header.Set("User-Agent", "example")
	req.Header.Set("X-Bunq-Client-Authentication", "example")

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/bunq.com/1.0/device-server")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)
req["User-Agent"] = "example"
req["X-Bunq-Client-Authentication"] = "example"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/bunq.com/1.0/device-server";
$opts = ["http" => [
    "method" => "GET",
    "header" => implode("\r\n", [
        "User-Agent: example",
        "X-Bunq-Client-Authentication: example"
    ]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET List_all_Installation

You must have an active session to make this call. This call returns the Id of the the Installation you are using in your session.

https://api.apis.guru/v2/specs/bunq.com/1.0/installation

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
User-Agent example
X-Bunq-Client-Authentication example
curl -X GET "https://api.apis.guru/v2/specs/bunq.com/1.0/installation" \
  -H "User-Agent: example" \
  -H "X-Bunq-Client-Authentication: example"
import requests
headers = {
    "User-Agent": "example",
    "X-Bunq-Client-Authentication": "example"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/bunq.com/1.0/installation",
    headers=headers,
)
print(response.json())
const url = 'https://api.apis.guru/v2/specs/bunq.com/1.0/installation';

const response = await fetch(url, {
  headers: {
    'User-Agent': 'example',
    'X-Bunq-Client-Authentication': 'example'
  },
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	targetURL := "https://api.apis.guru/v2/specs/bunq.com/1.0/installation"
	req, _ := http.NewRequest("GET", targetURL, nil)
	req.Header.Set("User-Agent", "example")
	req.Header.Set("X-Bunq-Client-Authentication", "example")

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/bunq.com/1.0/installation")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)
req["User-Agent"] = "example"
req["X-Bunq-Client-Authentication"] = "example"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/bunq.com/1.0/installation";
$opts = ["http" => [
    "method" => "GET",
    "header" => implode("\r\n", [
        "User-Agent: example",
        "X-Bunq-Client-Authentication: example"
    ]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));

Postman Setup Guide

Get Postman ↗
  1. See official documentation for authentication and setup.

What can you build with bunq API?

bunq API is a Finance API. Developers commonly use finance APIs for:

  • processing payments and handling transactions
  • building subscription and billing systems
  • automating invoicing and financial reporting
  • fraud detection and risk scoring
  • connecting to banking and accounting software

No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. bunq API is free to use, making it a low-risk choice to experiment with.

New to APIs? Read our beginner's guide · Learn about API keys · What is REST?

Open documentation ↗