Find an API

Search public APIs with auth details & Postman guides

← All APIs

Assess API

codat · Finance

Finance No Auth Free & Open financial

Codat's Assess API enable you to make smarter credit decisions on your small business customers. Assess enriches your customer's accounting, commerce and banking data to surface actionable insights you didn't have before. [Read more...](https://www.codat.io/assess/) [See our OpenAPI spec](https://github.com/codatio/oas)

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

GET Enhanced Invoices Report

Gets a list of invoices linked to the corresponding banking transaction

https://api.apis.guru/v2/specs/codat.io/assess/1.0/companies/{companyId}/reports/enhancedInvoices?page=1&query=test&pageSize=100

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/codat.io/assess/1.0/companies/{companyId}/reports/enhancedInvoices?page=1&query=test&pageSize=100"
import requests
params = {
    "page": "1",
    "query": "test",
    "pageSize": "100"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/codat.io/assess/1.0/companies/{companyId}/reports/enhancedInvoices",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/codat.io/assess/1.0/companies/{companyId}/reports/enhancedInvoices');
url.searchParams.set('page', '1');
url.searchParams.set('query', 'test');
url.searchParams.set('pageSize', '100');

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/codat.io/assess/1.0/companies/{companyId}/reports/enhancedInvoices")
	q := baseURL.Query()
	q.Set("page", "1")
	q.Set("query", "test")
	q.Set("pageSize", "100")
	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/codat.io/assess/1.0/companies/{companyId}/reports/enhancedInvoices")
uri.query = URI.encode_www_form({
  "page" => "1",
  "query" => "test",
  "pageSize" => "100"
})

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/codat.io/assess/1.0/companies/{companyId}/reports/enhancedInvoices?" . http_build_query([
    "page" => "1",
    "query" => "test",
    "pageSize" => "100"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Enhanced Balance Sheet Accounts

The Enhanced Balance Sheet Accounts endpoint returns a list of categorized accounts that appear on a company’s Balance Sheet along with a balance per financial statement date. Codat suggests a category for each account automatically, but you can [change it](/docs/assess-categorizing-accounts-ecomme

https://api.apis.guru/v2/specs/codat.io/assess/1.0/companies/{companyId}/reports/enhancedBalanceSheet/accounts?reportDate=29-09-2020&numberOfPeriods=1

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/codat.io/assess/1.0/companies/{companyId}/reports/enhancedBalanceSheet/accounts?reportDate=29-09-2020&numberOfPeriods=1"
import requests
params = {
    "reportDate": "29-09-2020",
    "numberOfPeriods": "1"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/codat.io/assess/1.0/companies/{companyId}/reports/enhancedBalanceSheet/accounts",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/codat.io/assess/1.0/companies/{companyId}/reports/enhancedBalanceSheet/accounts');
url.searchParams.set('reportDate', '29-09-2020');
url.searchParams.set('numberOfPeriods', '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/codat.io/assess/1.0/companies/{companyId}/reports/enhancedBalanceSheet/accounts")
	q := baseURL.Query()
	q.Set("reportDate", "29-09-2020")
	q.Set("numberOfPeriods", "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/codat.io/assess/1.0/companies/{companyId}/reports/enhancedBalanceSheet/accounts")
uri.query = URI.encode_www_form({
  "reportDate" => "29-09-2020",
  "numberOfPeriods" => "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/codat.io/assess/1.0/companies/{companyId}/reports/enhancedBalanceSheet/accounts?" . http_build_query([
    "reportDate" => "29-09-2020",
    "numberOfPeriods" => "1"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Get enhanced cash flow report

The Enhanced Cash Flow Transactions endpoint provides a fully categorized list of banking transactions for a company. Accounts and transaction data are obtained from the company's banking data sources.

https://api.apis.guru/v2/specs/codat.io/assess/1.0/companies/{companyId}/reports/enhancedCashFlow/transactions?page=1&query=test&pageSize=100

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/codat.io/assess/1.0/companies/{companyId}/reports/enhancedCashFlow/transactions?page=1&query=test&pageSize=100"
import requests
params = {
    "page": "1",
    "query": "test",
    "pageSize": "100"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/codat.io/assess/1.0/companies/{companyId}/reports/enhancedCashFlow/transactions",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/codat.io/assess/1.0/companies/{companyId}/reports/enhancedCashFlow/transactions');
url.searchParams.set('page', '1');
url.searchParams.set('query', 'test');
url.searchParams.set('pageSize', '100');

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/codat.io/assess/1.0/companies/{companyId}/reports/enhancedCashFlow/transactions")
	q := baseURL.Query()
	q.Set("page", "1")
	q.Set("query", "test")
	q.Set("pageSize", "100")
	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/codat.io/assess/1.0/companies/{companyId}/reports/enhancedCashFlow/transactions")
uri.query = URI.encode_www_form({
  "page" => "1",
  "query" => "test",
  "pageSize" => "100"
})

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/codat.io/assess/1.0/companies/{companyId}/reports/enhancedCashFlow/transactions?" . http_build_query([
    "page" => "1",
    "query" => "test",
    "pageSize" => "100"
]);
$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 Assess API?

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