Geotrackable API
The Geotrackable API is available on this same production domain for the Android app and other authorized clients.
Use these examples to verify the live host, get a bearer token, read public map data, sync signed-in locations, and work with trackables without guessing route names from the website UI.
Android app setup
In the Android Sync tab, save only the site origin as the endpoint. Do not add /api.
https://Geotrackable.com
Sign in by posting local account credentials to /api/auth/login?useCookies=false&useSessionCookies=false, then send the returned bearer token in the Authorization header.
Expected responses
Protected routes return HTTP 401 until the client sends a bearer token. Opening a POST-only route in a browser returns HTTP 405 because the browser sends GET.
Each offline sync cycle must push first and pull second.
A route can also return HTTP 404 when the HTTP method does not exist for that path. The account route is delete-only, so a GET request to that URL is not a profile read.
Check the host, sign in, and confirm the token before calling private routes.
The current account information route comes from the framework identity API. The separate account route is only for permanent deletion.
Health check
This route is anonymous and is the fastest way to confirm that the production API host is reachable.
curl "https://Geotrackable.com/api/system/status"
{
"status": "online",
"utcNow": "2026-06-20T12:00:00Z",
"androidBetaPageUrl": "https://Geotrackable.com/en-US/Account/Beta"
}
Register
Create a local account with an email, password, and public profile user name before requesting a bearer token. User names may contain lowercase letters, numbers, and underscores only.
curl -X POST "https://Geotrackable.com/api/auth/register" \
-H "Content-Type: application/json" \
-d '{
"email": "tester@example.com",
"userName": "trail_tester",
"password": "StrongP@ssw0rd!"
}'
Bearer login
Use local account credentials with cookies disabled when a script, app, or API client needs a bearer token.
curl -X POST "https://Geotrackable.com/api/auth/login?useCookies=false&useSessionCookies=false" \
-H "Content-Type: application/json" \
-d '{
"email": "tester@example.com",
"password": "StrongP@ssw0rd!"
}'
{
"tokenType": "Bearer",
"accessToken": "eyJhbGciOi..."
}
Current account and profile
There is no GET /api/account profile endpoint. Use the identity manage-info endpoint for signed-in account metadata, and use the website profile pages for public profile display.
GET /api/account is not a published read route.
GET /api/auth/manage/info returns signed-in identity details.
DELETE /api/account permanently deletes the current account.
curl "https://Geotrackable.com/api/auth/manage/info" \
-H "Authorization: Bearer <access token>"
Start with these routes when checking an Android or API-client connection.
| Method | Route |
|---|---|
GET |
/api/system/status |
POST |
/api/auth/register |
POST |
/api/auth/login?useCookies=false&useSessionCookies=false |
GET |
/api/auth/manage/info |
POST |
/api/sync/push |
POST |
/api/sync/pull |
GET |
/api/notes/public/bounds |
GET |
/api/notes/public/nearby |
GET |
/api/categories/mine |
GET |
/api/notes/mine |
GET |
/api/trackables/public |
POST |
/api/trackables/lookup |
GET |
/api/trackables/active |
DELETE |
/api/account |
Public map reads are anonymous; personal location and category writes require bearer auth.
Geotrackable uses Locations language on the website, while the API route names still use the shared notes contracts underneath.
Public locations in map bounds
Use bounds when your client already has a map viewport and wants visible public location notes for that area.
curl "https://Geotrackable.com/api/notes/public/bounds?minLatitude=41.78&minLongitude=-87.75&maxLatitude=41.96&maxLongitude=-87.54&contentLanguage=en-US"
[
{
"noteId": "4d6c5df3-3c53-4d0e-8e72-7d98a0f8a9f3",
"title": "Trailhead parking",
"body": "Small public lot near the north entrance.",
"contentLanguage": "en-US",
"latitude": 41.8818,
"longitude": -87.6231,
"visibility": "Public",
"updatedUtc": "2026-06-20T12:00:00Z"
}
]
Create a personal location
A signed-in caller can create private or public locations. Public locations require an authenticated account, not anonymous local-only storage.
curl -X POST "https://Geotrackable.com/api/notes/mine" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{
"categoryId": "4de6bb76-f25d-4c73-b8e3-81b9ca3bf08f",
"title": "Cache hide approach",
"body": "Use the east footpath after rain.",
"contentLanguage": "en-US",
"latitude": 41.8818,
"longitude": -87.6231,
"visibility": "Private",
"commentPolicy": "Disabled"
}'
curl -X POST "https://Geotrackable.com/api/categories/mine" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Weekend route checks",
"contentLanguage": "en-US",
"parentCategoryId": null
}'
Push local changes first, then pull the server view for the user and current public area.
Both sync routes require bearer auth. Anonymous private locations can stay local on the device, but they are not accepted by the server sync API.
Push request
curl -X POST "https://Geotrackable.com/api/sync/push" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{
"deviceId": "5dd06ca7-34a5-4f2e-812d-3f1ef3e48290",
"notes": [
{
"noteId": "ef90c4ca-88a9-4a9b-b3a8-36e2649c5dcb",
"ownerUserId": "a7cfd28f-c17f-4cf7-8913-47fa10fd0d1f",
"categoryId": null,
"title": "Offline field stop",
"body": "Saved while disconnected.",
"contentLanguage": "en-US",
"latitude": 41.8818,
"longitude": -87.6231,
"visibility": "Private",
"isDeleted": false,
"updatedUtc": "2026-06-20T12:05:00Z",
"clientMutationId": "android-offline-42",
"teamId": null
}
],
"categories": []
}'
Pull request
curl -X POST "https://Geotrackable.com/api/sync/pull" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{
"lastSyncUtc": "2026-06-20T11:30:00Z",
"publicArea": {
"minLatitude": 41.78,
"minLongitude": -87.75,
"maxLatitude": 41.96,
"maxLongitude": -87.54
}
}'
{
"serverSyncUtc": "2026-06-20T12:06:00Z",
"userNotes": [],
"userCategories": [],
"teamCategories": [],
"publicNotes": [],
"teamNotes": []
}
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
Secret codes and private QR payloads are sensitive credentials. Normal read routes do not return them after creation.
Public browse and lookup
curl "https://Geotrackable.com/api/trackables/public?contentLanguage=en-US"
curl -X POST "https://Geotrackable.com/api/trackables/lookup" \
-H "Content-Type: application/json" \
-d '{
"code": "GT7F3K9"
}'
Create a trackable
curl -X POST "https://Geotrackable.com/api/trackables" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Scout trail coin",
"description": "Move this coin along family-friendly trails.",
"visibility": "AlwaysVisibleToEveryone",
"activateImmediately": true,
"secretCode": ""
}'
Active secret access
After a browser enters a valid secret code or scan payload, the active-session routes show what that browser can currently reopen.
curl "https://Geotrackable.com/api/trackables/active"
curl -X POST "https://Geotrackable.com/api/trackables/active/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/message" \
-H "Content-Type: application/json" \
-d '{
"statusMessage": "Live hunt in progress"
}'
Log a journey stop
A direct journey stop is the lightweight route update when a full location note is not needed.
curl -X POST "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/journey-stops" \
-H "Content-Type: application/json" \
-d '{
"latitude": 41.8818,
"longitude": -87.6231,
"accessCode": "GT-SECRET-OR-SCAN-PAYLOAD"
}'
Comment on a trackable
Logged-in status is required to comment, even when a public page allows broad participation. Secret access may still be required for restricted items.
curl -X POST "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/comments" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{
"body": "Found near the overlook and moved west.",
"accessCode": ""
}'
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
Create a team
curl -X POST "https://Geotrackable.com/api/teams" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{
"name": "trail-club",
"title": "Trail Club",
"description": "Weekend route and trackable group.",
"joinPolicy": "RequestsAllowed",
"pageVisibility": "Public",
"defaultNoteVisibility": "Public",
"contentLanguage": "en-US"
}'
Create an invite link
curl -X POST "https://Geotrackable.com/api/teams/73edb511-cd8c-4888-8c45-3a04b3d6da11/invite-links" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{
"isSingleUse": false
}'
curl -X POST "https://Geotrackable.com/api/teams/invite-links/trail-club/INVITE-CODE/join" \
-H "Authorization: Bearer <access token>"
Media and support routes follow the visibility of the page or content they are attached to.
Images
List reads can be anonymous when the parent page is public-safe. Upload and delete routes require bearer auth.
curl "https://Geotrackable.com/api/images/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
curl -X POST "https://Geotrackable.com/api/images/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>" \
-F "files=@trail-coin.jpg"
External link verification
Verify an external link before storing it on a location, team, trackable, or trackable group.
curl -X POST "https://Geotrackable.com/api/external-links/verify" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/trail-guide"
}'
Content and error reports
Use reports for public-page content concerns and errors for client-side diagnostics that support may need to review.
curl -X POST "https://Geotrackable.com/api/compliance/reports" \
-H "Content-Type: application/json" \
-d '{
"pageType": "Trackable",
"contentType": "Trackable",
"pageTitle": "Scout trail coin",
"pageUrl": "https://Geotrackable.com/trackable/GT7F3K9",
"pageReference": "GT7F3K9",
"contentLabel": "Trackable page",
"contentReference": "13a2c0b1-582f-4a7b-92aa-16922f7bdb63",
"contentPreview": "Move this coin along family-friendly trails.",
"reportTitle": "Outdated public link",
"reportExplanation": "The linked trail guide now points somewhere unexpected."
}'
Delete account from the API
Authenticated clients can permanently delete the current account and synced personal data through the API. Read the Delete Data page first when you need export steps or shared trackable retention rules.
curl -X DELETE "https://Geotrackable.com/api/account" \
-H "Authorization: Bearer <access token>"
{
"deletedAccount": true,
"notesDeleted": 14,
"categoriesDeleted": 6,
"linkedProvidersDeleted": 2
}
Common status codes
400means validation or business-rule rejection.401means the token is missing, expired, or invalid.403means the caller is signed in but not allowed to use that item.404means the route, item, or method-specific endpoint was not found.405means the route exists but the caller used the wrong HTTP method.
Published Geotrackable API routes
This table is generated from the running Geotrackable endpoint table so the published documentation stays aligned with the host.
| Method | Route | Access |
|---|---|---|
DELETE |
/api/account |
Authorization required |
GET |
/api/auth/confirmEmail |
Anonymous |
POST |
/api/auth/forgotPassword |
Anonymous |
POST |
/api/auth/login |
Anonymous |
POST |
/api/auth/manage/2fa |
Authorization required |
GET |
/api/auth/manage/info |
Authorization required |
POST |
/api/auth/manage/info |
Authorization required |
POST |
/api/auth/refresh |
Anonymous |
POST |
/api/auth/register |
Anonymous |
POST |
/api/auth/resendConfirmationEmail |
Anonymous |
POST |
/api/auth/resetPassword |
Anonymous |
GET |
/api/categories/mine |
Authorization required |
POST |
/api/categories/mine |
Authorization required |
GET |
/api/categories/mine/tree |
Authorization required |
GET |
/api/categories/mine/tree/children |
Authorization required |
GET |
/api/categories/mine/tree/sections |
Authorization required |
DELETE |
/api/categories/mine/{categoryId} |
Authorization required |
POST |
/api/categories/mine/{categoryId}/move |
Authorization required |
POST |
/api/compliance/errors |
Anonymous |
GET |
/api/compliance/reports |
Authorization required |
POST |
/api/compliance/reports |
Anonymous |
GET |
/api/compliance/reports/mine |
Authorization required |
GET |
/api/compliance/reports/{contentReportId} |
Authorization required |
PUT |
/api/compliance/reports/{contentReportId} |
Authorization required |
POST |
/api/external-links/verify |
Authorization required |
GET |
/api/images/notes/{noteId} |
Anonymous |
POST |
/api/images/notes/{noteId} |
Authorization required |
POST |
/api/images/profiles |
Authorization required |
GET |
/api/images/profiles/{userId} |
Anonymous |
GET |
/api/images/teams/{teamId} |
Anonymous |
POST |
/api/images/teams/{teamId} |
Authorization required |
GET |
/api/images/trackable-groups/{trackableGroupId} |
Anonymous |
POST |
/api/images/trackable-groups/{trackableGroupId} |
Authorization required |
GET |
/api/images/trackables/{trackableId} |
Anonymous |
POST |
/api/images/trackables/{trackableId} |
Authorization required |
DELETE |
/api/images/{contentImageId} |
Authorization required |
GET |
/api/images/{contentImageId}/{variant} |
Anonymous |
GET |
/api/locations/mine/gpx |
Authorization required |
POST |
/api/locations/mine/gpx |
Authorization required |
GET |
/api/notes/mine |
Authorization required |
POST |
/api/notes/mine |
Authorization required |
GET |
/api/notes/mine/gpx |
Authorization required |
POST |
/api/notes/mine/gpx |
Authorization required |
DELETE |
/api/notes/mine/{noteId} |
Authorization required |
POST |
/api/notes/mine/{noteId}/move |
Authorization required |
GET |
/api/notes/public/bounds |
Anonymous |
GET |
/api/notes/public/nearby |
Anonymous |
GET |
/api/public/notes/{noteId} |
Anonymous |
GET |
/api/public/notes/{noteId}/comments |
Anonymous |
POST |
/api/public/notes/{noteId}/comments |
Authorization required |
GET |
/api/public/notes/{noteId}/trackables |
Anonymous |
POST |
/api/public/notes/{noteId}/trackables |
Authorization required |
GET |
/api/public/profiles/{userName}/notes/nearby |
Anonymous |
GET |
/api/public/teams/{teamName}/notes/nearby |
Anonymous |
POST |
/api/sync/pull |
Authorization required |
POST |
/api/sync/push |
Authorization required |
GET |
/api/system/beta-android |
Anonymous |
GET |
/api/system/coordinate-locality |
Anonymous |
GET |
/api/system/ip-location |
Anonymous |
GET |
/api/system/status |
Anonymous |
GET |
/api/teams |
Authorization required |
POST |
/api/teams |
Authorization required |
POST |
/api/teams/invite-links/{teamSlug}/{inviteCode}/join |
Authorization required |
DELETE |
/api/teams/{teamId} |
Authorization required |
GET |
/api/teams/{teamId}/categories |
Authorization required |
POST |
/api/teams/{teamId}/categories |
Authorization required |
GET |
/api/teams/{teamId}/categories/tree |
Authorization required |
GET |
/api/teams/{teamId}/categories/tree/children |
Authorization required |
GET |
/api/teams/{teamId}/categories/tree/sections |
Authorization required |
DELETE |
/api/teams/{teamId}/categories/{categoryId} |
Authorization required |
POST |
/api/teams/{teamId}/categories/{categoryId}/move |
Authorization required |
GET |
/api/teams/{teamId}/invite-links |
Authorization required |
POST |
/api/teams/{teamId}/invite-links |
Authorization required |
DELETE |
/api/teams/{teamId}/invite-links/{inviteLinkId} |
Authorization required |
GET |
/api/teams/{teamId}/locations/gpx |
Authorization required |
POST |
/api/teams/{teamId}/locations/gpx |
Authorization required |
POST |
/api/teams/{teamId}/memberships/invite |
Authorization required |
POST |
/api/teams/{teamId}/memberships/request |
Authorization required |
DELETE |
/api/teams/{teamId}/memberships/{membershipId} |
Authorization required |
POST |
/api/teams/{teamId}/memberships/{membershipId}/accept |
Authorization required |
POST |
/api/teams/{teamId}/memberships/{membershipId}/approve |
Authorization required |
POST |
/api/teams/{teamId}/memberships/{membershipId}/deny |
Authorization required |
POST |
/api/teams/{teamId}/memberships/{membershipId}/promote-admin |
Authorization required |
POST |
/api/teams/{teamId}/memberships/{membershipId}/refuse |
Authorization required |
GET |
/api/teams/{teamId}/notes |
Authorization required |
POST |
/api/teams/{teamId}/notes |
Authorization required |
GET |
/api/teams/{teamId}/notes/gpx |
Authorization required |
POST |
/api/teams/{teamId}/notes/gpx |
Authorization required |
DELETE |
/api/teams/{teamId}/notes/{noteId} |
Authorization required |
DELETE |
/api/teams/{teamId}/notes/{noteId}/delete |
Authorization required |
POST |
/api/teams/{teamId}/notes/{noteId}/move |
Authorization required |
PUT |
/api/teams/{teamId}/settings |
Authorization required |
POST |
/api/trackables |
Authorization required |
GET |
/api/trackables/active |
Anonymous |
GET |
/api/trackables/active-indicator |
Anonymous |
DELETE |
/api/trackables/active/{trackableId} |
Anonymous |
GET |
/api/trackables/active/{trackableId} |
Anonymous |
POST |
/api/trackables/active/{trackableId}/deactivate |
Anonymous |
POST |
/api/trackables/active/{trackableId}/message |
Anonymous |
POST |
/api/trackables/groups |
Authorization required |
DELETE |
/api/trackables/groups/{trackableGroupId}/watch |
Authorization required |
POST |
/api/trackables/groups/{trackableGroupId}/watch |
Authorization required |
POST |
/api/trackables/legacy-lookup |
Anonymous |
GET |
/api/trackables/lookup |
Anonymous |
POST |
/api/trackables/lookup |
Anonymous |
GET |
/api/trackables/mine |
Authorization required |
GET |
/api/trackables/public |
Anonymous |
GET |
/api/trackables/{trackableId} |
Anonymous |
POST |
/api/trackables/{trackableId}/activate |
Authorization required |
GET |
/api/trackables/{trackableId}/comments |
Anonymous |
POST |
/api/trackables/{trackableId}/comments |
Anonymous |
DELETE |
/api/trackables/{trackableId}/comments/{commentId} |
Authorization required |
PUT |
/api/trackables/{trackableId}/comments/{commentId} |
Authorization required |
DELETE |
/api/trackables/{trackableId}/group |
Authorization required |
POST |
/api/trackables/{trackableId}/group |
Authorization required |
GET |
/api/trackables/{trackableId}/journey |
Anonymous |
POST |
/api/trackables/{trackableId}/journey-stops |
Anonymous |
DELETE |
/api/trackables/{trackableId}/journey-stops/{journeyStopId} |
Authorization required |
DELETE |
/api/trackables/{trackableId}/watch |
Authorization required |
POST |
/api/trackables/{trackableId}/watch |
Authorization required |
DELETE /api/account
Authenticated clients can permanently delete the current account and synced personal data through the API. Read the Delete Data page first when you need export steps or shared trackable retention rules.
curl -X DELETE "https://Geotrackable.com/api/account" \
-H "Authorization: Bearer <access token>"
GET /api/auth/confirmEmail
Use local account credentials with cookies disabled when a script, app, or API client needs a bearer token.
curl "https://Geotrackable.com/api/auth/confirmEmail"
POST /api/auth/forgotPassword
Use local account credentials with cookies disabled when a script, app, or API client needs a bearer token.
curl -X POST "https://Geotrackable.com/api/auth/forgotPassword" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/auth/login
Use local account credentials with cookies disabled when a script, app, or API client needs a bearer token.
curl -X POST "https://Geotrackable.com/api/auth/login?useCookies=false&useSessionCookies=false" \
-H "Content-Type: application/json" \
-d '{ "email": "api-user@example.com", "password": "Use-a-strong-password-123!" }'
POST /api/auth/manage/2fa
Use local account credentials with cookies disabled when a script, app, or API client needs a bearer token.
curl -X POST "https://Geotrackable.com/api/auth/manage/2fa" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/auth/manage/info
Use local account credentials with cookies disabled when a script, app, or API client needs a bearer token.
curl "https://Geotrackable.com/api/auth/manage/info" \
-H "Authorization: Bearer <access token>"
POST /api/auth/manage/info
Use local account credentials with cookies disabled when a script, app, or API client needs a bearer token.
curl -X POST "https://Geotrackable.com/api/auth/manage/info" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/auth/refresh
Use local account credentials with cookies disabled when a script, app, or API client needs a bearer token.
curl -X POST "https://Geotrackable.com/api/auth/refresh" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/auth/register
Use local account credentials with cookies disabled when a script, app, or API client needs a bearer token.
curl -X POST "https://Geotrackable.com/api/auth/register" \
-H "Content-Type: application/json" \
-d '{ "email": "api-user@example.com", "password": "Use-a-strong-password-123!" }'
POST /api/auth/resendConfirmationEmail
Use local account credentials with cookies disabled when a script, app, or API client needs a bearer token.
curl -X POST "https://Geotrackable.com/api/auth/resendConfirmationEmail" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/auth/resetPassword
Use local account credentials with cookies disabled when a script, app, or API client needs a bearer token.
curl -X POST "https://Geotrackable.com/api/auth/resetPassword" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/categories/mine
Public map reads are anonymous; personal location and category writes require bearer auth.
curl "https://Geotrackable.com/api/categories/mine" \
-H "Authorization: Bearer <access token>"
POST /api/categories/mine
Public map reads are anonymous; personal location and category writes require bearer auth.
curl -X POST "https://Geotrackable.com/api/categories/mine" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/categories/mine/tree
Public map reads are anonymous; personal location and category writes require bearer auth.
curl "https://Geotrackable.com/api/categories/mine/tree" \
-H "Authorization: Bearer <access token>"
GET /api/categories/mine/tree/children
Public map reads are anonymous; personal location and category writes require bearer auth.
curl "https://Geotrackable.com/api/categories/mine/tree/children" \
-H "Authorization: Bearer <access token>"
GET /api/categories/mine/tree/sections
Public map reads are anonymous; personal location and category writes require bearer auth.
curl "https://Geotrackable.com/api/categories/mine/tree/sections" \
-H "Authorization: Bearer <access token>"
DELETE /api/categories/mine/{categoryId}
Public map reads are anonymous; personal location and category writes require bearer auth.
curl -X DELETE "https://Geotrackable.com/api/categories/mine/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
POST /api/categories/mine/{categoryId}/move
Public map reads are anonymous; personal location and category writes require bearer auth.
curl -X POST "https://Geotrackable.com/api/categories/mine/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/move" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/compliance/errors
Media and support routes follow the visibility of the page or content they are attached to.
curl -X POST "https://Geotrackable.com/api/compliance/errors" \
-H "Content-Type: application/json" \
-d '{ "message": "Client error detail", "url": "/api/example" }'
GET /api/compliance/reports
Media and support routes follow the visibility of the page or content they are attached to.
curl "https://Geotrackable.com/api/compliance/reports" \
-H "Authorization: Bearer <access token>"
POST /api/compliance/reports
Media and support routes follow the visibility of the page or content they are attached to.
curl -X POST "https://Geotrackable.com/api/compliance/reports" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/compliance/reports/mine
Media and support routes follow the visibility of the page or content they are attached to.
curl "https://Geotrackable.com/api/compliance/reports/mine" \
-H "Authorization: Bearer <access token>"
GET /api/compliance/reports/{contentReportId}
Media and support routes follow the visibility of the page or content they are attached to.
curl "https://Geotrackable.com/api/compliance/reports/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
PUT /api/compliance/reports/{contentReportId}
Media and support routes follow the visibility of the page or content they are attached to.
curl -X PUT "https://Geotrackable.com/api/compliance/reports/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/external-links/verify
Media and support routes follow the visibility of the page or content they are attached to.
curl -X POST "https://Geotrackable.com/api/external-links/verify" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{ "url": "https://example.com/resource" }'
GET /api/images/notes/{noteId}
Media and support routes follow the visibility of the page or content they are attached to.
curl "https://Geotrackable.com/api/images/notes/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
POST /api/images/notes/{noteId}
Media and support routes follow the visibility of the page or content they are attached to.
curl -X POST "https://Geotrackable.com/api/images/notes/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>" \
-F "files=@example.jpg"
POST /api/images/profiles
Media and support routes follow the visibility of the page or content they are attached to.
curl -X POST "https://Geotrackable.com/api/images/profiles" \
-H "Authorization: Bearer <access token>" \
-F "files=@example.jpg"
GET /api/images/profiles/{userId}
Media and support routes follow the visibility of the page or content they are attached to.
curl "https://Geotrackable.com/api/images/profiles/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
GET /api/images/teams/{teamId}
Media and support routes follow the visibility of the page or content they are attached to.
curl "https://Geotrackable.com/api/images/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
POST /api/images/teams/{teamId}
Media and support routes follow the visibility of the page or content they are attached to.
curl -X POST "https://Geotrackable.com/api/images/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>" \
-F "files=@example.jpg"
GET /api/images/trackable-groups/{trackableGroupId}
Media and support routes follow the visibility of the page or content they are attached to.
curl "https://Geotrackable.com/api/images/trackable-groups/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
POST /api/images/trackable-groups/{trackableGroupId}
Media and support routes follow the visibility of the page or content they are attached to.
curl -X POST "https://Geotrackable.com/api/images/trackable-groups/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>" \
-F "files=@example.jpg"
GET /api/images/trackables/{trackableId}
Media and support routes follow the visibility of the page or content they are attached to.
curl "https://Geotrackable.com/api/images/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
POST /api/images/trackables/{trackableId}
Media and support routes follow the visibility of the page or content they are attached to.
curl -X POST "https://Geotrackable.com/api/images/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>" \
-F "files=@example.jpg"
DELETE /api/images/{contentImageId}
Media and support routes follow the visibility of the page or content they are attached to.
curl -X DELETE "https://Geotrackable.com/api/images/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
GET /api/images/{contentImageId}/{variant}
Media and support routes follow the visibility of the page or content they are attached to.
curl "https://Geotrackable.com/api/images/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/thumbnail"
GET /api/locations/mine/gpx
Public map reads are anonymous; personal location and category writes require bearer auth.
curl "https://Geotrackable.com/api/locations/mine/gpx" \
-H "Authorization: Bearer <access token>"
POST /api/locations/mine/gpx
Public map reads are anonymous; personal location and category writes require bearer auth.
curl -X POST "https://Geotrackable.com/api/locations/mine/gpx" \
-H "Authorization: Bearer <access token>" \
-F "file=@waypoints.gpx"
GET /api/notes/mine
Public map reads are anonymous; personal location and category writes require bearer auth.
curl "https://Geotrackable.com/api/notes/mine" \
-H "Authorization: Bearer <access token>"
POST /api/notes/mine
Public map reads are anonymous; personal location and category writes require bearer auth.
curl -X POST "https://Geotrackable.com/api/notes/mine" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/notes/mine/gpx
Public map reads are anonymous; personal location and category writes require bearer auth.
curl "https://Geotrackable.com/api/notes/mine/gpx" \
-H "Authorization: Bearer <access token>"
POST /api/notes/mine/gpx
Public map reads are anonymous; personal location and category writes require bearer auth.
curl -X POST "https://Geotrackable.com/api/notes/mine/gpx" \
-H "Authorization: Bearer <access token>" \
-F "file=@waypoints.gpx"
DELETE /api/notes/mine/{noteId}
Public map reads are anonymous; personal location and category writes require bearer auth.
curl -X DELETE "https://Geotrackable.com/api/notes/mine/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
POST /api/notes/mine/{noteId}/move
Public map reads are anonymous; personal location and category writes require bearer auth.
curl -X POST "https://Geotrackable.com/api/notes/mine/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/move" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/notes/public/bounds
Public map reads are anonymous; personal location and category writes require bearer auth.
curl "https://Geotrackable.com/api/notes/public/bounds?minLatitude=41.78&minLongitude=-87.75&maxLatitude=41.96&maxLongitude=-87.54&contentLanguage=en-US"
GET /api/notes/public/nearby
Public map reads are anonymous; personal location and category writes require bearer auth.
curl "https://Geotrackable.com/api/notes/public/nearby?latitude=41.8818&longitude=-87.6231&radiusKm=8&contentLanguage=en-US"
GET /api/public/notes/{noteId}
Public map reads are anonymous; personal location and category writes require bearer auth.
curl "https://Geotrackable.com/api/public/notes/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
GET /api/public/notes/{noteId}/comments
Public map reads are anonymous; personal location and category writes require bearer auth.
curl "https://Geotrackable.com/api/public/notes/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/comments"
POST /api/public/notes/{noteId}/comments
Public map reads are anonymous; personal location and category writes require bearer auth.
curl -X POST "https://Geotrackable.com/api/public/notes/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/comments" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/public/notes/{noteId}/trackables
Public map reads are anonymous; personal location and category writes require bearer auth.
curl "https://Geotrackable.com/api/public/notes/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/trackables"
POST /api/public/notes/{noteId}/trackables
Public map reads are anonymous; personal location and category writes require bearer auth.
curl -X POST "https://Geotrackable.com/api/public/notes/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/trackables" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/public/profiles/{userName}/notes/nearby
Public map reads are anonymous; personal location and category writes require bearer auth.
curl "https://Geotrackable.com/api/public/profiles/trail-guide/notes/nearby?latitude=41.8818&longitude=-87.6231&radiusKm=8&contentLanguage=en-US"
GET /api/public/teams/{teamName}/notes/nearby
Public map reads are anonymous; personal location and category writes require bearer auth.
curl "https://Geotrackable.com/api/public/teams/trail-club/notes/nearby?latitude=41.8818&longitude=-87.6231&radiusKm=8&contentLanguage=en-US"
POST /api/sync/pull
Push local changes first, then pull the server view for the user and current public area.
curl -X POST "https://Geotrackable.com/api/sync/pull" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/sync/push
Push local changes first, then pull the server view for the user and current public area.
curl -X POST "https://Geotrackable.com/api/sync/push" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/system/beta-android
This route is anonymous and is the fastest way to confirm that the production API host is reachable.
curl "https://Geotrackable.com/api/system/beta-android"
GET /api/system/coordinate-locality
This route is anonymous and is the fastest way to confirm that the production API host is reachable.
curl "https://Geotrackable.com/api/system/coordinate-locality?latitude=41.8818&longitude=-87.6231"
GET /api/system/ip-location
This route is anonymous and is the fastest way to confirm that the production API host is reachable.
curl "https://Geotrackable.com/api/system/ip-location"
GET /api/system/status
This route is anonymous and is the fastest way to confirm that the production API host is reachable.
curl "https://Geotrackable.com/api/system/status"
GET /api/teams
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl "https://Geotrackable.com/api/teams" \
-H "Authorization: Bearer <access token>"
POST /api/teams
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X POST "https://Geotrackable.com/api/teams" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/teams/invite-links/{teamSlug}/{inviteCode}/join
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X POST "https://Geotrackable.com/api/teams/invite-links/trail-club/INVITE-CODE/join" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/teams/{teamId}
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X DELETE "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
GET /api/teams/{teamId}/categories
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/categories" \
-H "Authorization: Bearer <access token>"
POST /api/teams/{teamId}/categories
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X POST "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/categories" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/teams/{teamId}/categories/tree
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/categories/tree" \
-H "Authorization: Bearer <access token>"
GET /api/teams/{teamId}/categories/tree/children
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/categories/tree/children" \
-H "Authorization: Bearer <access token>"
GET /api/teams/{teamId}/categories/tree/sections
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/categories/tree/sections" \
-H "Authorization: Bearer <access token>"
DELETE /api/teams/{teamId}/categories/{categoryId}
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X DELETE "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/categories/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
POST /api/teams/{teamId}/categories/{categoryId}/move
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X POST "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/categories/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/move" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/teams/{teamId}/invite-links
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/invite-links" \
-H "Authorization: Bearer <access token>"
POST /api/teams/{teamId}/invite-links
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X POST "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/invite-links" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/teams/{teamId}/invite-links/{inviteLinkId}
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X DELETE "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/invite-links/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
GET /api/teams/{teamId}/locations/gpx
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/locations/gpx" \
-H "Authorization: Bearer <access token>"
POST /api/teams/{teamId}/locations/gpx
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X POST "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/locations/gpx" \
-H "Authorization: Bearer <access token>" \
-F "file=@waypoints.gpx"
POST /api/teams/{teamId}/memberships/invite
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X POST "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/memberships/invite" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/teams/{teamId}/memberships/request
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X POST "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/memberships/request" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/teams/{teamId}/memberships/{membershipId}
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X DELETE "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/memberships/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
POST /api/teams/{teamId}/memberships/{membershipId}/accept
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X POST "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/memberships/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/accept" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/teams/{teamId}/memberships/{membershipId}/approve
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X POST "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/memberships/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/approve" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/teams/{teamId}/memberships/{membershipId}/deny
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X POST "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/memberships/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/deny" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/teams/{teamId}/memberships/{membershipId}/promote-admin
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X POST "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/memberships/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/promote-admin" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/teams/{teamId}/memberships/{membershipId}/refuse
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X POST "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/memberships/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/refuse" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/teams/{teamId}/notes
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/notes" \
-H "Authorization: Bearer <access token>"
POST /api/teams/{teamId}/notes
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X POST "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/notes" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/teams/{teamId}/notes/gpx
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/notes/gpx" \
-H "Authorization: Bearer <access token>"
POST /api/teams/{teamId}/notes/gpx
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X POST "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/notes/gpx" \
-H "Authorization: Bearer <access token>" \
-F "file=@waypoints.gpx"
DELETE /api/teams/{teamId}/notes/{noteId}
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X DELETE "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/notes/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
DELETE /api/teams/{teamId}/notes/{noteId}/delete
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X DELETE "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/notes/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/delete" \
-H "Authorization: Bearer <access token>"
POST /api/teams/{teamId}/notes/{noteId}/move
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X POST "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/notes/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/move" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
PUT /api/teams/{teamId}/settings
Team APIs manage shared locations, categories, invite links, membership decisions, and team-owned trackable scope.
curl -X PUT "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/settings" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/trackables
Protected routes return HTTP 401 until the client sends a bearer token. Opening a POST-only route in a browser returns HTTP 405 because the browser sends GET.
curl -X POST "https://Geotrackable.com/api/trackables" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/trackables/active
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl "https://Geotrackable.com/api/trackables/active"
GET /api/trackables/active-indicator
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl "https://Geotrackable.com/api/trackables/active-indicator"
DELETE /api/trackables/active/{trackableId}
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl -X DELETE "https://Geotrackable.com/api/trackables/active/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
GET /api/trackables/active/{trackableId}
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl "https://Geotrackable.com/api/trackables/active/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
POST /api/trackables/active/{trackableId}/deactivate
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl -X POST "https://Geotrackable.com/api/trackables/active/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/deactivate" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/trackables/active/{trackableId}/message
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl -X POST "https://Geotrackable.com/api/trackables/active/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/message" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/trackables/groups
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl -X POST "https://Geotrackable.com/api/trackables/groups" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/trackables/groups/{trackableGroupId}/watch
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl -X DELETE "https://Geotrackable.com/api/trackables/groups/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/watch" \
-H "Authorization: Bearer <access token>"
POST /api/trackables/groups/{trackableGroupId}/watch
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl -X POST "https://Geotrackable.com/api/trackables/groups/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/watch" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/trackables/legacy-lookup
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl -X POST "https://Geotrackable.com/api/trackables/legacy-lookup" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/trackables/lookup
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl "https://Geotrackable.com/api/trackables/lookup?code=GT-EXAMPLE"
POST /api/trackables/lookup
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl -X POST "https://Geotrackable.com/api/trackables/lookup" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/trackables/mine
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl "https://Geotrackable.com/api/trackables/mine" \
-H "Authorization: Bearer <access token>"
GET /api/trackables/public
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl "https://Geotrackable.com/api/trackables/public?contentLanguage=en-US"
GET /api/trackables/{trackableId}
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
POST /api/trackables/{trackableId}/activate
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl -X POST "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/activate" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/trackables/{trackableId}/comments
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/comments"
POST /api/trackables/{trackableId}/comments
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl -X POST "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/comments" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/trackables/{trackableId}/comments/{commentId}
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl -X DELETE "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/comments/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
PUT /api/trackables/{trackableId}/comments/{commentId}
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl -X PUT "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/comments/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/trackables/{trackableId}/group
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl -X DELETE "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/group" \
-H "Authorization: Bearer <access token>"
POST /api/trackables/{trackableId}/group
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl -X POST "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/group" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/trackables/{trackableId}/journey
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/journey"
POST /api/trackables/{trackableId}/journey-stops
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl -X POST "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/journey-stops" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/trackables/{trackableId}/journey-stops/{journeyStopId}
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl -X DELETE "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/journey-stops/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
DELETE /api/trackables/{trackableId}/watch
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl -X DELETE "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/watch" \
-H "Authorization: Bearer <access token>"
POST /api/trackables/{trackableId}/watch
Trackable routes cover public browsing, private ownership, remembered secret access, comments, and journey stops.
curl -X POST "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/watch" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'