Find an API

Search public APIs with auth details & Postman guides

← All APIs

Up API

up · Finance

Finance No Auth Free & Open financial

The Up API gives you programmatic access to your balances and transaction data. You can request past transactions or set up webhooks to receive real-time events when new transactions hit your account. It’s new, it’s exciting and it’s just the beginning.

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

GET List accounts

Retrieve a paginated list of all accounts for the currently authenticated user. The returned list is paginated and can be scrolled by following the `prev` and `next` links where present.

https://api.apis.guru/v2/specs/up.com.au/v1/accounts?page[size]=1&filter[accountType]=example&filter[ownershipType]=example

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/up.com.au/v1/accounts?page[size]=1&filter[accountType]=example&filter[ownershipType]=example"
import requests
params = {
    "page[size]": "1",
    "filter[accountType]": "example",
    "filter[ownershipType]": "example"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/up.com.au/v1/accounts",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/up.com.au/v1/accounts');
url.searchParams.set('page[size]', '1');
url.searchParams.set('filter[accountType]', 'example');
url.searchParams.set('filter[ownershipType]', 'example');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

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

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/up.com.au/v1/accounts")
	q := baseURL.Query()
	q.Set("page[size]", "1")
	q.Set("filter[accountType]", "example")
	q.Set("filter[ownershipType]", "example")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	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/up.com.au/v1/accounts")
uri.query = URI.encode_www_form({
  "page[size]" => "1",
  "filter[accountType]" => "example",
  "filter[ownershipType]" => "example"
})

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

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/up.com.au/v1/accounts?" . http_build_query([
    "page[size]" => "1",
    "filter[accountType]" => "example",
    "filter[ownershipType]" => "example"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET List categories

Retrieve a list of all categories and their ancestry. The returned list is not paginated.

https://api.apis.guru/v2/specs/up.com.au/v1/categories?filter[parent]=example

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/up.com.au/v1/categories?filter[parent]=example"
import requests
params = {
    "filter[parent]": "example"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/up.com.au/v1/categories",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/up.com.au/v1/categories');
url.searchParams.set('filter[parent]', 'example');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

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

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/up.com.au/v1/categories")
	q := baseURL.Query()
	q.Set("filter[parent]", "example")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	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/up.com.au/v1/categories")
uri.query = URI.encode_www_form({
  "filter[parent]" => "example"
})

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

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/up.com.au/v1/categories?" . http_build_query([
    "filter[parent]" => "example"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET List tags

Retrieve a list of all tags currently in use. The returned list is [paginated](#pagination) and can be scrolled by following the `next` and `prev` links where present. Results are ordered lexicographically. The `transactions` relationship for each tag exposes a link to get the transactions with the

https://api.apis.guru/v2/specs/up.com.au/v1/tags?page[size]=1

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/up.com.au/v1/tags?page[size]=1"
import requests
params = {
    "page[size]": "1"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/up.com.au/v1/tags",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/up.com.au/v1/tags');
url.searchParams.set('page[size]', '1');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

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

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/up.com.au/v1/tags")
	q := baseURL.Query()
	q.Set("page[size]", "1")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	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/up.com.au/v1/tags")
uri.query = URI.encode_www_form({
  "page[size]" => "1"
})

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

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/up.com.au/v1/tags?" . http_build_query([
    "page[size]" => "1"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$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 Up API?

Up 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. Up 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 ↗