Skip to content

Download the offline package

GET
/{currentTeam}/sync
curl --request GET \
--url https://api.tradeops.cc/v1/example/sync \
--header 'Authorization: Bearer <token>'

Everything the field app needs to work without a signal: the rep’s open visits, the checklists they can submit, active customers and the campaigns behind their visits. Pass the previous last_synced_at as since to get only what changed. Campaigns are always sent in full.

currentTeam
required
string

The current team slug

since
string | null format: date-time

The last_synced_at from the previous sync. Leave it out for a full download.

Media typeapplication/json
object
assignments
required
Array<object>
object
id
required
integer
campaign_id
required
integer | null
audit_type_id
required
integer
customer_id
required
integer
status
required
string
due_date
required
string | null
notes
required
string | null
audit_type
required
object
id
required
integer
name
required
string
slug
required
string
settings
required
object
fields
required
Array<object>
object
id
required
integer
name
required
string
label
required
string
type
required
string
section
required
string | null
options
required
object
validation
required
object
order
required
integer
required
required
boolean
score_weight
required
number
conditional
required
object | null
customer
required
object
id
required
integer
name
required
string
number
required
string | null
address
required
string | null
latitude
required
string | null
longitude
required
string | null
customers
required
Array<object>
object
id
required
integer
name
required
string
number
required
string | null
type
required
string | null
address
required
string | null
city
required
string | null
latitude
required
string | null
longitude
required
string | null
audit_types
required
Array<object>
object
id
required
integer
name
required
string
slug
required
string
settings
required
object
fields
required
Array<object>
object
id
required
integer
name
required
string
label
required
string
type
required
string
section
required
string | null
options
required
object
order
required
integer
required
required
boolean
campaigns
required
Array<object>
object
id
required
integer
ulid
required
string
name
required
string
status
required
string
starts_on
required
string | null
ends_on
required
string | null
details
required
object
detail_fields
required
Array<object>
object
name
required
string
label
required
string
type
required
string
options
required
object
required
required
boolean
items
required
Array<object>
object
id
required
integer
item_id
required
integer
name
required
string | null
code
required
string | null
image
required
string | null
brand
required
string | null
category
required
string | null
price
required
string | null
quantity
required
number | null
meta
required
object
last_synced_at
required

Send this back as since on the next sync.

string | null

Example generated

{
"assignments": [
{
"id": 1,
"campaign_id": 1,
"audit_type_id": 1,
"customer_id": 1,
"status": "example",
"due_date": "example",
"notes": "example",
"audit_type": {
"id": 1,
"name": "example",
"slug": "example",
"settings": {},
"fields": [
{
"id": 1,
"name": "example",
"label": "example",
"type": "example",
"section": "example",
"options": {},
"validation": {},
"order": 1,
"required": true,
"score_weight": 1,
"conditional": "example"
}
]
},
"customer": {
"id": 1,
"name": "example",
"number": "example",
"address": "example",
"latitude": "example",
"longitude": "example"
}
}
],
"customers": [
{
"id": 1,
"name": "example",
"number": "example",
"type": "example",
"address": "example",
"city": "example",
"latitude": "example",
"longitude": "example"
}
],
"audit_types": [
{
"id": 1,
"name": "example",
"slug": "example",
"settings": {},
"fields": [
{
"id": 1,
"name": "example",
"label": "example",
"type": "example",
"section": "example",
"options": {},
"order": 1,
"required": true
}
]
}
],
"campaigns": [
{
"id": 1,
"ulid": "example",
"name": "example",
"status": "example",
"starts_on": "example",
"ends_on": "example",
"details": {},
"detail_fields": [
{
"name": "example",
"label": "example",
"type": "example",
"options": {},
"required": true
}
],
"items": [
{
"id": 1,
"item_id": 1,
"name": "example",
"code": "example",
"image": "example",
"brand": "example",
"category": "example",
"price": "example",
"quantity": 1,
"meta": {}
}
]
}
],
"last_synced_at": "example"
}

Unauthenticated

Media typeapplication/json
object
message
required

Error overview.

string

Example generated

{
"message": "example"
}

Not found

Media typeapplication/json
object
message
required

Error overview.

string

Example generated

{
"message": "example"
}

Validation error

Media typeapplication/json
object
message
required

Errors overview.

string
errors
required

A detailed description of each field that failed validation.

object
key
additional properties
Array<string>

Example generated

{
"message": "example",
"errors": {
"additionalProperty": [
"example"
]
}
}

Too many requests. Wait for Retry-After seconds before trying again.

Media typeapplication/json
object
message
required
string

Example generated

{
"message": "example"
}
Retry-After
integer

Seconds until you can try again.