Download the offline package
GET
/{currentTeam}/sync
const url = 'https://api.tradeops.cc/v1/example/sync';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”currentTeam
required
string
The current team slug
Query Parameters
Section titled “Query Parameters”since
string | null format: date-time
The last_synced_at from the previous sync. Leave it out for a full download.
Responses
Section titled “Responses”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"}Headers
Section titled “Headers”Retry-After
integer
Seconds until you can try again.