Plans & billing
List plans
Returns the plans finta.com advertises, cheapest first, at current list prices. The list is the same for every company, so it needs only API access. It doesn’t count toward the monthly API limit and keeps answering after that limit is reached. Enterprise is priced and limited by contract, so its price and limits are null; its description links to book a call.
GET
/
plans
List plans
curl --request GET \
--url https://app.finta.com/api/v1/plans \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.finta.com/api/v1/plans"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.finta.com/api/v1/plans', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.finta.com/api/v1/plans",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.finta.com/api/v1/plans"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.finta.com/api/v1/plans")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.finta.com/api/v1/plans")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"object": "list",
"url": "/api/v1/plans",
"data": [
{
"id": "startup",
"object": "plan",
"name": "Startup",
"description": "For funded startups needing automation, investor updates, or financial visibility.",
"price_cents": 9900,
"currency": "USD",
"interval": "month",
"limits": {
"categorizations_per_month": 3000,
"transactions": 100000,
"api_calls_per_month": 300,
"mcp_calls_per_month": 300,
"ai_credits_per_month": 30
},
"features": [
"Everything in Formation",
"3,000 categorizations / mo.",
"100,000 transactions",
"Slack support",
"International subsidiaries",
"Slack notifications",
"API"
]
},
{
"id": "enterprise",
"object": "plan",
"name": "Enterprise",
"description": "For companies with custom requirements. Book a call at https://cal.com/finta/intro.",
"price_cents": null,
"currency": "USD",
"interval": null,
"limits": {
"categorizations_per_month": null,
"transactions": null,
"api_calls_per_month": null,
"mcp_calls_per_month": null,
"ai_credits_per_month": null
},
"features": [
"Everything in Growth",
"Custom usage limits",
"Custom onboarding and migration",
"Custom integrations",
"Dedicated account manager",
"Guaranteed response times"
]
}
]
}Was this page helpful?
⌘I
List plans
curl --request GET \
--url https://app.finta.com/api/v1/plans \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.finta.com/api/v1/plans"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.finta.com/api/v1/plans', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.finta.com/api/v1/plans",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.finta.com/api/v1/plans"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.finta.com/api/v1/plans")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.finta.com/api/v1/plans")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"object": "list",
"url": "/api/v1/plans",
"data": [
{
"id": "startup",
"object": "plan",
"name": "Startup",
"description": "For funded startups needing automation, investor updates, or financial visibility.",
"price_cents": 9900,
"currency": "USD",
"interval": "month",
"limits": {
"categorizations_per_month": 3000,
"transactions": 100000,
"api_calls_per_month": 300,
"mcp_calls_per_month": 300,
"ai_credits_per_month": 30
},
"features": [
"Everything in Formation",
"3,000 categorizations / mo.",
"100,000 transactions",
"Slack support",
"International subsidiaries",
"Slack notifications",
"API"
]
},
{
"id": "enterprise",
"object": "plan",
"name": "Enterprise",
"description": "For companies with custom requirements. Book a call at https://cal.com/finta/intro.",
"price_cents": null,
"currency": "USD",
"interval": null,
"limits": {
"categorizations_per_month": null,
"transactions": null,
"api_calls_per_month": null,
"mcp_calls_per_month": null,
"ai_credits_per_month": null
},
"features": [
"Everything in Growth",
"Custom usage limits",
"Custom onboarding and migration",
"Custom integrations",
"Dedicated account manager",
"Guaranteed response times"
]
}
]
}