> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tangoanalytics.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Location outbound

# Tango Locations Outbound API

> Generated from `Tango Locations Outbound API Integration Design Specification V2.0.docx` in SharePoint folder `01 Common Integrations`.
> OAS spec: [`location-outbound.yaml`](./location-outbound.yaml)

## Overview

Async **delta** REST API: client retrieves Property / Building / Floor / Location-Store records updated in Tango since the last integration run. One endpoint, four entity types, optional scoping param.

**Owner:** Tango Analytics
**Spec version:** 2.0
**Status:** Draft (auto-generated — needs review). **Full field mapping was not extracted from source.**

## Base URLs

| Environment | URL |
| - | - |
| Production | `https://api.tangoanalytics.com` |
| Test (SIT/UAT) | `https://testapi.tangoanalytics.com` |

## Authentication

Headers `x-client` + `x-api-key`.

## Endpoints

| Method | Path | Summary |
| - | - | - |
| GET | `/v1/spacemgmt/delta/buildings` | Initiate delta location export — returns `gu_id`. |
| GET | `/v1/batch/status?gu_id=...&page_no=...` | Retrieve paginated records. |

### Query params on the initiation call

| Param | Required | Notes |
| - | - | - |
| `Entity Type` ⚠ | – | Optional. Allowed: `Buildings`, `Floors`, `Stores`, `Properties`. If omitted, all entities with updates are returned. **Param name appears with a literal space in source — likely should be `entity_type`.** |

## Integration logic

* Delta API: only records updated after the last integration run are returned.
* Updates to `building_id`, `floor_id`, or `lease_number` do NOT trigger export — only updates to other fields do.
* Records created through "conversion" (data migration) are excluded.
* For Stores and Buildings, `associated_property` carries the linked property information.
* Null/unconfigured fields are omitted from the response JSON.

## Data model

The source data-mapping table did not surface in the extracted text. The schema is permissive (`additionalProperties: true`) and lists only structurally significant fields named in the document:

| Field | Type | Notes |
| - | - | - |
| `building_id` | NUMBER | Building entity identifier |
| `floor_id` | NUMBER | Floor entity identifier |
| `store_number` | VARCHAR | Store/Location entity identifier |
| `property_number` | VARCHAR | Property entity identifier |
| `associated_property` | OBJECT | Linked property info (STORE / BUILDING only) |
| `lease_number` | VARCHAR | |
| `store_size` | NUMBER | Added in v1.2 |
| `last_updated_date` | TIMESTAMP | The change marker driving delta inclusion |

A real consumer will need the full per-entity field list from another source (it was added across versions 0.1 through 1.9 of the source doc — see changelog).

## Open Questions / Assumptions

* [ ] **Full field mapping not extracted from source.** Spec is intentionally thin until a fuller dataset is available.
* [ ] **Param name with a space** — the source documents the optional param as `Entity Type` (with a space). The wire format is almost certainly snake\_case `entity_type`. Preserved verbatim; confirm and correct.
* [ ] **Direction header inconsistency** — source header has `Source: CLIENT SYSTEM / Destination: TANGO`, but description and content describe outbound (Tango → Client). Treated as outbound.
* [ ] **Pagination behaviour**: doc references `page_no` but doesn't state default page size for this endpoint (other Tango outbound endpoints use 5000).
* [ ] **Endpoint name is `/buildings`** but covers all four entity types — could read as misleading. Confirm whether a more general `/locations` route exists or is planned.

## Changelog (compressed)

| Ver | Date | Description | Author |
| - | - | - | - |
| 0.1–1.9 | 2020-2025 | (see source doc — 19 revisions) | Various |
| 2.0 | 04/23/2026 | Updated API architecture diagram | Alpna Bansal |
