Quickstart
Send your first request to Tango in under five minutes — an end-to-end example with authentication, submission, and status polling.
API Reference
Browse the per-integration OpenAPI 3.1 specs with request/response schemas, parameters, and example payloads.
Integration domains
Pick the area that matches what you’re integrating. Each integration page links to its OpenAPI spec and a Markdown reference (validations, field tables, edge cases).Lease integrations
Accounts Payable & Receivable, GL accruals, lease attributes, sales / percent rent, CPI indices, and lease invoices. Covers the day-to-day data that moves between your ERP and Tango’s Lease module.
Projects integrations
Purchase Orders, Change Orders, Project Invoices, Contracts, Project Attributes, and Total Approved Budgets. Drives the cost-management side of Tango’s Projects module.
Two delivery styles
- REST API (async)
- SFTP file drop
Most modern Tango integrations are async REST APIs over HTTPS. Submission returns a
gu_id immediately, and the client polls a shared /v1/batch/status endpoint to track processing.Why async? Most batch payloads contain thousands of records. Synchronous processing would hold the HTTP connection open for minutes; instead Tango queues the work, returns a
gu_id instantly, and lets your code poll on its own schedule.Common patterns
Authentication
Authentication
Every REST API call requires two headers:
For SFTP integrations, you’ll receive a per-environment SFTP username and password (or a public-key fingerprint to register). Contact your Tango onboarding lead to request credentials.
Async submission — `gu_id` polling
Async submission — `gu_id` polling
Submission endpoints (PUT/POST and most GETs) return immediately with a Recommended polling cadence: 5–30 seconds initially, backing off to 1–2 minutes for long-running batches.
gu_id. To retrieve the final result you call /v1/batch/status (or /v1batch/status on a couple of legacy integrations — check the per-integration spec):Pagination on outbound APIs
Pagination on outbound APIs
GET-style outbound integrations (AP Outbound, AR Outbound, GL, Lease Invoices, Lease Outbound) return data in pages of 5000 records. The status response carries pagination metadata:Pass
?page_no=N to fetch a specific page; the same gu_id can be polled across pages and re-polled later.Field omission convention
Field omission convention
For outbound APIs, any field that is null or unconfigured in Tango is omitted entirely from the JSON — you will not see
"field": null or "field": "". Your client code must treat the absence of a key as “no value”.For inbound payloads, you may either omit optional fields or send them as empty strings; both are accepted.Date format
Date format
Tango uses literal
MM/DD/YYYY strings (e.g. "06/11/2013") for date fields — not ISO 8601. This is documented per-field in each spec but is consistent across integrations.Datetime values that include a time component (rare) use the same date prefix plus a 24-hour time component.Environments
Environments
Every REST API has two base URLs:
SFTP follows the same split:
sftp.tangoanalytics.com for production, sftpdev.tangoanalytics.com for SIT/UAT. The path layout (e.g. /outbound/ap) is identical between environments.What’s in each integration’s reference
Every integration ships two documents in this docs site:- A
.yamlOpenAPI 3.1 spec — machine-readable, suitable for code generation, Postman import, and Spectral linting. - A
.mdcompanion — human-readable summary with transport details, integration logic, the validations table, and an “Open Questions” section listing anywhere the source design doc was silent or ambiguous.
Next steps
Start the quickstart
Walk through a complete request/response cycle in under five minutes.
Browse all integrations
See every integration grouped by domain (Lease vs Projects) and by direction (inbound vs outbound).

