TermSheet API — Best Practices & Tips
This guide shares practical tips for getting the most out of the TermSheet API.
Getting Started: Data Types > Field Types
When you pull data from the TermSheet API, field types may look different than what you see in the UI. The most common example: a Number field in TermSheet will come through as an integer in the API response. Keep this in mind when mapping fields into your downstream systems or data pipelines — plan for a light transformation layer early so it does not become a bigger issue later. Refer to the Mapping here:
|
API Type |
TermSheet UI Field Type |
Real Example from Response |
|
|
Any empty field |
|
|
Integer |
Number, Year |
|
|
Float |
Currency, Decimal, Percent |
|
|
String (numeric) |
Currency, Decimal, Percent |
|
|
Boolean |
Checkbox |
"cf_allocated": true |
|
String |
Text, TextArea, URL, Single-select |
|
|
String (datetime) |
Created At, Updated At |
|
|
Integer |
Year |
|
|
String (ID) |
Team, assigned user refs |
|
|
String ( |
Related To (single-record) |
|
|
Array of Strings ( |
Related To (multi-record) |
|
|
Array of Integers |
Property IDs (native relation) |
|
|
Array (empty) |
Related To (no records linked) |
|
|
Object |
Nested record (address, stage, etc.) |
"project_stage": { "id": 6617, "name": "New", ... } |
Working With All-Fields Responses
By design, the TermSheet API returns all fields on an object — not just the ones your team actively uses. This allows you to never have to update your API call just because a new field was added. That said, if you are early in your integration:
- Invest time upfront in cataloging which fields matter to your use case.
- Build a field filter or selection layer on your side (in your ETL tool, SnapLogic, or similar) to reduce noise in downstream systems.
- Treat the full response as your source of truth and pare down from there — it is easier than trying to add fields one by one.
Handling Pipe-Delimited Field Values
Some fields — particularly related-to fields and user/property name fields — return values in a "ID | Full Name" format. This is expected behavior. Best practice:
- Write a simple helper function to split on the pipe character and extract the component you need (ID vs. display name).
- If you are loading into a data warehouse (e.g., Snowflake), create a calculated or split field at ingestion time rather than handling it ad hoc in downstream queries.
- Standardize this logic once and reuse it — many fields follow the same pattern.
Pagination
The API returns up to 100 records per page
- Build pagination logic into your API calls, as you will be able to pull 100 records per page.
Building for Maintainability
Clients who have been using the TermSheet API successfully long-term share a common approach: they invest in centralized configuration so that changes do not require updates in dozens of places.
- Use an expression or mapping file to define field transformations once and reference it across all your API integrations — when updates are needed, update it in one place.
- Tools like Postman, SnapLogic, Zapier, or similar middleware work well for normalizing TermSheet output before it reaches your reporting or data warehouse layer.