Geotrackable.com

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": ""
  }'

About Trackables

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>"

About Teams

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
}

Delete data

Common status codes

Sign in

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 '{}'

Support