Track API
Our Enterprise accounts come with unlimited API access so you can add, update and delete tracks programmatically. You can also get lists of your tracks and lists of recent changes. Find your token at https://trackly.io/account/api. Any problems please contact support at support@trackly.io. If you are looking for a webhook that gets triggered when a change is discovered take a look at the webhook documentation.
List tracks
List all existing tracks associated with users workspace. Represent the same data as the tracks list in the dashboard
GET https://trackly.io/api/v2/[:TOKEN]/tracks
Query Parameters
Name | Values | Description | Default |
---|---|---|---|
search | Search string | Keywords to search track name and url | Empty (search all) |
tag | Tag name string | Filter list by tag name | Empty (all tags) |
order | Options: newest, oldest, a_z, z_a, last_checked, last_change | Reorder the result list | newest |
format | Options: json, csv | Format of results list | json |
JSON Response example
Get a list of your tracks
[ { "Title": "Example page", "Url": "https://example.com/example.html", "Status": "running", "Frequency": "daily", "Ignore small changes": true, "Last changed": "2024-11-05T15:06:00.022Z", "What to track": "Whole page", "Next check": "2024-11-06T15:00:00.000Z", "Id": "djwop4iufg", "Track link": "https://trackly.io/tracks/djwop4iufg", "Created at": "2024-11-04T15:36:03.809Z", "Receiver": "test@test.com" }, ... ]
List recent changes
List recent changes order by most recent first. Represent the same data as the notifications page in the dashboard. NB: Rather than polling for recent changes you can use our webhook feature instead.
GET https://trackly.io/api/v2/[:TOKEN]/changes
Query Parameters
Name | Values | Description | Default |
---|---|---|---|
search | Search string | Keywords to search by track name and url | Empty (search all) |
tag | Tag name string | Filter list by track tag | Empty (all tags) |
format | Options: json, csv | Format of results list | json |
track | E.g. djwop4iufg | Only get results for given track id | Empty (all tracks) |
JSON Response example
[ { "Id": 7678889, "Notice": "Page change", "Track id": "uNqB0ow6KQ", "Track Url": "https://bbc.co.uk/news" "Track name": "Home - BBC News", "Change date": "2024-11-06T11:48:56.799Z", "Version link": "https://trackly.io/tracks/uNqB0ow6KQ/versions/13100485", "Track link": "https://trackly.io/tracks/uNqB0ow6KQ", "Before image": "https://cdn.trackly.io/trackly-production/12345.jpg", "After image": "https://cdn.trackly.io/trackly-production/789.jpg", "Before html": "<html><body>Before Example</body></html>", "After html": "<html><body>After Example</body></html>", "Html diff": "Git diff of HTML" "Summary image": "https://cdn.trackly.io/trackly-production/654.jpg", "Receiver": "max@test.com, julie@test.com, joe@test.com", "Added text summary": "Government announces new schools program", "Added": ["New text found", "Updated Nov 2024"] }, ... ]
Create new track
Create a new track along with setting the part of page to monitor and schedule.
POST https://trackly.io/api/v2/[:TOKEN]/tracks
Query Parameters
Name | Values | Description | Default |
---|---|---|---|
url | Eg: https://example.com/test.html | Keywords to search by track name and url | Required field |
title | Title name string | Name the track | Page title |
frequency | Options: hourly, daily, weekly | How often to check | daily |
hour | E.g. 12:00am or 6:00pm | Hour in users timezone. Only for daily/weekly | Random hour |
day | E.g. Wednesday | Only for weekly | Random day |
ignore_small_changes | E.g. true/false | Ignore common noise such as relative dates and paging | true |
tag_list | Comma separated tag names | Assign tags | Empty |
notification_addresses | E.g. jo@test.com, max@test.com | Comma separated list of existing notification addresses | No emails sent |
partial_selector | #main | CSS selector of page part to monitor | Empty |
JSON POST Payload Example
{ "url": "https://example.com", "title": "", "partial_selector": "body > div", "frequency": "daily", "hour": "03:00am", "notification_addresses": "max@test.com, jo@test.com, jan@test.com", }
JSON Response Examples
200 {status: 'success', id: 'df6yt9eJh'} 400 {status: 'error', error: 'Url is blank'}
Edit track
List recent changes order by most recent first. Represent the same data as the notifications page in the dashboard.
POST https://trackly.io/api/v2/[:TOKEN]/tracks/[:TRACK_ID]
Query Parameters
Name | Values | Description | Default |
---|---|---|---|
url | Eg: https://example.com/test.html | Keywords to search by track name and url | Required field |
title | Title name string | Name the track | Page title |
frequency | Options: hourly, daily, weekly | How often to check | daily |
hour | E.g. 12:00am or 6:00pm | Hour in users timezone. Only for daily/weekly | Random hour |
day | E.g. Wednesday | Only for weekly | Random day |
partial_selector | #main | CSS selector of page part to monitor | Whole page |
ignore_small_changes | E.g. true/false | Ignore common noise such as relative dates and paging | true |
tags | Comma separated tag names | Assign tags | Empty |
notification_addresses | E.g. jo@test.com, max@test.com | Comma separated list of existing notification addresses | No emails sent |
JSON POST Payload Example
{ "url": "https://example.com", "title": "", "partial_selector": "body > div", "frequency": "daily", "hour": "03:00am", "notification_addresses": "max@test.com, jo@test.com, jan@test.com", }
JSON Response Examples
200 {status: 'success', id: 'df6yt9eJh'} 400 {status: 'error', error: 'Url is blank'}
Delete track
Delete a track
DELETE https://trackly.io/api/v2/[:TOKEN]/tracks/[:TRACK_ID]
JSON Response Examples
200 {status: 'success', id: 'df6yt9eJh'} 404 {status: 'error', error: 'Track not found'}
Track check scheduling
Pause, resume or check a track now.
PUT https://trackly.io/api/v2/[:TOKEN]/tracks/[:TRACK_ID]/[pause|resume|check]
JSON Response Examples
200 {status: 'success', id: 'df6yt9eJh'} 404 {status: 'error', error: 'Track not found'}