Geotrackable API pat
production domainvamDaq Android app latlh client chaw'lu'bogh jevaD Geotrackable API tu'lu'.
live host yI'ol, bearer token yISuq, public map De' yIlaD, signed-in Daqmey yIsync, trackablemey yIlo'; website UIvo' route pongmey yInoHQo'.
DaH Dotlh poSmoH Qagh payloadmey je Qapqa'meH mIw trackable secret code tlhobmeH mIw qatlh 404 nob GET /api/account
Android app cher
Android Sync tabDaq site origin neH endpoint mojmoH. /api yIchelQo'.
https://Geotrackable.com
local account credentials /api/auth/login?useCookies=false&useSessionCookies=falseDaq yIngeH, ghIq bearer token Hevlu'bogh Authorization headerDaq yIngeH.
janglu' 'e' pIHlu'
bearer token ngeHpa' client HTTP 401 nob route Qanlu'bogh. browserDaq POST-only route poSmoHlu'DI' HTTP 405 nob, GET ngeHmo' browser.
offline sync cycle HochDaq wa'DIch push, cha'DIch pull.
API path Sovbe'lu'boghvaD HTTP 404 noblu'. path Sovlu'boghvaD verb muj lo'lu'chugh, motlh HTTP 405 noblu' 'ej chaq Allow header ngaS. delete-only /api/account pathDaq chIch GET endpoint tu'be'; vaj Qapqa'meH mIw ghajbogh 404 nob GET /api/account. account laDmeH /api/auth/manage/info yIlo'.
host yI'ol, yI'el, private routes Dapongpa' token yI'ol.
DaH account De' route framework identity APIvo' ghoS. account route pIm deletion ru'Ha'vaD neH tu'lu'.
Dotlh 'ol
routevam anonymous 'ej production API host SIchlaHlu' 'e' 'olmeH mIw nomqu'.
curl "https://Geotrackable.com/api/system/status"
{
"status": "online",
"utcNow": "2026-06-20T12:00:00Z",
"androidBetaPageUrl": "https://Geotrackable.com/en-US/Account/Beta"
}
muvmeH mIw
bearer token tlhobpa', email, password, public profile user name je lo'taHvIS local account yIchenmoH. user namemeyDaq Deghmey mach, mI' Deghmey, underscore neH chaw'lu'.
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 token lo'taHvIS 'elmeH mIw
bearer token poQDI' script, app pagh API client, cookies chu'Ha'lu'taHvIS local account credentials yIlo'.
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..."
}
DaH account profile je
GET /api/account profile endpoint tu'be'lu'. signed-in account metadatavaD identity manage-info endpoint yIlo'; public profile 'angmeH website profile pages yIlo'.
GET /api/account read route muchlu'bogh 'oHbe'.
GET /api/auth/manage/info signed-in identity De' nob.
DELETE /api/account DaH account ru'Ha' teq.
curl "https://Geotrackable.com/api/auth/manage/info" \
-H "Authorization: Bearer <access token>"
Android pagh API-client rarghlu'ghach DanuDDI' routevam yIlo'choH.
| mIw | He |
|---|---|
mIw">GET |
He">/api/system/status |
mIw">POST |
He">/api/auth/register |
mIw">POST |
He">/api/auth/login?useCookies=false&useSessionCookies=false |
mIw">GET |
He">/api/auth/manage/info |
mIw">POST |
He">/api/sync/push |
mIw">POST |
He">/api/sync/pull |
mIw">GET |
He">/api/notes/public/bounds |
mIw">GET |
He">/api/notes/public/nearby |
mIw">GET |
He">/api/categories/mine |
mIw">GET |
He">/api/notes/mine |
mIw">GET |
He">/api/trackables/public |
mIw">POST |
He">/api/trackables/lookup |
mIw">GET |
He">/api/trackables/active |
mIw">DELETE |
He">/api/account |
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
websiteDaq Locations Hol lo' Geotrackable; API route pongmey shared notes contracts bIngDaq lo'taH.
map veHmeyDaq public Daqmey
map viewport ghajta'DI' clientlIj 'ej areavetlhvaD public location notes leghlaHbogh neHDI', bounds yIlo'.
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"
}
]
personal Daq yIchenmoH
private pagh public Daqmey chenmoHlaH signed-in caller. public DaqmeyvaD authenticated account poQ, anonymous local-only storage poQbe'.
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
}'
wa'DIch local choHmey yIpush, ghIq user current public area je server view yIpull.
sync route cha' bearer auth poQ. deviceDaq ratlhlaH anonymous private Daqmey, 'ach server sync API lajbe'.
ngeHmeH tlhobghach
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": "ca90c4ca-88a9-4a9b-b3a8-36e2649c5dcb",
"title": "Offline field stop",
"body": "Saved while disconnected.",
"contentLanguage": "en-US",
"latitude": 41.8818,
"longitude": -87.6231,
"visibility": 0,
"isDeleted": false,
"updatedUtc": "2026-06-20T12:05:00Z",
"clientMutationId": "android-offline-42",
"teamId": null
}
],
"categories": [
{
"categoryId": "ca90c4ca-88a9-4a9b-b3a8-36e2649c5dcb",
"ownerUserId": "a7cfd28f-c17f-4cf7-8913-47fa10fd0d1f",
"name": "Offline field notes",
"contentLanguage": "en-US",
"teamId": null,
"parentCategoryId": null,
"sortOrder": 0,
"isDeleted": false,
"updatedUtc": "2026-06-20T12:04:00Z"
}
]
}'
category leghlaHbogh signed-in account pagh push rapDaq category chellu'bogh ngu'nIS note Hoch. offline bIH DachenmoHtaHvIS record cha'Daq categoryId rap yIpol.
HevmeH tlhobghach
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": []
}
pull Daruchpa' push conflicts yIta'
conflicts collection ghajbogh HTTP 200 noblaH push lugh. entity Hoch sync mIw ngoD 'oH; transport QapHa'ghach 'oHbe'. entityId, entityType, Human meq, code choHbe'bogh, action naQ je ngaS conflict Hoch.
{
"entityId": "ef90c4ca-88a9-4a9b-b3a8-36e2649c5dcb",
"entityType": "Note",
"reason": "Incoming note update is stale.",
"code": "stale_update",
"action": "Pull the current server copy, merge or discard the local edit, and then push a newer update."
}
entity lajbe'lu'bogh pegh yIngeHqa'taHQo'. stale_updatevaD pull je merge wuqghach je poQlu'; team_membership_requiredvaD membership chu'qa'lu'bogh poQlu'; online_team_management_required choH online team APIsDaq vIHmoH; accountvamvaD server copy Qap 'e' 'oS entity_ownership_conflict.
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
sensitive credentials bIH secret codes private QR payloads je. chenmoHlu'pu'DI' bIH nobbe' read routes motlh.
wIvlaHlu' secretCode property POST /api/trackablesDaq. system secret code le' chenmoHjaj Geotrackable DaneHDI', secretCode yIchelQo'; code polnISbogh ghajta'DI' physical item, custom value chaw'lu'bogh yIngeH.
public browse lookup je
curl "https://Geotrackable.com/api/trackables/public?contentLanguage=en-US"
curl -X POST "https://Geotrackable.com/api/trackables/lookup" \
-c geotrackable.cookies \
-H "Content-Type: application/json" \
-d '{
"code": "GT7F3K9"
}'
browser-style active session chenmoHlaH Secret je QR lookup. pIq active-session callsvaD response cookie jar yIpol, credential DaQanbogh rur filevetlh yIQan, 'ej session poQbe'lu'choHDI' yIteq.
trackable yIchenmoH
tlhobghach chuplu'boghDaq secretCode tu'be'. secretCode yIchelQo'chugh, null 'oHchugh, chImchugh, pagh whitespace neH ghajchugh, code chenmoHjaj server 'e' Datlhob. value chImbe'lu'bogh ngeHlu'chugh, normalization availability checks je qaSpu'DI' custom codevetlh naQ tlhoblu'.
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
}'
secret code naQ yItlhob
custom identifier ghajta'DI' item neH secretCode yIngeH. normalized value lo'laHchugh, laj server 'ej HTTP 201 nob. pIm public code chenmoHlu'bogh; codevetlh wIvtaH Geotrackable.
curl -X POST "https://Geotrackable.com/api/trackables" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Existing event tag",
"description": "Uses the identifier already printed on the tag.",
"visibility": "VisibleOnceAccessed",
"activateImmediately": true,
"secretCode": "TAG42"
}'
32 Deghmey juSnISbe' custom codes, 'ej public je secret trackable-code namespace naQDaq lo'laHnIS. GT, LN, TB, GK, pagh GC taghbogh codes system-issued pagh origin-site identifiersvaD pollu'; custom Geotrackable secret codes mojlaHbe'.
wa'logh neH pegh De' 'ang chenmoHghach jangghach
SIbI' secretCode scanUrl je cheghbogh yIpol. pIq chIch credentialsvetlh 'angqa'be' list, detail, lookup, comment, journey routes je.
HTTP/1.1 201 Created
{
"trackableId": "13a2c0b1-582f-4a7b-92aa-16922f7bdb63",
"heading": "Scout trail coin",
"items": [
{
"trackableId": "13a2c0b1-582f-4a7b-92aa-16922f7bdb63",
"name": "Scout trail coin",
"publicCode": "GT-7F3K9Q",
"secretCode": "GT8M2Q7V",
"scanUrl": "https://geotrackable.com/trackable/<private-qr-token>",
"qrPayload": "<private-qr-token>"
}
]
}
secret access chu'
valid secret code pagh scan payload 'elDI' browser, nuq poSqa'moHlaH browservetlh 'e' 'ang active-session routes.
curl "https://Geotrackable.com/api/trackables/active" \
-b geotrackable.cookies
curl -X POST "https://Geotrackable.com/api/trackables/active/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/message" \
-b geotrackable.cookies \
-H "Content-Type: application/json" \
-d '{
"statusMessage": "Live hunt in progress"
}'
code tlhoblu'bogh ghajlu'ta'DI'
custom code latlh ghajlu'chugh, code trackable_secret_code_taken ghajbogh HTTP 409 chegh. trackable chenmoHbe' tlhobghachvam. value rap yInIDqa'taHQo': code chenmoHlu'bogh HevmeH secretCode yIchelQo', pagh custom code pIm chaw'lu'bogh yIwIv.
{
"type": "/en-US/api-docs#errors-and-problem-details",
"title": "Requested secret code is unavailable.",
"status": 409,
"detail": "That secret code is already in use by another Geotrackable identifier. Supplying a secret code is optional: omit it to receive a unique system-generated code, or choose a different code.",
"instance": "/api/trackables",
"code": "trackable_secret_code_taken",
"field": "secretCode",
"action": "Omit secretCode to receive a unique system-generated code, or submit a different allowed secretCode.",
"requestId": "0HN7EXAMPLE:00000001",
"documentation": "/en-US/api-docs#errors-and-problem-details"
}
prefix pollu'bogh Qapqa'meH mIw
GTGeotrackable system-issued codesvaD pollu'. secretCode yIchelQo'; wa' code nobjaj hostvam.LNLocationNotes trackable code 'oH; naDev code Dalo'qa'pa', origin siteDaq item yIta'.TBGeocaching.com trackable code 'oH; origin tracking flow yIlo'.GKGeoKrety.org trackable code 'oH; origin tracking flow yIlo'.GCGeocaching.com geocache identifier 'oH; Geotrackable secret code 'oHbe'.
problem jangghach action documentation link je ghajbogh nob custom values pollu'bogh pagh lughbe'bogh. reH QobHa' fallback: create requestvo' secretCode yIteq.
journey stop yIlog
full location note poQbe'lu'DI', direct journey stop 'oH route update tIS.
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"
}'
trackableDaq comment yIghItlh
bearer identity lo'taHvIS comment ghItlhlaH signed-in callers. active secret-backed session ghajDI' clientvam pagh itemvam naQ accessCode ngeHDI', trackable chu'lu'boghDaq comment ghItlhlaH je anonymous callers.
curl -X POST "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/comments" \
-b geotrackable.cookies \
-H "Content-Type: application/json" \
-d '{
"body": "Found near the overlook and moved west.",
"accessCode": ""
}'
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
ghom yIchenmoH
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"
}'
invite link yIchenmoH
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>"
page pagh content rarbogh visibility pab media support routes je.
nInmey
public-safe parent page tu'lu'DI', list read anonymous laH. upload delete routes je bearer auth poQ.
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 'ol
Daq, team, trackable pagh trackable groupDaq link Dapolpa' external link yI'ol.
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 error reports je
public-page content SaHghachmeyvaD reports yIlo'; support nuDlaHbogh client-side diagnostics errors je yIlo'.
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."
}'
APIDaq account yIteq
APIDaq DaH account synced personal De' je ru'Ha' teqlaH authenticated clients. export steps pagh shared trackable retention rules DapoQDI' Delete Data page wa'DIch yIlaD.
curl -X DELETE "https://Geotrackable.com/api/account" \
-H "Authorization: Bearer <access token>"
{
"deletedAccount": true,
"notesDeleted": 14,
"categoriesDeleted": 6,
"linkedProvidersDeleted": 2
}
action veb lI' ngaS errors
code choHbe'bogh lo'taHvIS QapHa'ghach ngu' API problem jangghachmey, tlhobghachvam detail luQIj, 'ej 'anglaH pagh pablaH client action lunob. tlhobghach server diagnostics je rarnIS supportDI' requestId yIlo'.
machine code yIlo', requestId yIpol, 'ej English ghItlh DapoQHa'moHpa' action yIpab.
application/problem+json je RFC rurbogh problem-details object je lo' API QapHa'ghachmey. poH veb title je detail ghItlh Human laDlaHbogh DublaHlu' pagh mughlaHlu'; program logicvaD value choHbe'bogh 'oH code'e'.
problem jangghach chen
Content-Type: application/problem+json
{
"type": "/en-US/api-docs#errors-and-problem-details",
"title": "Trackable access is required.",
"status": 403,
"detail": "This request needs access to this specific trackable.",
"instance": "/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/comments",
"code": "trackable_access_code_required",
"action": "Sign in, keep this trackable active in this client, or provide its secret code or private QR access value.",
"requestId": "0HN7EXAMPLE:00000002",
"documentation": "/en-US/api-docs#errors-and-problem-details"
}
field Hoch Qu'
type- problem-details contractvam URI choHbe'bogh. client logicDaq QapHa'ghach naQ DapImmoHmeH code yIlo'; type pagh Human ghItlh yIlo'Qo'.
title- nach ghItlhvaD Human summary ngaj. ghItlhvammo' client logic yIwuQQo'.
status- bodyDaq HTTP status jatlhqa'lu', vaj diagnostics polta'bogh yajlaHlu'taH.
detail- credentials pagh private tokens 'angqa'be'taHvIS nuq QapHa' 'e' QIjbogh tlhobghachvam De'.
instance- wanIvam tlhejbogh request path. secret ghajbogh website entry paths redactedlaHlu'.
code- machine laDlaHbogh identifier choHbe'bogh; identifiervam lo'taHvIS wIv client.
action- Qapqa'meH mIw naQ: field yIlughmoH, yIauthenticate, yIloS, payload yImachmoH, pagh value latlh yIwIv.
requestId- QaH tlhobghachDaq chellaHlu'bogh rarlu'meH De' QobHa' 'oH. status, code, method, route template je tlhej yIpol.
documentation- QapHa'ghach Segh pagh code naQvaD QaH Daq.
field names ngaS validation errors
errors object chel HTTP 400 validation QapHa'ghachmey. JSON property pagh tlhobghach area lughmoHnISbogh 'oH key Hoch'e'; rule law' bIvlaH field wa' vaj array 'oH value Hoch'e'.
{
"type": "/en-US/api-docs#errors-and-problem-details",
"title": "Request validation failed.",
"status": 400,
"detail": "One or more request fields are invalid. Correct every field listed in errors and submit the request again.",
"instance": "/api/trackables",
"code": "validation_failed",
"action": "Correct every field listed in errors and submit the request again.",
"requestId": "0HN7EXAMPLE:00000003",
"documentation": "/en-US/api-docs#errors-and-problem-details",
"errors": {
"name": ["Name cannot be longer than 160 characters."],
"secretCode": ["Secret code cannot be longer than 32 characters."]
}
}
JSON Qagh je content type
JSON lughbe' 'oH request validation QapHa'ghach'e'. requestId yIpol, syntax yIlughmoH, 'ej Content-Type: application/json lo'taHvIS body yIngeHqa'. file-upload endpointsvaD multipart/form-data poQlu' 'ej route-specific field name ghajbogh files pagh file part poQlu'.
syntax lugh ghajlaH body, 'ach business rule lajbe'laH. field QaghmeyvaD errors yIlo'; program logicvaD code; contextvaD detail; mIw vebvaD action. server exception tlhol pagh stack trace lo'wI'pu'vaD yI'angQo'.
| Dotlh | nuq 'oS | Qapqa'meH mIw | nIDqa'meH qeS |
|---|---|---|---|
400 Bad Request |
tlhobghach lajbe' JSON, query values, field constraints, pagh business rule. | tu'lu'DI' errors yIlaD; tu'be'DI' code, detail, action je yIlaD. tlhobghach DangeHqa'pa' yIlughmoH. | tlhobghach choHbe'lu'bogh yIngeHqa'Qo'. |
401 Unauthorized |
bearer token lo'laH Hevbe' route Qanlu'bogh. email tu'lu' pagh tu'lu'be' 'e' 'angbe'taHvIS HTTP 401 lo' je login QapHa'ghachmey. | token yISuq pagh yIchu'qa', Bearer scheme host je yI'ol, ghIq call DaHechbogh wa'logh yIruchqa'. | authentication choHta'DI' neH yInIDqa'; nIDmey choHbe'lu'bogh lI'be'. |
403 Forbidden |
caller Sovlu', 'ach ownership, team role, active trackable session, pagh secret-backed access poQlu'bogh ghajbe'. | action yIpab: account lo'laH yIlo', access yItlhob, item yIchu'moH, pagh trackablevetlh naQ access yInob. | access state choHpa' yInIDqa'Qo'. |
404 Not Found |
route pagh resource Sambe'lu'. private resources tu'lu' 'e' SovlaHbe'nIS callerDI', chIch tu'be' rurlaH bIH. | method, route, GUID, public code, current list state je yI'ol. client De' ngo' yIchu'qa'. | mIw yIruchqa'taHQo'. identifier DalughmoHta'DI' pagh state Dachu'qa'ta'DI' neH yInIDqa'. |
405 Method Not Allowed |
path tu'lu', 'ach HTTP verb muj; ghantoH, browser GET lo'taHvIS POST-only route poSmoHlu'. | method 'angbogh documentationvam yIlo' 'ej noblu'DI' Allow response header yInuD. | method lugh je request shape lugh je lo'taHvIS neH yInIDqa'. |
409 Conflict |
tlhobghach lugh, 'ach current server state Qoch; chaq trackable secret code tlhoblu'bogh ghajlu'ta'. | current state yIloadqa' pagh value Qoch yIchoH. trackable chenmoHlu'DI', code chenmoHmeH secretCode yIchelQo' pagh custom code latlh yIwIv. | create value rap yInIDqa'Qo'; tlhobghach pagh state DachoHta'DI' neH yInIDqa'. |
413 Content Too Large |
size lajlu'bogh juS request body pagh uploaded file set. | image mI' pagh size yImachmoH; chaw'DI' workflow upload yIwav; metadata requests media je yIpImmoH. | payload mach law' lo'taHvIS neH yInIDqa'. |
415 Unsupported Media Type |
endpoint rapbe' body encoding. | JSON endpointsvaD application/json yIlo'; image pagh GPX upload endpointsvaD multipart/form-data yIlo'. multipart boundaries chenmoHjaj HTTP library. | Content-Type je body encoding je DalughmoHta'DI' neH yInIDqa'. |
429 Too Many Requests |
request limit juS client pagh ngeHghachmey ghom ngeH nomqu'. | tu'lu'DI' Retry-After yIpab, concurrency yImachmoH, public reads yIcache, 'ej duplicate requests yImuvmoH. | Retry-After yIloS; tu'be'chugh, jitter ghajbogh exponential backoff je retry cap je yIlo'. |
500 Internal Server Error |
QapHa'ghach pIHbe'lu'bogh QonoS Geotrackable. stack traces pagh internal secrets 'angbe' jangghach. | tu'lu'DI' requestId ticketNumber je yIpol, ghIq poH, method, route template, status, code je nobtaHvIS support yIrI'. | loSqa'ta'DI' safe reads yInIDqa'. commit state Sovbe'lu'DI', create pagh latlh non-idempotent write Daleghbe'taHvIS yIruchqa'Qo'. |
chIch writes yInIDqa'
motlh GET tlhobghachmey nIDqa'lu'chugh QobHa'. jangghach Hevpa' client time outchugh, De' chenmoHlaHtaH POST. trackable chenmoHghach Daruchqa'pa', GET /api/trackables/mine yIchu'qa' 'ej result yIrapmoH, vaj duplicate physical items chenmoHbe' network timeout.
HTTP 429 pagh ru'bogh 500 qaSDI', jitter ghajbogh exponential backoff veHlu'bogh yIlo'. tlhobghach'e' choHnISlu' jatlhDI' action, yImev. 400, 403, 404, 405, 409, 413, pagh 415 automatic retry loop yImojmoHQo'.
credentials 'angbe'taHvIS diagnostics lI' yIpol
Authorization headers yIQonoSQo'; bearer pagh refresh tokens, mu'mey pegh, cookies, secretCode, accessCode, QR payloads, scan URLs pegh, pagh /trackable/{code} 'elmeH paths tlhol je yIQonoSQo'. telemetry, QapHa'ghach ja'meH De', jIH mIlloghmey, QaH chelbogh De' jevaD ngeHlu'pa' bIH yISo'.
diagnostic De' QobHa' ngaS requestId, ticketNumber, HTTP status, code choHbe'bogh, method, route template, client version, timestamp je. Daq ghItlh, coordinates naQ, rI' De', pagh trackable credential ngaSlaHchugh request body naQ yIcopyQo'.
POST /api/trackables -> 409
code=trackable_secret_code_taken
requestId=0HN7EXAMPLE:00000001
secretCode=[REDACTED]
Geotrackable API route muchlu'bogh
Geotrackable endpoint table QaptaHboghvo' chenmoHlu' tetlhvam, vaj host rarlaH ghItlh muchlu'bogh.
| mIw | He | naw' |
|---|---|---|
mIw">DELETE |
He">/api/account |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/auth/confirmEmail |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/auth/forgotPassword |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/auth/login |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/auth/manage/2fa |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/auth/manage/info |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/auth/manage/info |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/auth/refresh |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/auth/register |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/auth/resendConfirmationEmail |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/auth/resetPassword |
naw'">pegh pagh pong ghajbe' |
mIw">GET |
He">/api/categories/mine |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/categories/mine |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/categories/mine/tree |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/categories/mine/tree/children |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/categories/mine/tree/sections |
naw'">chaw' poQlu' |
mIw">DELETE |
He">/api/categories/mine/{categoryId} |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/categories/mine/{categoryId}/move |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/compliance/errors |
naw'">pegh pagh pong ghajbe' |
mIw">GET |
He">/api/compliance/reports |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/compliance/reports |
naw'">pegh pagh pong ghajbe' |
mIw">GET |
He">/api/compliance/reports/mine |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/compliance/reports/{contentReportId} |
naw'">chaw' poQlu' |
mIw">PUT |
He">/api/compliance/reports/{contentReportId} |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/external-links/verify |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/images/notes/{noteId} |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/images/notes/{noteId} |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/images/profiles |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/images/profiles/{userId} |
naw'">pegh pagh pong ghajbe' |
mIw">GET |
He">/api/images/teams/{teamId} |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/images/teams/{teamId} |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/images/trackable-groups/{trackableGroupId} |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/images/trackable-groups/{trackableGroupId} |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/images/trackables/{trackableId} |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/images/trackables/{trackableId} |
naw'">chaw' poQlu' |
mIw">DELETE |
He">/api/images/{contentImageId} |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/images/{contentImageId}/{variant} |
naw'">pegh pagh pong ghajbe' |
mIw">GET |
He">/api/locations/mine/gpx |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/locations/mine/gpx |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/notes/mine |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/notes/mine |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/notes/mine/gpx |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/notes/mine/gpx |
naw'">chaw' poQlu' |
mIw">DELETE |
He">/api/notes/mine/{noteId} |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/notes/mine/{noteId}/move |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/notes/public/bounds |
naw'">pegh pagh pong ghajbe' |
mIw">GET |
He">/api/notes/public/nearby |
naw'">pegh pagh pong ghajbe' |
mIw">GET |
He">/api/public/notes/{noteId} |
naw'">pegh pagh pong ghajbe' |
mIw">GET |
He">/api/public/notes/{noteId}/comments |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/public/notes/{noteId}/comments |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/public/notes/{noteId}/trackables |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/public/notes/{noteId}/trackables |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/public/profiles/{userName}/notes/nearby |
naw'">pegh pagh pong ghajbe' |
mIw">GET |
He">/api/public/teams/{teamName}/notes/nearby |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/sync/pull |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/sync/push |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/system/beta-android |
naw'">pegh pagh pong ghajbe' |
mIw">GET |
He">/api/system/coordinate-locality |
naw'">pegh pagh pong ghajbe' |
mIw">GET |
He">/api/system/ip-location |
naw'">pegh pagh pong ghajbe' |
mIw">GET |
He">/api/system/status |
naw'">pegh pagh pong ghajbe' |
mIw">GET |
He">/api/teams |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/teams |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/teams/invite-links/{teamSlug}/{inviteCode}/join |
naw'">chaw' poQlu' |
mIw">DELETE |
He">/api/teams/{teamId} |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/teams/{teamId}/categories |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/teams/{teamId}/categories |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/teams/{teamId}/categories/tree |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/teams/{teamId}/categories/tree/children |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/teams/{teamId}/categories/tree/sections |
naw'">chaw' poQlu' |
mIw">DELETE |
He">/api/teams/{teamId}/categories/{categoryId} |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/teams/{teamId}/categories/{categoryId}/move |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/teams/{teamId}/invite-links |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/teams/{teamId}/invite-links |
naw'">chaw' poQlu' |
mIw">DELETE |
He">/api/teams/{teamId}/invite-links/{inviteLinkId} |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/teams/{teamId}/locations/gpx |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/teams/{teamId}/locations/gpx |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/teams/{teamId}/memberships/invite |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/teams/{teamId}/memberships/request |
naw'">chaw' poQlu' |
mIw">DELETE |
He">/api/teams/{teamId}/memberships/{membershipId} |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/teams/{teamId}/memberships/{membershipId}/accept |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/teams/{teamId}/memberships/{membershipId}/approve |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/teams/{teamId}/memberships/{membershipId}/deny |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/teams/{teamId}/memberships/{membershipId}/promote-admin |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/teams/{teamId}/memberships/{membershipId}/refuse |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/teams/{teamId}/notes |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/teams/{teamId}/notes |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/teams/{teamId}/notes/gpx |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/teams/{teamId}/notes/gpx |
naw'">chaw' poQlu' |
mIw">DELETE |
He">/api/teams/{teamId}/notes/{noteId} |
naw'">chaw' poQlu' |
mIw">DELETE |
He">/api/teams/{teamId}/notes/{noteId}/delete |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/teams/{teamId}/notes/{noteId}/move |
naw'">chaw' poQlu' |
mIw">PUT |
He">/api/teams/{teamId}/settings |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/trackables |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/trackables/active |
naw'">pegh pagh pong ghajbe' |
mIw">GET |
He">/api/trackables/active-indicator |
naw'">pegh pagh pong ghajbe' |
mIw">DELETE |
He">/api/trackables/active/{trackableId} |
naw'">pegh pagh pong ghajbe' |
mIw">GET |
He">/api/trackables/active/{trackableId} |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/trackables/active/{trackableId}/deactivate |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/trackables/active/{trackableId}/message |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/trackables/groups |
naw'">chaw' poQlu' |
mIw">DELETE |
He">/api/trackables/groups/{trackableGroupId}/watch |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/trackables/groups/{trackableGroupId}/watch |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/trackables/legacy-lookup |
naw'">pegh pagh pong ghajbe' |
mIw">GET |
He">/api/trackables/lookup |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/trackables/lookup |
naw'">pegh pagh pong ghajbe' |
mIw">GET |
He">/api/trackables/mine |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/trackables/public |
naw'">pegh pagh pong ghajbe' |
mIw">GET |
He">/api/trackables/{trackableId} |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/trackables/{trackableId}/activate |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/trackables/{trackableId}/comments |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/trackables/{trackableId}/comments |
naw'">pegh pagh pong ghajbe' |
mIw">DELETE |
He">/api/trackables/{trackableId}/comments/{commentId} |
naw'">chaw' poQlu' |
mIw">PUT |
He">/api/trackables/{trackableId}/comments/{commentId} |
naw'">chaw' poQlu' |
mIw">DELETE |
He">/api/trackables/{trackableId}/group |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/trackables/{trackableId}/group |
naw'">chaw' poQlu' |
mIw">GET |
He">/api/trackables/{trackableId}/journey |
naw'">pegh pagh pong ghajbe' |
mIw">POST |
He">/api/trackables/{trackableId}/journey-stops |
naw'">pegh pagh pong ghajbe' |
mIw">DELETE |
He">/api/trackables/{trackableId}/journey-stops/{journeyStopId} |
naw'">chaw' poQlu' |
mIw">DELETE |
He">/api/trackables/{trackableId}/watch |
naw'">chaw' poQlu' |
mIw">POST |
He">/api/trackables/{trackableId}/watch |
naw'">chaw' poQlu' |
DELETE /api/account
APIDaq DaH account synced personal De' je ru'Ha' teqlaH authenticated clients. export steps pagh shared trackable retention rules DapoQDI' Delete Data page wa'DIch yIlaD.
curl -X DELETE "https://Geotrackable.com/api/account" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns deletion counts after the signed-in account and eligible personal data were permanently removed. A successful response signs the current session out.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
401 requires a valid bearer token. 400 explains why deletion cannot complete. Account deletion is destructive: do not automatically retry after an unknown timeout; check sign-in state first.
GET /api/auth/confirmEmail
Complete email confirmation with the user ID and URL-encoded confirmation code from the confirmation link.
curl "https://Geotrackable.com/api/auth/confirmEmail?userId=13a2c0b1-582f-4a7b-92aa-16922f7bdb63&code=URL_ENCODED_CONFIRMATION_CODE"
jangghach Qap
HTTP 200 means the identity operation completed. Read the returned identity payload when the operation provides one; password and confirmation operations can intentionally return an empty success body.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 includes field-level identity validation guidance; 401 means the bearer token or credentials are unusable. Follow action and do not retry unchanged credentials in a loop.
POST /api/auth/forgotPassword
Start an email-based account recovery or confirmation workflow. The response deliberately does not reveal whether the email address exists.
curl -X POST "https://Geotrackable.com/api/auth/forgotPassword" \
-H "Content-Type: application/json" \
-d '{ "email": "api-user@example.com" }'
jangghach Qap
HTTP 200 means the identity operation completed. Read the returned identity payload when the operation provides one; password and confirmation operations can intentionally return an empty success body.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 includes field-level identity validation guidance; 401 means the bearer token or credentials are unusable. Follow action and do not retry unchanged credentials in a loop.
POST /api/auth/login
Exchange local account credentials, and a two-factor value when required, for bearer and refresh tokens. API clients must keep cookies disabled.
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!" }'
jangghach Qap
HTTP 200 returns tokenType, accessToken, expiration data, and the signed-in user summary. Store credentials in platform-secure storage and never log them.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 covers malformed JSON or missing fields. 401 authentication_failed deliberately does not reveal whether the email exists; verify credentials or use the password-reset flow before retrying. A 401 two_factor_required response keeps requiresTwoFactor true and tells the client to repeat login with either twoFactorCode or twoFactorRecoveryCode.
POST /api/auth/manage/2fa
Enable, disable, reset, or inspect two-factor authentication for the signed-in account. Authenticator and recovery values are sensitive credentials.
curl -X POST "https://Geotrackable.com/api/auth/manage/2fa" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{ "enable": true, "twoFactorCode": "123456", "resetSharedKey": false, "resetRecoveryCodes": false, "forgetMachine": false }'
jangghach Qap
HTTP 200 means the identity operation completed. Read the returned identity payload when the operation provides one; password and confirmation operations can intentionally return an empty success body.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 includes field-level identity validation guidance; 401 means the bearer token or credentials are unusable. Follow action and do not retry unchanged credentials in a loop.
GET /api/auth/manage/info
Read the signed-in account email and confirmation state, or update the email/password with the current password when required.
curl "https://Geotrackable.com/api/auth/manage/info" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 means the identity operation completed. Read the returned identity payload when the operation provides one; password and confirmation operations can intentionally return an empty success body.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 includes field-level identity validation guidance; 401 means the bearer token or credentials are unusable. Follow action and do not retry unchanged credentials in a loop.
POST /api/auth/manage/info
Read the signed-in account email and confirmation state, or update the email/password with the current password when required.
curl -X POST "https://Geotrackable.com/api/auth/manage/info" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{ "newEmail": "new-api-user@example.com", "oldPassword": "Use-a-strong-password-123!" }'
jangghach Qap
HTTP 200 means the identity operation completed. Read the returned identity payload when the operation provides one; password and confirmation operations can intentionally return an empty success body.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 includes field-level identity validation guidance; 401 means the bearer token or credentials are unusable. Follow action and do not retry unchanged credentials in a loop.
POST /api/auth/refresh
Exchange a still-usable refresh token for a new access-token response without resending the account password.
curl -X POST "https://Geotrackable.com/api/auth/refresh" \
-H "Content-Type: application/json" \
-d '{ "refreshToken": "<refresh token from login>" }'
jangghach Qap
HTTP 200 means the identity operation completed. Read the returned identity payload when the operation provides one; password and confirmation operations can intentionally return an empty success body.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 includes field-level identity validation guidance; 401 means the bearer token or credentials are unusable. Follow action and do not retry unchanged credentials in a loop.
POST /api/auth/register
Create a local account with an email address, public user name, and strong password. Registration does not return a bearer token; sign in next.
curl -X POST "https://Geotrackable.com/api/auth/register" \
-H "Content-Type: application/json" \
-d '{ "email": "api-user@example.com", "userName": "api_trail_user", "password": "Use-a-strong-password-123!" }'
jangghach Qap
HTTP 200 means the local account was created. The response has no bearer token; call the login route next.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 validation_failed identifies malformed JSON or email, password, and userName field errors. Correct the listed errors; duplicate values require a different email or public user name.
POST /api/auth/resendConfirmationEmail
Start an email-based account recovery or confirmation workflow. The response deliberately does not reveal whether the email address exists.
curl -X POST "https://Geotrackable.com/api/auth/resendConfirmationEmail" \
-H "Content-Type: application/json" \
-d '{ "email": "api-user@example.com" }'
jangghach Qap
HTTP 200 means the identity operation completed. Read the returned identity payload when the operation provides one; password and confirmation operations can intentionally return an empty success body.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 includes field-level identity validation guidance; 401 means the bearer token or credentials are unusable. Follow action and do not retry unchanged credentials in a loop.
POST /api/auth/resetPassword
Complete password recovery with the exact reset code from email and a new strong password. Reset codes are credentials and must not be logged.
curl -X POST "https://Geotrackable.com/api/auth/resetPassword" \
-H "Content-Type: application/json" \
-d '{ "email": "api-user@example.com", "resetCode": "URL_ENCODED_RESET_CODE", "newPassword": "Use-a-new-strong-password-456!" }'
jangghach Qap
HTTP 200 means the identity operation completed. Read the returned identity payload when the operation provides one; password and confirmation operations can intentionally return an empty success body.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 includes field-level identity validation guidance; 401 means the bearer token or credentials are unusable. Follow action and do not retry unchanged credentials in a loop.
GET /api/categories/mine
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl "https://Geotrackable.com/api/categories/mine" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the personal category list, management tree, sections, or requested children. Empty branches are successful.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies field, hierarchy, bounds, GPX, or move/delete rules; 401 requires a token; 403 requires ownership; 404 means refresh personal workspace state. Uploads can also return 413 or 415.
POST /api/categories/mine
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl -X POST "https://Geotrackable.com/api/categories/mine" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{ "name": "Trail research", "contentLanguage": "en-US", "parentCategoryId": null }'
jangghach Qap
HTTP 200 returns the created or moved category, or acknowledges deletion after descendant rules are satisfied.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies field, hierarchy, bounds, GPX, or move/delete rules; 401 requires a token; 403 requires ownership; 404 means refresh personal workspace state. Uploads can also return 413 or 415.
GET /api/categories/mine/tree
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl "https://Geotrackable.com/api/categories/mine/tree" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the personal category list, management tree, sections, or requested children. Empty branches are successful.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies field, hierarchy, bounds, GPX, or move/delete rules; 401 requires a token; 403 requires ownership; 404 means refresh personal workspace state. Uploads can also return 413 or 415.
GET /api/categories/mine/tree/children
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl "https://Geotrackable.com/api/categories/mine/tree/children" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the personal category list, management tree, sections, or requested children. Empty branches are successful.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies field, hierarchy, bounds, GPX, or move/delete rules; 401 requires a token; 403 requires ownership; 404 means refresh personal workspace state. Uploads can also return 413 or 415.
GET /api/categories/mine/tree/sections
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl "https://Geotrackable.com/api/categories/mine/tree/sections" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the personal category list, management tree, sections, or requested children. Empty branches are successful.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies field, hierarchy, bounds, GPX, or move/delete rules; 401 requires a token; 403 requires ownership; 404 means refresh personal workspace state. Uploads can also return 413 or 415.
DELETE /api/categories/mine/{categoryId}
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl -X DELETE "https://Geotrackable.com/api/categories/mine/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the created or moved category, or acknowledges deletion after descendant rules are satisfied.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies field, hierarchy, bounds, GPX, or move/delete rules; 401 requires a token; 403 requires ownership; 404 means refresh personal workspace state. Uploads can also return 413 or 415.
POST /api/categories/mine/{categoryId}/move
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
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 '{ "parentCategoryId": null }'
jangghach Qap
HTTP 200 returns the created or moved category, or acknowledges deletion after descendant rules are satisfied.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies field, hierarchy, bounds, GPX, or move/delete rules; 401 requires a token; 403 requires ownership; 404 means refresh personal workspace state. Uploads can also return 413 or 415.
POST /api/compliance/errors
page pagh content rarbogh visibility pab media support routes je.
curl -X POST "https://Geotrackable.com/api/compliance/errors" \
-H "Content-Type: application/json" \
-d '{ "requestUrl": "/api/example", "httpMethod": "POST", "responseStatusCode": 500, "traceIdentifier": "0HN7EXAMPLE:00000004", "userExplanation": "The save failed after the map was updated." }'
jangghach Qap
HTTP 200 or 201 returns an error ticket receipt. HTTP 200 means the request was attached to an existing ticket; HTTP 201 means a new ticket was created.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains missing report context or invalid workflow state; 401 protects personal/admin lists; 403 requires the appropriate reporter or SuperAdmin role; 404 means preserve the ID but refresh the report list.
GET /api/compliance/reports
page pagh content rarbogh visibility pab media support routes je.
curl "https://Geotrackable.com/api/compliance/reports" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the report or report collection visible to the signed-in reporter or authorized administrator.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains missing report context or invalid workflow state; 401 protects personal/admin lists; 403 requires the appropriate reporter or SuperAdmin role; 404 means preserve the ID but refresh the report list.
POST /api/compliance/reports
page pagh content rarbogh visibility pab media support routes je.
curl -X POST "https://Geotrackable.com/api/compliance/reports" \
-H "Content-Type: application/json" \
-d '{ "pageType": "Trackable", "contentType": "Trackable", "pageTitle": "Scout trail coin", "pageUrl": "/trackable/GT-EXAMPLE", "reportTitle": "Outdated public link", "reportExplanation": "The destination is no longer related to this trackable." }'
jangghach Qap
HTTP 201 returns the content-report receipt and report identifier for later follow-up.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains missing report context or invalid workflow state; 401 protects personal/admin lists; 403 requires the appropriate reporter or SuperAdmin role; 404 means preserve the ID but refresh the report list.
GET /api/compliance/reports/mine
page pagh content rarbogh visibility pab media support routes je.
curl "https://Geotrackable.com/api/compliance/reports/mine" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the report or report collection visible to the signed-in reporter or authorized administrator.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains missing report context or invalid workflow state; 401 protects personal/admin lists; 403 requires the appropriate reporter or SuperAdmin role; 404 means preserve the ID but refresh the report list.
GET /api/compliance/reports/{contentReportId}
page pagh content rarbogh visibility pab media support routes je.
curl "https://Geotrackable.com/api/compliance/reports/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the report or report collection visible to the signed-in reporter or authorized administrator.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains missing report context or invalid workflow state; 401 protects personal/admin lists; 403 requires the appropriate reporter or SuperAdmin role; 404 means preserve the ID but refresh the report list.
PUT /api/compliance/reports/{contentReportId}
page pagh content rarbogh visibility pab media support routes je.
# Request-body placeholder: replace {} with the fields required by this route before sending.
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 '{}'
jangghach Qap
HTTP 200 returns the report or report collection visible to the signed-in reporter or authorized administrator.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains missing report context or invalid workflow state; 401 protects personal/admin lists; 403 requires the appropriate reporter or SuperAdmin role; 404 means preserve the ID but refresh the report list.
POST /api/external-links/verify
page pagh content rarbogh visibility pab media support routes je.
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" }'
jangghach Qap
HTTP 200 returns the normalized destination, verified page title, and safe metadata the editor can use before saving the link.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 includes detail, action, supportUrl, and upstreamStatusCode when available. Correct blocked, private-network, malformed, unreachable, or unsupported destinations before retrying verification.
GET /api/images/notes/{noteId}
page pagh content rarbogh visibility pab media support routes je.
curl "https://Geotrackable.com/api/images/notes/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
jangghach Qap
HTTP 200 returns the visible managed image metadata for that profile, note, team, trackable, or group; an empty array is valid.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 image_variant_invalid lists the supported download variants and other 400 responses explain screening constraints; 401/403 require a valid owner or team-admin context; 404 means the content is missing or not visible; 500 image_variant_unavailable means metadata exists but the stored variant could not be served. 413 requires fewer or smaller files; 415 requires multipart/form-data for uploads.
POST /api/images/notes/{noteId}
page pagh content rarbogh visibility pab media support routes je.
curl -X POST "https://Geotrackable.com/api/images/notes/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>" \
-F "files=@example.jpg"
jangghach Qap
HTTP 200 returns managed image metadata and URLs after screening and JPEG variant processing. Use the returned URLs instead of assuming the original filename survives.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 image_variant_invalid lists the supported download variants and other 400 responses explain screening constraints; 401/403 require a valid owner or team-admin context; 404 means the content is missing or not visible; 500 image_variant_unavailable means metadata exists but the stored variant could not be served. 413 requires fewer or smaller files; 415 requires multipart/form-data for uploads.
POST /api/images/profiles
page pagh content rarbogh visibility pab media support routes je.
curl -X POST "https://Geotrackable.com/api/images/profiles" \
-H "Authorization: Bearer <access token>" \
-F "files=@example.jpg"
jangghach Qap
HTTP 200 returns managed image metadata and URLs after screening and JPEG variant processing. Use the returned URLs instead of assuming the original filename survives.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 image_variant_invalid lists the supported download variants and other 400 responses explain screening constraints; 401/403 require a valid owner or team-admin context; 404 means the content is missing or not visible; 500 image_variant_unavailable means metadata exists but the stored variant could not be served. 413 requires fewer or smaller files; 415 requires multipart/form-data for uploads.
GET /api/images/profiles/{userId}
page pagh content rarbogh visibility pab media support routes je.
curl "https://Geotrackable.com/api/images/profiles/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
jangghach Qap
HTTP 200 returns the visible managed image metadata for that profile, note, team, trackable, or group; an empty array is valid.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 image_variant_invalid lists the supported download variants and other 400 responses explain screening constraints; 401/403 require a valid owner or team-admin context; 404 means the content is missing or not visible; 500 image_variant_unavailable means metadata exists but the stored variant could not be served. 413 requires fewer or smaller files; 415 requires multipart/form-data for uploads.
GET /api/images/teams/{teamId}
page pagh content rarbogh visibility pab media support routes je.
curl "https://Geotrackable.com/api/images/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
jangghach Qap
HTTP 200 returns the visible managed image metadata for that profile, note, team, trackable, or group; an empty array is valid.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 image_variant_invalid lists the supported download variants and other 400 responses explain screening constraints; 401/403 require a valid owner or team-admin context; 404 means the content is missing or not visible; 500 image_variant_unavailable means metadata exists but the stored variant could not be served. 413 requires fewer or smaller files; 415 requires multipart/form-data for uploads.
POST /api/images/teams/{teamId}
page pagh content rarbogh visibility pab media support routes je.
curl -X POST "https://Geotrackable.com/api/images/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>" \
-F "files=@example.jpg"
jangghach Qap
HTTP 200 returns managed image metadata and URLs after screening and JPEG variant processing. Use the returned URLs instead of assuming the original filename survives.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 image_variant_invalid lists the supported download variants and other 400 responses explain screening constraints; 401/403 require a valid owner or team-admin context; 404 means the content is missing or not visible; 500 image_variant_unavailable means metadata exists but the stored variant could not be served. 413 requires fewer or smaller files; 415 requires multipart/form-data for uploads.
GET /api/images/trackable-groups/{trackableGroupId}
page pagh content rarbogh visibility pab media support routes je.
curl "https://Geotrackable.com/api/images/trackable-groups/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
jangghach Qap
HTTP 200 returns the visible managed image metadata for that profile, note, team, trackable, or group; an empty array is valid.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 image_variant_invalid lists the supported download variants and other 400 responses explain screening constraints; 401/403 require a valid owner or team-admin context; 404 means the content is missing or not visible; 500 image_variant_unavailable means metadata exists but the stored variant could not be served. 413 requires fewer or smaller files; 415 requires multipart/form-data for uploads.
POST /api/images/trackable-groups/{trackableGroupId}
page pagh content rarbogh visibility pab media support routes je.
curl -X POST "https://Geotrackable.com/api/images/trackable-groups/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>" \
-F "files=@example.jpg"
jangghach Qap
HTTP 200 returns managed image metadata and URLs after screening and JPEG variant processing. Use the returned URLs instead of assuming the original filename survives.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 image_variant_invalid lists the supported download variants and other 400 responses explain screening constraints; 401/403 require a valid owner or team-admin context; 404 means the content is missing or not visible; 500 image_variant_unavailable means metadata exists but the stored variant could not be served. 413 requires fewer or smaller files; 415 requires multipart/form-data for uploads.
GET /api/images/trackables/{trackableId}
page pagh content rarbogh visibility pab media support routes je.
curl "https://Geotrackable.com/api/images/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
jangghach Qap
HTTP 200 returns the visible managed image metadata for that profile, note, team, trackable, or group; an empty array is valid.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 image_variant_invalid lists the supported download variants and other 400 responses explain screening constraints; 401/403 require a valid owner or team-admin context; 404 means the content is missing or not visible; 500 image_variant_unavailable means metadata exists but the stored variant could not be served. 413 requires fewer or smaller files; 415 requires multipart/form-data for uploads.
POST /api/images/trackables/{trackableId}
page pagh content rarbogh visibility pab media support routes je.
curl -X POST "https://Geotrackable.com/api/images/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>" \
-F "files=@example.jpg"
jangghach Qap
HTTP 200 returns managed image metadata and URLs after screening and JPEG variant processing. Use the returned URLs instead of assuming the original filename survives.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 image_variant_invalid lists the supported download variants and other 400 responses explain screening constraints; 401/403 require a valid owner or team-admin context; 404 means the content is missing or not visible; 500 image_variant_unavailable means metadata exists but the stored variant could not be served. 413 requires fewer or smaller files; 415 requires multipart/form-data for uploads.
DELETE /api/images/{contentImageId}
page pagh content rarbogh visibility pab media support routes je.
curl -X DELETE "https://Geotrackable.com/api/images/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 204 confirms the image and its managed variants were deleted; there is no response body.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 image_variant_invalid lists the supported download variants and other 400 responses explain screening constraints; 401/403 require a valid owner or team-admin context; 404 means the content is missing or not visible; 500 image_variant_unavailable means metadata exists but the stored variant could not be served. 413 requires fewer or smaller files; 415 requires multipart/form-data for uploads.
GET /api/images/{contentImageId}/{variant}
page pagh content rarbogh visibility pab media support routes je.
curl "https://Geotrackable.com/api/images/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/thumbnail"
jangghach Qap
HTTP 200 streams the requested visible JPEG variant with an image content type.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 image_variant_invalid lists the supported download variants and other 400 responses explain screening constraints; 401/403 require a valid owner or team-admin context; 404 means the content is missing or not visible; 500 image_variant_unavailable means metadata exists but the stored variant could not be served. 413 requires fewer or smaller files; 415 requires multipart/form-data for uploads.
GET /api/locations/mine/gpx
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl "https://Geotrackable.com/api/locations/mine/gpx" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 downloads GPX containing the eligible mapped waypoints in this scope.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies field, hierarchy, bounds, GPX, or move/delete rules; 401 requires a token; 403 requires ownership; 404 means refresh personal workspace state. Uploads can also return 413 or 415.
POST /api/locations/mine/gpx
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl -X POST "https://Geotrackable.com/api/locations/mine/gpx" \
-H "Authorization: Bearer <access token>" \
-F "file=@waypoints.gpx"
jangghach Qap
HTTP 200 returns import counts and item-level results after the GPX waypoint file is processed.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies field, hierarchy, bounds, GPX, or move/delete rules; 401 requires a token; 403 requires ownership; 404 means refresh personal workspace state. Uploads can also return 413 or 415.
GET /api/notes/mine
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl "https://Geotrackable.com/api/notes/mine" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the visible note, comment, attachment, or map result. Empty collections are successful; a missing single resource returns 404.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies field, hierarchy, bounds, GPX, or move/delete rules; 401 requires a token; 403 requires ownership; 404 means refresh personal workspace state. Uploads can also return 413 or 415.
POST /api/notes/mine
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl -X POST "https://Geotrackable.com/api/notes/mine" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{ "title": "Trailhead", "body": "Parking and route notes.", "contentLanguage": "en-US", "latitude": 41.8818, "longitude": -87.6231, "visibility": "Private" }'
jangghach Qap
HTTP 200 returns the saved note, comment, attachment, move result, or deletion acknowledgement for the requested scope.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies field, hierarchy, bounds, GPX, or move/delete rules; 401 requires a token; 403 requires ownership; 404 means refresh personal workspace state. Uploads can also return 413 or 415.
GET /api/notes/mine/gpx
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl "https://Geotrackable.com/api/notes/mine/gpx" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 downloads GPX containing the eligible mapped waypoints in this scope.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies field, hierarchy, bounds, GPX, or move/delete rules; 401 requires a token; 403 requires ownership; 404 means refresh personal workspace state. Uploads can also return 413 or 415.
POST /api/notes/mine/gpx
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl -X POST "https://Geotrackable.com/api/notes/mine/gpx" \
-H "Authorization: Bearer <access token>" \
-F "file=@waypoints.gpx"
jangghach Qap
HTTP 200 returns import counts and item-level results after the GPX waypoint file is processed.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies field, hierarchy, bounds, GPX, or move/delete rules; 401 requires a token; 403 requires ownership; 404 means refresh personal workspace state. Uploads can also return 413 or 415.
DELETE /api/notes/mine/{noteId}
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl -X DELETE "https://Geotrackable.com/api/notes/mine/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the saved note, comment, attachment, move result, or deletion acknowledgement for the requested scope.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies field, hierarchy, bounds, GPX, or move/delete rules; 401 requires a token; 403 requires ownership; 404 means refresh personal workspace state. Uploads can also return 413 or 415.
POST /api/notes/mine/{noteId}/move
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
# Request-body placeholder: replace {} with the fields required by this route before sending.
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 '{}'
jangghach Qap
HTTP 200 returns the saved note, comment, attachment, move result, or deletion acknowledgement for the requested scope.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies field, hierarchy, bounds, GPX, or move/delete rules; 401 requires a token; 403 requires ownership; 404 means refresh personal workspace state. Uploads can also return 413 or 415.
GET /api/notes/public/bounds
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl "https://Geotrackable.com/api/notes/public/bounds?minLatitude=41.78&minLongitude=-87.75&maxLatitude=41.96&maxLongitude=-87.54&contentLanguage=en-US"
jangghach Qap
HTTP 200 returns the visible note, comment, attachment, or map result. Empty collections are successful; a missing single resource returns 404.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies incomplete bounds, invalid coordinate ranges, or invalid comment/attachment input; 403 protects restricted writes; 404 can hide a private or missing page. Correct the query as directed by errors and action.
GET /api/notes/public/nearby
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl "https://Geotrackable.com/api/notes/public/nearby?latitude=41.8818&longitude=-87.6231&radiusKm=8&contentLanguage=en-US"
jangghach Qap
HTTP 200 returns the visible note, comment, attachment, or map result. Empty collections are successful; a missing single resource returns 404.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies incomplete bounds, invalid coordinate ranges, or invalid comment/attachment input; 403 protects restricted writes; 404 can hide a private or missing page. Correct the query as directed by errors and action.
GET /api/public/notes/{noteId}
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl "https://Geotrackable.com/api/public/notes/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
jangghach Qap
HTTP 200 returns the visible note, comment, attachment, or map result. Empty collections are successful; a missing single resource returns 404.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies incomplete bounds, invalid coordinate ranges, or invalid comment/attachment input; 403 protects restricted writes; 404 can hide a private or missing page. Correct the query as directed by errors and action.
GET /api/public/notes/{noteId}/comments
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl "https://Geotrackable.com/api/public/notes/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/comments"
jangghach Qap
HTTP 200 returns the visible comment panel, policy, and current comments. An empty comment list is a successful result.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 trackable_activation_required means an eligible owner must activate first; 403 trackable_access_code_required or trackable_access_code_invalid requires this exact item's session or credential; 404 means refresh stale IDs.
POST /api/public/notes/{noteId}/comments
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
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 '{ "body": "Found near the overlook.", "accessCode": "" }'
jangghach Qap
HTTP 200 returns the saved comment state. Anonymous writes require this client's active session or an accessCode for this exact activated trackable.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 trackable_activation_required means an eligible owner must activate first; 403 trackable_access_code_required or trackable_access_code_invalid requires this exact item's session or credential; 404 means refresh stale IDs.
GET /api/public/notes/{noteId}/trackables
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl "https://Geotrackable.com/api/public/notes/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/trackables"
jangghach Qap
HTTP 200 returns the visible note, comment, attachment, or map result. Empty collections are successful; a missing single resource returns 404.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies incomplete bounds, invalid coordinate ranges, or invalid comment/attachment input; 403 protects restricted writes; 404 can hide a private or missing page. Correct the query as directed by errors and action.
POST /api/public/notes/{noteId}/trackables
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
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 '{ "trackableSecretCodes": "TAG42", "selectedActiveTrackableIds": [] }'
jangghach Qap
HTTP 200 returns the saved note, comment, attachment, move result, or deletion acknowledgement for the requested scope.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies incomplete bounds, invalid coordinate ranges, or invalid comment/attachment input; 403 protects restricted writes; 404 can hide a private or missing page. Correct the query as directed by errors and action.
GET /api/public/profiles/{userName}/notes/nearby
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl "https://Geotrackable.com/api/public/profiles/trail-guide/notes/nearby?latitude=41.8818&longitude=-87.6231&radiusKm=8&contentLanguage=en-US"
jangghach Qap
HTTP 200 returns the visible note, comment, attachment, or map result. Empty collections are successful; a missing single resource returns 404.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies incomplete bounds, invalid coordinate ranges, or invalid comment/attachment input; 403 protects restricted writes; 404 can hide a private or missing page. Correct the query as directed by errors and action.
GET /api/public/teams/{teamName}/notes/nearby
public map laDghach anonymous; personal Daq category ghItlhghach je bearer auth poQ.
curl "https://Geotrackable.com/api/public/teams/trail-club/notes/nearby?latitude=41.8818&longitude=-87.6231&radiusKm=8&contentLanguage=en-US"
jangghach Qap
HTTP 200 returns the visible note, comment, attachment, or map result. Empty collections are successful; a missing single resource returns 404.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies incomplete bounds, invalid coordinate ranges, or invalid comment/attachment input; 403 protects restricted writes; 404 can hide a private or missing page. Correct the query as directed by errors and action.
POST /api/sync/pull
wa'DIch local choHmey yIpush, ghIq user current public area je server view yIpull.
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 } }'
jangghach Qap
HTTP 200 returns the current personal, public, and team synchronization view. Call this after push in each offline cycle.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies malformed sync envelopes or a request rejected before processing; 401 requires a new bearer token. Per-entity reconciliation problems return HTTP 200 inside conflicts with code and action. Never retry push blindly after an unknown timeout.
POST /api/sync/push
wa'DIch local choHmey yIpush, ghIq user current public area je server view yIpull.
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": [], "categories": [] }'
jangghach Qap
HTTP 200 acknowledges accepted client changes and reports synchronization results. Preserve client IDs so the following pull can reconcile the same records.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies malformed sync envelopes or a request rejected before processing; 401 requires a new bearer token. Per-entity reconciliation problems return HTTP 200 inside conflicts with code and action. Never retry push blindly after an unknown timeout.
GET /api/system/beta-android
routevam anonymous 'ej production API host SIchlaHlu' 'e' 'olmeH mIw nomqu'.
curl "https://Geotrackable.com/api/system/beta-android"
jangghach Qap
HTTP 200 returns current Android beta release metadata and download guidance when a beta package is published.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies missing or malformed query binding; 500 includes requestId for support. Optional Android beta data returns HTTP 200 with available:false. Coordinate range and location-provider failures return HTTP 200 with resolved:false plus failureMessage, action, and retryable.
GET /api/system/coordinate-locality
routevam anonymous 'ej production API host SIchlaHlu' 'e' 'olmeH mIw nomqu'.
curl "https://Geotrackable.com/api/system/coordinate-locality?latitude=41.8818&longitude=-87.6231"
jangghach Qap
HTTP 200 returns the best available locality facts. A successful response can contain partial or unavailable location fields when resolution is intentionally limited.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies missing or malformed query binding; 500 includes requestId for support. Optional Android beta data returns HTTP 200 with available:false. Coordinate range and location-provider failures return HTTP 200 with resolved:false plus failureMessage, action, and retryable.
GET /api/system/ip-location
routevam anonymous 'ej production API host SIchlaHlu' 'e' 'olmeH mIw nomqu'.
curl "https://Geotrackable.com/api/system/ip-location"
jangghach Qap
HTTP 200 returns the best available locality facts. A successful response can contain partial or unavailable location fields when resolution is intentionally limited.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 identifies missing or malformed query binding; 500 includes requestId for support. Optional Android beta data returns HTTP 200 with available:false. Coordinate range and location-provider failures return HTTP 200 with resolved:false plus failureMessage, action, and retryable.
GET /api/system/status
routevam anonymous 'ej production API host SIchlaHlu' 'e' 'olmeH mIw nomqu'.
curl "https://Geotrackable.com/api/system/status"
jangghach Qap
HTTP 200 returns the service status, server UTC time, and Android beta-page URL. This confirms reachability, not authenticated access.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
A network, DNS, TLS, or 500 failure means the host check did not complete. Preserve requestId when returned and use bounded backoff; status does not return 401.
GET /api/teams
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
curl "https://Geotrackable.com/api/teams" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the team, workspace, membership, category, note, or invite-link data visible to the signed-in member.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
POST /api/teams
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
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": "Shared field work.", "joinPolicy": "InviteOnly", "pageVisibility": "Public", "defaultNoteVisibility": "Public", "contentLanguage": "en-US" }'
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
POST /api/teams/invite-links/{teamSlug}/{inviteCode}/join
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
# Request-body placeholder: replace {} with the fields required by this route before sending.
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 '{}'
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
DELETE /api/teams/{teamId}
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
curl -X DELETE "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
GET /api/teams/{teamId}/categories
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
curl "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/categories" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the team, workspace, membership, category, note, or invite-link data visible to the signed-in member.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
POST /api/teams/{teamId}/categories
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
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 '{ "name": "Team trail research", "contentLanguage": "en-US", "parentCategoryId": null }'
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
GET /api/teams/{teamId}/categories/tree
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
curl "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/categories/tree" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the team, workspace, membership, category, note, or invite-link data visible to the signed-in member.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
GET /api/teams/{teamId}/categories/tree/children
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
curl "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/categories/tree/children" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the team, workspace, membership, category, note, or invite-link data visible to the signed-in member.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
GET /api/teams/{teamId}/categories/tree/sections
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
curl "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/categories/tree/sections" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the team, workspace, membership, category, note, or invite-link data visible to the signed-in member.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
DELETE /api/teams/{teamId}/categories/{categoryId}
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
curl -X DELETE "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/categories/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
POST /api/teams/{teamId}/categories/{categoryId}/move
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
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 '{ "parentCategoryId": null }'
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
GET /api/teams/{teamId}/invite-links
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
curl "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/invite-links" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the team, workspace, membership, category, note, or invite-link data visible to the signed-in member.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
POST /api/teams/{teamId}/invite-links
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
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 '{ "isSingleUse": true }'
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
DELETE /api/teams/{teamId}/invite-links/{inviteLinkId}
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
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>"
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
GET /api/teams/{teamId}/locations/gpx
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
curl "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/locations/gpx" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 downloads GPX for mapped team waypoints visible to the member.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
POST /api/teams/{teamId}/locations/gpx
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
curl -X POST "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/locations/gpx" \
-H "Authorization: Bearer <access token>" \
-F "file=@waypoints.gpx"
jangghach Qap
HTTP 200 returns team GPX import counts and item-level results.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
POST /api/teams/{teamId}/memberships/invite
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
# Request-body placeholder: replace {} with the fields required by this route before sending.
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 '{}'
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
POST /api/teams/{teamId}/memberships/request
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
# Request-body placeholder: replace {} with the fields required by this route before sending.
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 '{}'
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
DELETE /api/teams/{teamId}/memberships/{membershipId}
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
curl -X DELETE "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/memberships/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
POST /api/teams/{teamId}/memberships/{membershipId}/accept
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
# Request-body placeholder: replace {} with the fields required by this route before sending.
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 '{}'
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
POST /api/teams/{teamId}/memberships/{membershipId}/approve
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
# Request-body placeholder: replace {} with the fields required by this route before sending.
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 '{}'
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
POST /api/teams/{teamId}/memberships/{membershipId}/deny
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
# Request-body placeholder: replace {} with the fields required by this route before sending.
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 '{}'
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
POST /api/teams/{teamId}/memberships/{membershipId}/promote-admin
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
# Request-body placeholder: replace {} with the fields required by this route before sending.
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 '{}'
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
POST /api/teams/{teamId}/memberships/{membershipId}/refuse
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
# Request-body placeholder: replace {} with the fields required by this route before sending.
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 '{}'
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
GET /api/teams/{teamId}/notes
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
curl "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/notes" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the team, workspace, membership, category, note, or invite-link data visible to the signed-in member.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
POST /api/teams/{teamId}/notes
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
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 '{ "title": "Team trailhead", "body": "Shared route notes.", "contentLanguage": "en-US", "latitude": 41.8818, "longitude": -87.6231, "visibility": "Public" }'
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
GET /api/teams/{teamId}/notes/gpx
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
curl "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/notes/gpx" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 downloads GPX for mapped team waypoints visible to the member.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
POST /api/teams/{teamId}/notes/gpx
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
curl -X POST "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/notes/gpx" \
-H "Authorization: Bearer <access token>" \
-F "file=@waypoints.gpx"
jangghach Qap
HTTP 200 returns team GPX import counts and item-level results.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
DELETE /api/teams/{teamId}/notes/{noteId}
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
curl -X DELETE "https://Geotrackable.com/api/teams/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/notes/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
DELETE /api/teams/{teamId}/notes/{noteId}/delete
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
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>"
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
POST /api/teams/{teamId}/notes/{noteId}/move
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
# Request-body placeholder: replace {} with the fields required by this route before sending.
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 '{}'
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
PUT /api/teams/{teamId}/settings
shared Daqmey, categorymey, invite links, membership wuqghachmey, team-owned trackable scope je vu' Team APIs.
# Request-body placeholder: replace {} with the fields required by this route before sending.
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 '{}'
jangghach Qap
HTTP 200 returns the resulting team state or acknowledges the membership, workspace, invite, settings, or deletion operation.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains membership, invite, hierarchy, GPX, move, or deletion rules; 401 requires login; 403 requires the stated member/admin role; 404 means refresh team state before submitting another change.
POST /api/trackables
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
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 }'
jangghach Qap
HTTP 201 returns the one-time reveal. Omit secretCode for a generated GT code; an available allowed custom value is honored. Save secretCode and scanUrl now because read routes do not reveal them later.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 validation_failed identifies invalid fields; 400 trackable_secret_code_reserved explains GT, LN, TB, GK, or GC prefixes; 409 trackable_secret_code_taken means omit secretCode for generation or choose another value; 401 requires login.
GET /api/trackables/active
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
curl "https://Geotrackable.com/api/trackables/active"
jangghach Qap
HTTP 200 returns the active secret-backed trackables remembered by this client. An empty array is a successful result, not an authentication failure.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
404 means this client no longer has the requested active trackable session; revisit the private code or scan route. 400 covers invalid status text. This session uses cookies, so preserve the cookie jar across calls.
GET /api/trackables/active-indicator
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
curl "https://Geotrackable.com/api/trackables/active-indicator"
jangghach Qap
HTTP 200 returns the trackable data visible in the caller's public, signed-in, or active-session access context.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
404 means this client no longer has the requested active trackable session; revisit the private code or scan route. 400 covers invalid status text. This session uses cookies, so preserve the cookie jar across calls.
DELETE /api/trackables/active/{trackableId}
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
curl -X DELETE "https://Geotrackable.com/api/trackables/active/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
jangghach Qap
HTTP 200 ends this client's remembered secret-backed session for the item. It does not delete or deactivate the trackable.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
404 means this client no longer has the requested active trackable session; revisit the private code or scan route. 400 covers invalid status text. This session uses cookies, so preserve the cookie jar across calls.
GET /api/trackables/active/{trackableId}
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
curl "https://Geotrackable.com/api/trackables/active/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
jangghach Qap
HTTP 200 returns the current active landing state or updated status message for the trackable while this client still has its secret-backed session.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
404 means this client no longer has the requested active trackable session; revisit the private code or scan route. 400 covers invalid status text. This session uses cookies, so preserve the cookie jar across calls.
POST /api/trackables/active/{trackableId}/deactivate
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
# Request-body placeholder: replace {} with the fields required by this route before sending.
curl -X POST "https://Geotrackable.com/api/trackables/active/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/deactivate" \
-H "Content-Type: application/json" \
-d '{}'
jangghach Qap
HTTP 200 returns the current active landing state or updated status message for the trackable while this client still has its secret-backed session.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
404 means this client no longer has the requested active trackable session; revisit the private code or scan route. 400 covers invalid status text. This session uses cookies, so preserve the cookie jar across calls.
POST /api/trackables/active/{trackableId}/message
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
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" }'
jangghach Qap
HTTP 200 returns the current active landing state or updated status message for the trackable while this client still has its secret-backed session.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
404 means this client no longer has the requested active trackable session; revisit the private code or scan route. 400 covers invalid status text. This session uses cookies, so preserve the cookie jar across calls.
POST /api/trackables/groups
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
curl -X POST "https://Geotrackable.com/api/trackables/groups" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{ "name": "Trail event set", "description": "Event inventory", "trackableCount": 12, "visibility": "AlwaysVisibleToEveryone", "activateImmediately": false, "watchGroupActivityWhenCreated": true }'
jangghach Qap
HTTP 201 returns the new group plus the one-time public, secret, and scan credentials for every generated member. Persist the reveal before leaving the response.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 explains invalid defaults, count, visibility, category, or team rules; 401 requires login; 403 means the caller cannot create in that team. Correct the request before retrying the batch.
DELETE /api/trackables/groups/{trackableGroupId}/watch
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
curl -X DELETE "https://Geotrackable.com/api/trackables/groups/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/watch" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the resulting trackable or group state after the signed-in account's watch preference changes. Repeating the desired final state should not create duplicate watches.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 reports a trackable business rule; 401 applies to bearer-only management; 403 supplies the ownership, team-role, grouping, or access action; 404 means refresh the current trackable or group state.
POST /api/trackables/groups/{trackableGroupId}/watch
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
# Request-body placeholder: replace {} with the fields required by this route before sending.
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 '{}'
jangghach Qap
HTTP 200 returns the resulting trackable or group state after the signed-in account's watch preference changes. Repeating the desired final state should not create duplicate watches.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 reports a trackable business rule; 401 applies to bearer-only management; 403 supplies the ownership, team-role, grouping, or access action; 404 means refresh the current trackable or group state.
POST /api/trackables/legacy-lookup
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
# Request-body placeholder: replace {} with the fields required by this route before sending.
curl -X POST "https://Geotrackable.com/api/trackables/legacy-lookup" \
-H "Content-Type: application/json" \
-d '{}'
jangghach Qap
HTTP 200 returns the resulting trackable state after the requested ownership, grouping, or monitoring operation completes.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 reports a trackable business rule; 401 applies to bearer-only management; 403 supplies the ownership, team-role, grouping, or access action; 404 means refresh the current trackable or group state.
GET /api/trackables/lookup
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
curl "https://Geotrackable.com/api/trackables/lookup?code=GT-EXAMPLE"
jangghach Qap
HTTP 200 returns found, the resolved trackable ID, match type, and redirect guidance. An ordinary mistyped or unknown code is also HTTP 200 with found false so lookup UI can remain in place.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
An unknown or mistyped code is normally HTTP 200 with found false, not problem details. 400 is reserved for malformed input. Never log the submitted secret or QR value while diagnosing lookup.
POST /api/trackables/lookup
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
curl -X POST "https://Geotrackable.com/api/trackables/lookup" \
-H "Content-Type: application/json" \
-d '{ "code": "GT-EXAMPLE" }'
jangghach Qap
HTTP 200 returns found, the resolved trackable ID, match type, and redirect guidance. An ordinary mistyped or unknown code is also HTTP 200 with found false so lookup UI can remain in place.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
An unknown or mistyped code is normally HTTP 200 with found false, not problem details. 400 is reserved for malformed input. Never log the submitted secret or QR value while diagnosing lookup.
GET /api/trackables/mine
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
curl "https://Geotrackable.com/api/trackables/mine" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the trackable data visible in the caller's public, signed-in, or active-session access context.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 reports a trackable business rule; 401 applies to bearer-only management; 403 supplies the ownership, team-role, grouping, or access action; 404 means refresh the current trackable or group state.
GET /api/trackables/public
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
curl "https://Geotrackable.com/api/trackables/public?contentLanguage=en-US"
jangghach Qap
HTTP 200 returns the trackable data visible in the caller's public, signed-in, or active-session access context.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 reports a trackable business rule; 401 applies to bearer-only management; 403 supplies the ownership, team-role, grouping, or access action; 404 means refresh the current trackable or group state.
GET /api/trackables/{trackableId}
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
curl "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63"
jangghach Qap
HTTP 200 returns the trackable data visible in the caller's public, signed-in, or active-session access context.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 reports a trackable business rule; 401 applies to bearer-only management; 403 supplies the ownership, team-role, grouping, or access action; 404 means refresh the current trackable or group state.
POST /api/trackables/{trackableId}/activate
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
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 '{ "name": "Activated trail coin", "description": "Ready to travel", "teamId": null }'
jangghach Qap
HTTP 200 returns the activated trackable details after personal or team ownership and item-level metadata are established.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 reports a trackable business rule; 401 applies to bearer-only management; 403 supplies the ownership, team-role, grouping, or access action; 404 means refresh the current trackable or group state.
GET /api/trackables/{trackableId}/comments
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
curl "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/comments"
jangghach Qap
HTTP 200 returns the visible comment panel, policy, and current comments. An empty comment list is a successful result.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 trackable_activation_required means an eligible owner must activate first; 403 trackable_access_code_required or trackable_access_code_invalid requires this exact item's session or credential; 404 means refresh stale IDs.
POST /api/trackables/{trackableId}/comments
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
curl -X POST "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/comments" \
-H "Content-Type: application/json" \
-d '{ "body": "Found near the overlook.", "accessCode": "" }'
jangghach Qap
HTTP 200 returns the saved comment state. Anonymous writes require this client's active session or an accessCode for this exact activated trackable.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 trackable_activation_required means an eligible owner must activate first; 403 trackable_access_code_required or trackable_access_code_invalid requires this exact item's session or credential; 404 means refresh stale IDs.
DELETE /api/trackables/{trackableId}/comments/{commentId}
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
curl -X DELETE "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/comments/13a2c0b1-582f-4a7b-92aa-16922f7bdb63" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the saved comment state. Anonymous writes require this client's active session or an accessCode for this exact activated trackable.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 trackable_activation_required means an eligible owner must activate first; 403 trackable_access_code_required or trackable_access_code_invalid requires this exact item's session or credential; 404 means refresh stale IDs.
PUT /api/trackables/{trackableId}/comments/{commentId}
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
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 '{ "body": "Updated field note." }'
jangghach Qap
HTTP 200 returns the saved comment state. Anonymous writes require this client's active session or an accessCode for this exact activated trackable.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 trackable_activation_required means an eligible owner must activate first; 403 trackable_access_code_required or trackable_access_code_invalid requires this exact item's session or credential; 404 means refresh stale IDs.
DELETE /api/trackables/{trackableId}/group
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
curl -X DELETE "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/group" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the resulting trackable state after the requested ownership, grouping, or monitoring operation completes.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 reports a trackable business rule; 401 applies to bearer-only management; 403 supplies the ownership, team-role, grouping, or access action; 404 means refresh the current trackable or group state.
POST /api/trackables/{trackableId}/group
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
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 '{ "trackableGroupId": "13a2c0b1-582f-4a7b-92aa-16922f7bdb63" }'
jangghach Qap
HTTP 200 returns the resulting trackable state after the requested ownership, grouping, or monitoring operation completes.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 reports a trackable business rule; 401 applies to bearer-only management; 403 supplies the ownership, team-role, grouping, or access action; 404 means refresh the current trackable or group state.
GET /api/trackables/{trackableId}/journey
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
curl "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/journey"
jangghach Qap
HTTP 200 returns the visible journey points in route order. An activated trackable with no reported stops returns an empty collection.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 reports a trackable business rule; 401 applies to bearer-only management; 403 supplies the ownership, team-role, grouping, or access action; 404 means refresh the current trackable or group state.
POST /api/trackables/{trackableId}/journey-stops
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
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": "" }'
jangghach Qap
HTTP 200 returns the saved direct journey stop. The latitude and longitude become an immutable route-history point for the activated trackable.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 trackable_activation_required means an eligible owner must activate first; 403 trackable_access_code_required or trackable_access_code_invalid requires this exact item's session or credential; 404 means refresh stale IDs.
DELETE /api/trackables/{trackableId}/journey-stops/{journeyStopId}
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
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>"
jangghach Qap
HTTP 200 confirms the authorized direct journey stop was removed. Refresh the journey before offering another action on that stop.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 trackable_activation_required means an eligible owner must activate first; 403 trackable_access_code_required or trackable_access_code_invalid requires this exact item's session or credential; 404 means refresh stale IDs.
DELETE /api/trackables/{trackableId}/watch
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
curl -X DELETE "https://Geotrackable.com/api/trackables/13a2c0b1-582f-4a7b-92aa-16922f7bdb63/watch" \
-H "Authorization: Bearer <access token>"
jangghach Qap
HTTP 200 returns the resulting trackable or group state after the signed-in account's watch preference changes. Repeating the desired final state should not create duplicate watches.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 reports a trackable business rule; 401 applies to bearer-only management; 403 supplies the ownership, team-role, grouping, or access action; 404 means refresh the current trackable or group state.
POST /api/trackables/{trackableId}/watch
HochvaD leghmeH mIw, peghbogh ghajghach, qawlu'bogh pegh naw', QInmey, leng mevmeH Daqmey je ngaS trackable Hemey.
# Request-body placeholder: replace {} with the fields required by this route before sending.
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 '{}'
jangghach Qap
HTTP 200 returns the resulting trackable or group state after the signed-in account's watch preference changes. Repeating the desired final state should not create duplicate watches.
QapHa'ghachmey motlh je Qapqa'meH mIwmey
400 reports a trackable business rule; 401 applies to bearer-only management; 403 supplies the ownership, team-role, grouping, or access action; 404 means refresh the current trackable or group state.