curl --request GET \
--url https://app.equated.co/api/tax-filings/targets \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.equated.co/api/tax-filings/targets"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.equated.co/api/tax-filings/targets', 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.equated.co/api/tax-filings/targets",
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.equated.co/api/tax-filings/targets"
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.equated.co/api/tax-filings/targets")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.equated.co/api/tax-filings/targets")
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{
"jurisdiction": "CRA",
"formLabel": "T2",
"taxYearLabel": "2025 tax year",
"groups": [
{
"id": "income",
"label": "<string>",
"surface": "profitAndLoss",
"targets": [
{
"id": "gifi.mealsEntertainment",
"line": "GIFI 8523",
"label": "<string>",
"group": "income",
"hint": "<string>",
"citation": {
"authority": "<string>",
"title": "<string>",
"url": "<string>"
},
"contra": true,
"treatment": {
"id": "<string>",
"label": "<string>",
"allowedShare": 123,
"note": "<string>"
},
"alsoPrintsOn": "<string>",
"bookLineId": "<string>"
}
]
}
],
"totals": [
{
"code": "<string>",
"label": "<string>",
"mappable": true
}
]
}The jurisdiction's tax line catalog
Every line a bookkeeping account may be pointed at in one jurisdiction, and so the table a mapping row’s targetId resolves through. It is law rather than filer data: the same catalog for every organization, and nothing in it depends on a filing. Each group belongs to one of two surfaces, and which one changes what an amount on the line means: a profit-and-loss target carries an account’s activity for the year and is what the mapping ladder and the rollup work on, while a balance-sheet target carries one account’s closing balance straight to its line, with no ladder and no statutory limit. A target names its printed reference the way the authority prints it (GIFI 8523, Sch. 1, a bare form line number), its label and its group, plus the flags that change what its amount does: contra enters the line negated, treatment is a statutory limit that lets only allowedShare of the book amount be deducted and adds the rest back on the reconciling schedule, alsoPrintsOn is a second line the same balance prints on, and bookLineId is the financial-statement line the money sits on where the target names a different one. For the T2, totals lists the GIFI codes the return works out for itself: a total is a formula over the lines above it, so a mapping row pointing at one is refused. The exception is the handful of undivided figures the CRA also accepts as a source row, for a statement that never broke the amount down; mappable marks them, and they appear among the groups as ordinary targets. Form 1120 has no such list.
curl --request GET \
--url https://app.equated.co/api/tax-filings/targets \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.equated.co/api/tax-filings/targets"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.equated.co/api/tax-filings/targets', 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.equated.co/api/tax-filings/targets",
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.equated.co/api/tax-filings/targets"
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.equated.co/api/tax-filings/targets")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.equated.co/api/tax-filings/targets")
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{
"jurisdiction": "CRA",
"formLabel": "T2",
"taxYearLabel": "2025 tax year",
"groups": [
{
"id": "income",
"label": "<string>",
"surface": "profitAndLoss",
"targets": [
{
"id": "gifi.mealsEntertainment",
"line": "GIFI 8523",
"label": "<string>",
"group": "income",
"hint": "<string>",
"citation": {
"authority": "<string>",
"title": "<string>",
"url": "<string>"
},
"contra": true,
"treatment": {
"id": "<string>",
"label": "<string>",
"allowedShare": 123,
"note": "<string>"
},
"alsoPrintsOn": "<string>",
"bookLineId": "<string>"
}
]
}
],
"totals": [
{
"code": "<string>",
"label": "<string>",
"mappable": true
}
]
}Authorizations
API token issued from the Equated app under Settings → API Tokens.
Query Parameters
Whose catalog to read: CRA for the T2 (GIFI), IRS for Form 1120.
CRA, IRS Response
The jurisdiction's line catalog
CRA, IRS "T2"
"2025 tax year"
Show child attributes
Show child attributes
The lines the return works out for itself rather than reading off a mapping. CRA only; Form 1120 has no such list.
Show child attributes
Show child attributes