Records
Projects, companies, contacts and every other record type work the same way. This page covers the requests they share. Each record type's page covers what's particular to it, and lists its fields.
In the requests below, {type} is the record type's URL name, such as projects. The Endpoints page lists them all.
List records
GET https://api.tiny.plus/v2/{type}
Returns a page of records, which you can filter, sort and page through. Listing, filtering and paging covers every parameter.
curl "https://api.tiny.plus/v2/projects?record_status=active&sort=modified_date%20desc&limit=2&return_format=array&with_related=0" \
-H "Authorization: Bearer {{user_access_token}}"{
"total_records": 163,
"returned_records": 2,
"records": [
{ "id": "62388", "name": "Example Project", "record_status": "active", ... },
{ "id": "62385", "name": "Second Example Project", "record_status": "active", ... }
]
}Get a record
GET https://api.tiny.plus/v2/{type}/{{id}}
with_related
Default 0. Set it to 1 to include the records this one is linked to, in a related object. See Linking records.
with_health
Adds a health object, with the record's rating from 0 to 100 and the reasons behind it.
use_cache
Set it to 0 to be sure of the latest version, straight after a change.
Get a record's change history
GET https://api.tiny.plus/v2/{type}/{{id}}/history
Returns the changes made to a record's fields, newest first, as an array:
created_user made the change. field_old and field_new are the stored values.
History only covers changes to the fields tiny+ tracks for that record type. It doesn't cover the record's creation, its tags, links or custom fields.
Unlike the rest of the API,
created_datehere is in Australia/Sydney time, whatever the account's time zone.created_date_origis the same moment in UTC, so use that. Each change also comes with the date formatted in several other ways.A record with no tracked changes answers
404{"error": "Could not find history."}.A confidential record's history is only available to people who can see the record. Anyone else gets
403{"error": "This record is confidential."}.
Create a record
POST https://api.tiny.plus/v2/{type}
Send the new record's fields as JSON, or form-encoded. name is the only field every record type requires. Some record types require others, which their field references mark as required.
return_record
Add this to get the new record back, instead of just its id.
dont_track
The message says what went wrong, followed by a code. Not having permission to add the record is also a 400.
Update a record
PATCH https://api.tiny.plus/v2/{type}/{{id}}
Send only the fields you want to change. PUT does the same thing.
Fields that are not editable
Some fields are worked out or kept by tiny+ itself, such as record_url, id and a company's relationship plan fields. If a create or an update sends one, tiny+ leaves it out, saves the rest, and names what it left out:
So you can send a record back much as you read it. A create answers with id and ignored_fields in the same way. An update that sends nothing but such fields saves nothing, and answers "results": false.
Delete a record
DELETE https://api.tiny.plus/v2/{type}/{{id}}
The record is marked as deleted rather than erased. Reading it afterwards returns 410.
results is false if the record could not be deleted.
Search
GET https://api.tiny.plus/v2/search/{type}?q={words}
Finds records whose name, description or a few other key fields contain every word you search for, and returns a short summary of each. Results come newest first.
q
The words to search for. Put a phrase in double quotes to search for it whole.
limit
How many results to return. There's no default and no maximum: without limit, you get every match.
start
The offset of the first result to return.
Search ignores filters.
Words of fewer than three letters, and common address words such as "street" and "road", are left out. If that leaves nothing to search for, every record matches.
A search looks only at the type in the URL, and works for every type the API serves, stages included.
On accounts that use stages, add
stages=1to a project search to get one result per stage.A search of posts (
/v2/search/updates) leaves out the posts a search onGET /v2/updatesleaves out: posts tiny+ writes automatically, confidential notes, and posts on a confidential record the token's user can't open.
Changing records quietly
Add dont_track=1 to a create or update to make the change quietly:
tiny+ doesn't run the account's automated actions for it;
nobody is notified;
the token's user isn't added to a new record's team;
an update doesn't change the record's
modified_dateormodified_user.
This is meant for integrations that keep tiny+ in step with another system, where a change isn't news to anyone.
Fields every record has
These fields are common to every record type. Each record type's page lists the fields particular to it.
assigned_user
Assigned To
Team member id
The id of the team member the record is assigned to.
Yes
confidential
Confidential?
Yes/no
1 makes the record confidential: see Permissions and confidential records.
Yes
created_date
Created
Date-time
In UTC. Set when the record is created.
Account admins only
created_user
Created by
Team member id
The team member who created the record.
Account admins only
description
Description
Text
Free text.
Yes
external_url
External Link
URL or object
A link to the record in another system. Send an object keyed by your app's name, such as {"MyApp": "https://app.example.com/135"}. It's merged with links other apps have set, so each app keeps its own. A plain URL is stored under the key "0".
Yes
flavour
Record type
Record type
The record type, such as projects.
No
id
Record id
The record's id.
No
is_synced
Is Synced?
Yes/no
1 if the record is kept in step with another system.
Yes
modified_date
Last modified
Date-time
In UTC. Set when the record changes.
Account admins only
modified_user
Modified by
Team member id
The team member who last changed the record.
Account admins only
name
Name
Text
Required. The record's name. Up to 200 characters.
Yes
primary_related
Primary Related
Record id
For a record that belongs to another one, such as a stage or a meeting, that record's id.
Yes
record_phase
Current Phase
Record id
The phase within the status, on accounts that use phases. Set it through record_status: see Statuses and phases.
Through record_status
record_status
Record Status
Option
The record's status. Each record type has its own: GET /v2/record_status/{type} lists them.
Yes
record_url
Record URL
URL
The record's address in tiny+.
No
remote_id
Remote ID
Text
The record's id in the system it's synced from. Up to 50 characters.
Yes
sync_origin
Sync Origin
Text
The name of the system the record is synced from, shown to people in tiny+. Up to 100 characters.
Yes
A record you read also comes with:
perm_editandperm_delete: whether the token's user may change or delete it. See Permissions and confidential records.show_obscured:truewhen a confidential record has been masked.record_status_display: the status as tiny+ shows it, with its phase.{field}_namefor each field that holds another record's id, when you get one record.hero_path_uriandhero_thumb_uri: the record's image, when it has one.its custom fields, as
custom_{id}, and itstags. See Record types and your account's fields.on lists, its
team.
Last updated
Was this helpful?