> ## 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.

# Space outbound

# Tango Spaces Outbound API

> Generated from `Tango Spaces Outbound API Integration Design Specification V1.0.docx` in SharePoint folder `03 Space Integrations`.
> OAS spec: [`space-outbound.yaml`](./space-outbound.yaml)

## Overview

Async **delta** REST API: client retrieves Space records updated in Tango since the last integration run. Two-call pattern with `gu_id` and pagination (5000/page).

**Owner:** Tango Analytics
**Spec version:** 1.0
**Status:** Draft (auto-generated — needs review)

## Endpoints

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

Auth: `x-client` + `x-api-key`.

## Integration logic

* Delta API.
* Updates to `space_id`, `building_id`, `floor_id`, `property_id`, `property_number`, or `property_description` do NOT trigger export.
* Null fields omitted from response.

## Data model (selected)

| Field | Type | Notes |
| - | - | - |
| `space_id` | NUMBER | Tango unique space ID |
| `space_name` / `space_number` | VARCHAR | |
| `building_id` / `building_number` / `building_description` | various | |
| `floor_id` / `floor_number` | various | |
| `property_id` / `property_number` / `property_description` | various | |
| `occupancy_status` | VARCHAR | |
| `charge_type` / `allocation_type` | VARCHAR | e.g., `Floor Shared` |
| `space_type` / `space_use` / `space_category` | VARCHAR | e.g., `SUPT-Break Room, Canteen-FS` |
| `contractual_type` / `measurement_type` / `wkst_type` | VARCHAR | |
| `is_shift_space` / `is_subleased` / `is_reservable` / `is_wkst` | VARCHAR | Y/N |
| `rate` / `no_of_shifts` | – | Type ambiguous in source |
| `actual_sf` / `actual_sm` / `usable_sf` / `usable_sm` / `cad_rentable_sf` / `cad_rentable_sm` | NUMBER | Area metrics |
| `capacity_planned` / `capacity_available` / `total_headcount` / `workstation_headcount` / `workstation_capacity` / `total_capacity` | NUMBER | |
| `status` | VARCHAR | e.g., `ACTIVE` |
| `last_update_date` / `last_updated_by` | various | |
| `c_ext_attr1..10` / `n_ext_attr1..10` / `d_ext_attr1..10` | various | Custom attributes |
| `" c_ext_lov1 "..9` ⚠ / `c_ext_lov10` | VARCHAR | Source has whitespace around 1..9 keys (likely typo) |
| `other_capacity` / `space_attributes` | – | Added in v0.9 |

## Open Questions / Assumptions

* [ ] **`c_ext_lov1..9` JSON keys have whitespace** in source sample (`" c_ext_lov1 "`). `c_ext_lov10` is clean. Almost certainly a doc-typo — wire format likely uses unspaced keys. **Confirm.**
* [ ] **Sample inconsistency for numeric extension attrs**: `n_ext_attr1` and `n_ext_attr2` shown as `0` (number), but `n_ext_attr3..10` shown as `""` (empty string). Schema uses NUMBER throughout.
* [ ] **Status endpoint shown as ASYNCH=No** in source while initial GET is ASYNCH=Yes. Inconsistent; assumed copy-paste error since the gu\_id flow is async.
* [ ] **No required-field column** in source.

## Changelog (compressed)

| Ver | Date | Description | Author |
| - | - | - | - |
| 0.1–0.9 | 2022-2025 | (see source doc) | Various |
| 1.0 | 04/22/2026 | Updated API architecture diagram | Alpna Bansal |
