DELETE /api/account
Portador
Eliminar cuenta de la API
Ejemplo
curl -X DELETE "https://locationnotes.com/api/account" \
-H "Authorization: Bearer <access token>"
API HTTP
Utilice esta página cuando necesite rutas HTTP reales, parámetros de consulta, reglas de autenticación y ejemplos de copiar y pegar detrás del sitio web y la aplicación de Android. El sitio público, los flujos de sitios web autenticados y el cliente de Android se comunican con esta misma superficie API en el mismo dominio.
¿Necesita el modelo de producto detrás de los puntos finales? ¿Qué es un usuario?, ¿Qué es un equipo?, Que es una nota?, y Que es un rastreable?, y ¿Qué es un enlace externo?, y ¿Qué es una imagen? y ¿Qué es una solicitud de soporte? Explique los objetos sobre los que operan estas rutas. Para secuencias rastreables paso a paso, utilice el flujo de API rastreable autenticado, flujo de API rastreable anónimo, y referencia de error rastreable páginas.
Todos los ejemplos de esta página asumen el host de producción actual:
https://locationnotes.com
Las solicitudes y respuestas utilizan JSON. Los GUID son los identificadores principales entre notas, categorías, equipos y dispositivos.
Los puntos finales privados, de sincronización y de equipo requieren una
Authorization: Bearer <access token>
encabezado a menos que la ruta esté marcada como pública a continuación.
Las lecturas públicas y de gestión pueden pasar
contentLanguage=en-US
u otro idioma de contenido admitido para filtrar el contenido de nota/categoría devuelto.
Las páginas de inicio de sesión del sitio web y la configuración del proveedor externo están documentadas en el Autenticación página. Registrese primero cuando el llamador todavía no tenga una cuenta de LocationNotes. Los clientes de API que necesiten un token de acceso de tipo bearer deben usar después la ruta de inicio de sesión de la API de identidad con las cookies desactivadas, el mismo patrón que usa la aplicacion de Android.
POST /api/auth/register
Anónimo
{
"email": "tester@example.com",
"userName": "field_tester",
"password": "StrongP@ssw0rd!"
}
Una llamada de registro correcta crea la cuenta y reserva el nombre de usuario del perfil público, pero no reemplaza el inicio de sesión. Los nombres de usuario solo pueden contener letras minúsculas, números y guiones bajos. Llame después a la ruta de inicio de sesión bearer cuando el cliente necesite un token de acceso para rutas privadas, de sincronización, de equipo o de administración.
POST /api/auth/login?useCookies=false&useSessionCookies=false
Anónimo
{
"email": "tester@example.com",
"password": "StrongP@ssw0rd!"
}
{
"tokenType": "Bearer",
"accessToken": "eyJhbGciOi..."
}
curl -X POST "https://locationnotes.com/api/auth/login?useCookies=false&useSessionCookies=false" \
-H "Content-Type: application/json" \
-d '{
"email": "tester@example.com",
"password": "StrongP@ssw0rd!"
}'
El inventario completo de rutas que aparece abajo también enumera las rutas actuales de identidad administradas por el framework bajo /api/auth. Si necesita el flujo interactivo completo del sitio web, las devoluciones del proveedor, las páginas de seguridad de la cuenta o el comportamiento de vinculación de proveedores, use la Página de autenticación.
Utilice este punto final para ventanas de mapas públicos y experiencias de navegación por área. Esta es la ruta que utiliza el mapa de la página de inicio.
GET /api/notes/public/bounds
Anónimo
minLatitude, minLongitude, maxLatitude, maxLongitudecontentLanguageEstas consultas públicas del mapa incluyen tanto las notas normales con visibilidad Public como las notas con visibilidad VisibleOnceAssociatedTrackableAccessed mientras todavía no tengan rastreables asociados. En cuanto se asocia un rastreable, la nota deja de aparecer en el descubrimiento anónimo del mapa público hasta que la persona visitante haya desbloqueado uno de los rastreables asociados desde una ruta a nivel de página.
curl "https://locationnotes.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",
"ownerUserId": "a7cfd28f-c17f-4cf7-8913-47fa10fd0d1f",
"categoryId": "4de6bb76-f25d-4c73-b8e3-81b9ca3bf08f",
"title": "Dock gate closed",
"body": "Security redirected vehicles to the south entrance.",
"contentLanguage": "en-US",
"latitude": 41.8818,
"longitude": -87.6231,
"visibility": "Public",
"isDeleted": false,
"updatedUtc": "2026-03-13T20:10:00Z",
"clientMutationId": "web-demo-public-1",
"teamId": null
}
]
Utilice este punto final cuando el cliente ya conozca un punto central y desee un conjunto de resultados con distancia limitada en lugar de una ventana de mapa rectangular.
GET /api/notes/public/nearby
Anónimo
latitude, longituderadiusKm (predeterminado 5), contentLanguageAquí se aplica la misma regla de visibilidad que en el punto final de límites: las notas públicas se incluyen normalmente, y las notas VisibleOnceAssociatedTrackableAccessed se incluyen solo hasta que obtienen su primer rastreable asociado.
curl "https://locationnotes.com/api/notes/public/nearby?latitude=41.8818&longitude=-87.6231&radiusKm=8&contentLanguage=en-US"
Estas rutas respaldan el mapa publicado y la franja de notas en las páginas públicas de perfil y de equipo. Usan las mismas reglas de acceso a notas que la propia página y aceptan un punto central cercano o limites completos del mapa.
GET /api/public/profiles/{userName}/notes/nearby
Anónimo o Portador
GET /api/public/teams/{teamName}/notes/nearby
Anónimo o Portador
Cadena de consulta requerida: latitude, longitude o limites completos del mapa con minLatitude, minLongitude, maxLatitude, maxLongitude.
Cadena de consulta opcional: radiusKm (predeterminado 5), contentLanguage, includeAllLanguages
El sitio normalmente envia el idioma actual de la ruta como contentLanguage para que las páginas públicas /en-US y /tlh no mezclen por defecto idiomas de autoría de notas en el mismo mapa o franja.
Use includeAllLanguages=true solo cuando el cliente este creando de forma intencional una superficie multilingüe de exploración en lugar de reflejar la página del sitio.
curl "https://locationnotes.com/api/public/profiles/michael-kappel/notes/nearby?minLatitude=41.87&minLongitude=-87.64&maxLatitude=41.89&maxLongitude=-87.62&contentLanguage=en-US"
Los clientes de sincronización deben enviar primero los datos locales sucios y luego extraer los cambios del servidor para el usuario, los equipos activos y las notas públicas en el área actual. Ambas rutas de sincronización requieren autenticación de portador.
POST /api/sync/push
Portador
{
"deviceId": "5dd06ca7-34a5-4f2e-812d-3f1ef3e48290",
"notes": [
{
"noteId": "ef90c4ca-88a9-4a9b-b3a8-36e2649c5dcb",
"ownerUserId": "a7cfd28f-c17f-4cf7-8913-47fa10fd0d1f",
"categoryId": "4de6bb76-f25d-4c73-b8e3-81b9ca3bf08f",
"title": "Offline inspection",
"body": "Saved while disconnected.",
"contentLanguage": "en-US",
"latitude": null,
"longitude": null,
"visibility": "Private",
"externalLinkUrl": "https://example.com/offline-inspection",
"externalLinkDescription": "",
"applyExternalLinkChanges": true,
"isDeleted": false,
"updatedUtc": "2026-03-13T20:12:00Z",
"clientMutationId": "android-offline-42",
"teamId": null
}
],
"categories": []
}
{
"appliedNoteIds": [
"ef90c4ca-88a9-4a9b-b3a8-36e2649c5dcb"
],
"appliedCategoryIds": [],
"conflicts": []
}
POST /api/sync/pull
Portador
{
"lastSyncUtc": "2026-03-13T19:45:00Z",
"publicArea": {
"minLatitude": 41.78,
"minLongitude": -87.75,
"maxLatitude": 41.96,
"maxLongitude": -87.54
}
}
{
"serverSyncUtc": "2026-03-13T20:13:02Z",
"userNotes": [],
"userCategories": [],
"teamCategories": [],
"publicNotes": [],
"teamNotes": []
}
Los puntos finales de sincronización rechazan solicitudes anónimas. Si el servidor bloquea una versión beta de Android anterior, verifique
GET /api/system/status
para conocer la versión mínima compatible y la URL de la página beta.
Estas rutas devuelven el espacio de trabajo del sitio web en el que se ha iniciado sesión y el estado de sincronización personal de Android. Todos requieren autenticación de portador.
GET /api/notes/mine
Portador
Cadena de consulta opcional: contentLanguage y límites completos del mapa con minLatitude, minLongitude, maxLatitude, maxLongitude.
Las cargas de lectura de notas ahora incluyen lastActivityUtc para que los clientes puedan mostrar la actividad más reciente por separado de las marcas de tiempo de persistencia/actualización.
POST /api/notes/mine
Portador
{
"categoryId": "4de6bb76-f25d-4c73-b8e3-81b9ca3bf08f",
"title": "Category-only feedback",
"body": "This note stays off the map on purpose.",
"contentLanguage": "en-US",
"externalLinkUrl": "https://example.com/field-guide",
"externalLinkDescription": "",
"latitude": null,
"longitude": null,
"visibility": "VisibleOnceAssociatedTrackableAccessed",
"commentPolicy": "LoggedInUsers"
}
El campo visibility admite Private, Public y VisibleOnceAssociatedTrackableAccessed. El modo asociado a rastreables se comporta como Public hasta que la nota tenga uno o más rastreables asociados. A partir de ese momento, el descubrimiento público y el acceso a la página de la nota exigen que la persona visitante ya haya desbloqueado uno de esos rastreables asociados.
GET /api/public/notes/{noteId}
Anónimo o Portador
GET /api/public/notes/{noteId}/comments
Anónimo o Portador
POST /api/public/notes/{noteId}/comments
Portador
GET /api/public/notes/{noteId}/trackables
Anónimo o Portador
POST /api/public/notes/{noteId}/trackables
Portador
{
"body": "I found it too."
}
{
"trackableSecretCodes": "LN4C8R2Z",
"selectedActiveTrackableIds": [
"f3a8f841-20db-4f1e-a3f8-9f14bc0b3c31"
],
"activeTrackableAttachMode": "Self"
}
Estas rutas de página de nota respetan las reglas de acceso de la nota, incluidas las notas privadas y las notas protegidas por acceso de rastreable asociado. Si quien llama puede abrir la página de la nota, la API puede devolver comentarios y rastreables visibles para esa nota. Adjuntar rastreables requiere al propietario de la nota o a un administrador del equipo.
GET /api/categories/mine
Portador
GET /api/categories/mine/tree
Portador
GET /api/categories/mine/tree/sections
Portador
GET /api/categories/mine/tree/children?parentCategoryId={categoryId}
Portador
Use estas rutas auxiliares más ligeras para selectores de categorías con carga diferida y arboles de barra lateral. tree/sections agrupa las categorías raíz por contentLanguage. tree/children devuelve los nodos hijos directos de un padre e incluye childCategoryCount para que el cliente pueda decidir si debe mostrar una opción de expandir antes de cargar los nietos.
[
{
"contentLanguage": "en-US",
"rootCategories": [
{
"categoryId": "68cb4c9b-d9bd-4bde-8c6a-a03a4c70b283",
"name": "Field Reports",
"contentLanguage": "en-US",
"parentCategoryId": null,
"childCategoryCount": 2
}
]
}
]
[
{
"categoryId": "c4b2e65f-5cf2-4ab6-8577-a89dfb51407f",
"name": "Dock checks",
"contentLanguage": "en-US",
"parentCategoryId": "68cb4c9b-d9bd-4bde-8c6a-a03a4c70b283",
"childCategoryCount": 0
}
]
POST /api/categories/mine
Portador
POST /api/categories/mine/{categoryId}/move
Portador
{
"name": "Field Reports",
"contentLanguage": "en-US",
"parentCategoryId": null
}
GET /api/notes/mine/gpx
Portador
GET /api/notes/mine/gpx exporta solo notas personales mapeadas con coordenadas guardadas como waypoints GPX 1.1.
POST /api/notes/mine/gpx
Portador
POST /api/notes/mine/gpx acepta envíos multipart con file, visibility y contentLanguage opcional. La importación lee solo entradas de waypoint, crea notas mapeadas normales y nunca sobrescribe una nota existente.
Las comprobaciones de duplicados se quedan dentro del ambito personal seleccionado. Los títulos y coordenadas coincidentes con el mismo texto de nota se informan como duplicados. Los títulos y coordenadas coincidentes con texto de nota diferente se omiten para evitar sobrescritura.
curl "https://locationnotes.com/api/notes/mine/gpx" \
-H "Authorization: Bearer <access token>"
curl -X POST "https://locationnotes.com/api/notes/mine/gpx" \
-H "Authorization: Bearer <access token>" \
-F "file=@waypoints.gpx;type=application/gpx+xml" \
-F "visibility=Private" \
-F "contentLanguage=en-US"
¿Qué son la importación y la exportación? explica en que se diferencia el intercambio GPX de waypoints frente a las exportaciones completas de cuenta en JSON y ZIP portable.
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
GET /api/teamsGET /api/teams/{teamId}/notesGET /api/teams/{teamId}/categoriesGET /api/teams/{teamId}/categories/treeGET /api/teams/{teamId}/invite-linksLos modelos de lectura de notas de equipo y de equipo incluyen lastActivityUtc. El recorte público prefiere primero los registros activos más recientes.
GET /api/teams/{teamId}/categories/tree/sections
Portador
GET /api/teams/{teamId}/categories/tree/children?parentCategoryId={categoryId}
Portador
Estas rutas usan las mismas formas de sección y nodos secundarios que las ayudas del arbol del espacio de trabajo personal, pero los datos permanecen dentro del ambito del equipo seleccionado y aun requieren membresia activa del equipo.
Utilice DELETE /api/teams/{teamId}/notes/{noteId} cuando la nota deba salir del espacio de trabajo del equipo pero seguir existiendo para el propietario, y use DELETE /api/teams/{teamId}/notes/{noteId}/delete cuando la propia nota del equipo deba eliminarse permanentemente.
{
"name": "Beta Testers",
"title": "Beta Testers",
"description": "Public beta release gate for Android validation.",
"externalLinkUrl": "https://example.com/beta-program",
"externalLinkDescription": "",
"joinPolicy": "RequestsAllowed",
"pageVisibility": "Public",
"defaultNoteVisibility": "Public",
"contentLanguage": "en-US"
}
POST /api/teams/{teamId}/notes
Portador
{
"categoryId": "68cb4c9b-d9bd-4bde-8c6a-a03a4c70b283",
"title": "Shared dock inspection",
"body": "Visible to the team until we publish it.",
"contentLanguage": "en-US",
"externalLinkUrl": "https://example.com/shared-briefing",
"externalLinkDescription": "",
"latitude": 41.8818,
"longitude": -87.6231,
"visibility": "Private",
"commentPolicy": "TeamMembers"
}
GET /api/teams/{teamId}/notes/gpx
Portador
POST /api/teams/{teamId}/notes/gpx
Portador
GET /api/teams/{teamId}/notes/gpx y POST /api/teams/{teamId}/notes/gpx aplican las mismas reglas GPX dentro del ambito del equipo seleccionado. Las comprobaciones de duplicado y sobrescritura solo se comparan con las notas de ese equipo.
curl "https://locationnotes.com/api/teams/{teamId}/notes/gpx" \
-H "Authorization: Bearer <access token>"
curl -X POST "https://locationnotes.com/api/teams/{teamId}/notes/gpx" \
-H "Authorization: Bearer <access token>" \
-F "file=@team-waypoints.gpx;type=application/gpx+xml" \
-F "visibility=Public" \
-F "contentLanguage=en-US"
POST /api/teams/{teamId}/memberships/requestPOST /api/teams/{teamId}/memberships/invitePOST /api/teams/{teamId}/memberships/{membershipId}/acceptPOST /api/teams/{teamId}/memberships/{membershipId}/refusePOST /api/teams/{teamId}/memberships/{membershipId}/approvePOST /api/teams/{teamId}/memberships/{membershipId}/denyPOST /api/teams/{teamId}/memberships/{membershipId}/promote-adminDELETE /api/teams/{teamId}/memberships/{membershipId}POST /api/teams/invite-links/{teamSlug}/{inviteCode}/join{
"isSingleUse": false
}
{
"inviteLinkId": "9a4726dc-4fb1-4c16-b7b3-5d48ea68fdce",
"teamId": "0f4ddf5d-f3dc-4417-b96d-8e212d24235e",
"teamName": "Invite Team",
"teamSlug": "invite-team",
"code": "8K4V9T",
"createdByDisplayName": "invite-admin",
"createdByCurrentUser": true,
"inviterIsCurrentlyAdmin": true,
"isSingleUse": false,
"createdUtc": "2026-03-18T21:15:00Z"
}
{
"teamSlug": "invite-team",
"membershipStatus": "RequestingMembership"
}
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados. Los códigos cortos secretos y las URL QR de solo escaneo solo se devuelven desde los puntos finales de creación que aparecen a continuación. Nunca más regresan de rutas de lectura, búsqueda, comentarios o detalles.
| . | Ejemplo | regla de búsqueda |
|---|---|---|
| Token de código público | LN-7K4V9T |
Token público corto y globalmente único. Seguro para búsqueda pública y enlaces públicos. |
| Ruta de entrada pública | GET /trackable/LN-7K4V9T |
URL corta pública para compartir. La misma ruta base se usa para códigos públicos, códigos secretos cortos y tokens QR largos solo de escaneo. |
| Página rastreable pública localizada | GET /en-US/trackables/LN-7K4V9T |
Página pública representada especifica del idioma a la que se llega después de que la URL compartida resuelve el código. |
| Ruta de entrada secreta | GET /trackable/LN4C8R2Z |
URL corta de entrada basada en posesión para quien sostiene el objeto. Usa la misma ruta base <code>/trackable/{code}</code> que las formas pública y de escaneo largo. |
| Código secreto corto del sistema | LN4C8R2Z |
Unico a nivel global entre todos los rastreables y también único frente a los códigos públicos. Pensado para entrada manual basada en posesión. |
| Prefijo del sistema alternativo | GT8M2Q7V |
El mismo patrón generado de secreto corto en implementaciones hermanas que usan el prefijo <code>GT</code>. |
| Trae tu propio código secreto | ITEM42X |
Identificador externo avanzado. Debe seguir siendo único entre todos los rastreables y no debe empezar con <code>LN</code> ni <code>GT</code>. |
| Ruta de escaneo privada | https://locationnotes.com/trackable/AB4D5QW2...<100 chars total>... |
Unico entre todos los rastreables y pensado para provenir del escaneo QR en lugar de la entrada manual. |
Los tokens de código público generados y los cuerpos secretos breves generados utilizan la misma familia de caracteres resistentes a las manchas. La búsqueda escrita trata a O como 0, I o L como 1, S como 5 y U como V. Para los códigos secretos cortos del sistema, esa normalización se aplica al cuerpo generado después del prefijo literal. Los códigos públicos utilizan el mismo prefijo configurado con un guión antes del cuerpo generado, por lo que son visualmente distintos de los códigos secretos cortos.
Las lecturas de la lista pública están limitadas por el límite de exposición de datos públicos del sitio, que actualmente es 500 de forma predeterminada.
Los modelos de lectura rastreables y de grupos de rastreables incluyen lastActivityUtc para que los paneles y los clientes API puedan mostrar la actividad reciente de manera explícita.
GET /api/trackables/publicGET /api/trackables/mineGET /api/trackables/{trackableId}POST /api/trackables/{trackableId}/watchDELETE /api/trackables/{trackableId}/watchGET /api/trackables/{trackableId}/journeyPOST /api/trackables/{trackableId}/journey-stopsDELETE /api/trackables/{trackableId}/journey-stops/{journeyStopId}GET /api/trackables/public y las páginas públicas de exploración de rastreables del sitio siguen siendo multilingues para que los datos públicos de recorrido y logística no queden ocultos por el idioma de la ruta.
Cambie el idioma del sitio cuando quiera la interfaz localizada alrededor de los mismos datos públicos del rastreable.
POST /api/trackables
Portador
{
"name": "Promo coin",
"description": "Launch event inventory item",
"externalLinkUrl": "https://example.com/promo-coin",
"externalLinkDescription": "",
"teamId": null,
"visibility": "AlwaysVisibleToEveryone",
"activateImmediately": false,
"secretCode": ""
}
{
"trackableId": "f3a8f841-20db-4f1e-a3f8-9f14bc0b3c31",
"heading": "Unactivated Trackable",
"description": "Please activate this trackable item",
"items": [
{
"trackableId": "f3a8f841-20db-4f1e-a3f8-9f14bc0b3c31",
"name": "Unactivated Trackable",
"publicCode": "LN-7K4V9T",
"secretCode": "LN4C8R2Z",
"scanUrl": "https://locationnotes.com/trackable/ABCD...<100 characters total>...",
"qrPayload": "ABCD...<100 characters total>..."
}
]
}
{
"name": "Marketing token",
"description": "Bring-your-own identifier",
"teamId": null,
"visibility": "VisibleOnceAccessed",
"activateImmediately": true,
"secretCode": "TAG42"
}
El servidor acepta códigos secretos proporcionados por la persona que llama que no comienzan con LN, GT ni GC y no coinciden con ningun código público o secreto existente. El código público devuelto todavía lo genera el sistema.
POST /api/trackables/groups
Portador
{
"name": "Gnomes in this hunt",
"description": "Seasonal hunt inventory",
"defaultTrackableTitle": "",
"defaultTrackableDescription": "",
"defaultExternalLinkUrl": "https://example.com/hunt-rules",
"defaultExternalLinkDescription": "",
"trackableCount": 12,
"teamId": null,
"visibility": "AlwaysVisibleToEveryone",
"activateImmediately": false,
"watchGroupActivityWhenCreated": true
}
Los grupos están limitados a 100 rastreables. Los elementos no activados vuelven a los valores predeterminados del grupo hasta su activación. Una vez activados, deberán utilizar su propio título y descripción.
La creación de grupos de rastreables también puede aceptar watchGroupActivityWhenCreated cuando un lote sin activar debe empezar en la lista de seguimiento del creador.
POST /api/trackables/lookup coincide con un token de código público o un código secreto corto después de normalizar las sustituciones comunes de caracteres borrosos enumeradas anteriormente.GET /trackable/{code} es la ruta corta de entrada al sitio web que se muestra a los usuarios y clientes API. Acepta un código público, un código secreto corto o el token QR largo y luego lo dirige al flujo correcto.GET /api/trackables/active enumera la sesión de código secreto activa actual del cliente cuando existe.GET /api/trackables/active/{trackableId} devuelve la carga útil de aterrizaje activa, incluidos los requisitos de activación y los elementos agrupados cuando estén disponibles.POST /api/trackables/active/{trackableId}/message actualiza el texto de estado recordado.DELETE /api/trackables/active/{trackableId} finaliza la sesión de código secreto recordada en ese cliente.Las búsquedas de códigos secretos y las visitas de QR de solo escaneo crean una sesión de cliente activa en lugar de devolver el valor secreto. Esa sesión activa es lo que permite que los flujos de notas posteriores adjunten el rastreable sin tener que volver a ingresar el código.
Cuando la persona que llama se autentica, la misma búsqueda Visible una vez accedida también vincula el rastreable a esa cuenta para que los dispositivos que hayan iniciado sesión posteriormente puedan reabrir el rastreable, su página de grupo y las rutas de seguimiento normales sin volver a ingresar el secreto.
El sitio web utiliza intencionalmente la misma ruta base de entrada directa para los tres formularios: /trackable/{publicCode}, /trackable/{secretCode} y /trackable/{qrToken}.
La ruta localizada /{lang}/trackable/{code} es la llegada renderizada de un solo elemento después de la selección automática de idioma, pero aun así no debería mostrarse como la URL para compartir o imprimir.
Despues de que se resuelve la búsqueda de un código público, la página pública renderizada queda en /{lang}/trackable/{publicCode}.
Esa ruta de entrada compartida sigue siendo válida incluso si las longitudes de los códigos cortos configurados cambian más adelante, porque el servidor resuelve el valor del código en lugar de depender de las variaciones de la ruta del sitio web codificadas.
Las rutas rastreables de sitios web controladas por el propietario no forman parte intencionalmente del sistema de URL público.
Esa distinción también se aplica a las páginas de notas: un código público sirve para abrir la página pública rastreable, mientras que el archivo adjunto de una nota espera un código secreto breve existente o una sesión de navegador ya activa.
GET /api/trackables/lookup?code=LN4C8R2Z
{
"found": true,
"trackableId": "f3a8f841-20db-4f1e-a3f8-9f14bc0b3c31",
"isPublicCodeMatch": false,
"usesSecretAccess": true,
"redirectUrl": "/en-US/trackables/active/f3a8f841-20db-4f1e-a3f8-9f14bc0b3c31"
}
GET /trackable/LN-7K4V9T
GET /en-US/trackables/LN-7K4V9T
GET /trackable/ABCD...<100 characters total>...
POST /api/trackables/{trackableId}/activate
Portador
{
"name": "",
"description": "",
"useGroupDefaultTitle": true,
"useGroupDefaultDescription": true,
"externalLinkUrl": "",
"externalLinkDescription": "",
"useGroupDefaultExternalLink": true,
"teamId": "optional-team-guid"
}
Si se proporciona teamId, el rastreable pasa a ser propiedad del equipo, los administradores del equipo pueden administrarlo y el miembro activador mantiene el control mientras permanece en ese equipo. Sin teamId, el rastreable pasa a ser de propiedad personal.
Cuando se activa un elemento agrupado, el propietario puede guardar un título y una descripción explícitos del elemento o copiar intencionalmente el título y la descripción predeterminados actuales del grupo en el elemento.
DELETE /api/trackables/{trackableId}/group elimina la asociación de grupo actual.POST /api/trackables/{trackableId}/group con { "trackableGroupId": "..." } asocia un rastreable separado con un nuevo grupo.POST /api/trackables/groups/{trackableGroupId}/watch empieza a seguir los miembros visibles del grupo. Los seguimientos existentes de elementos miembros de ese mismo grupo todavía pueden consolidarse en el seguimiento del grupo, y la superposicion de propietario o seguidor se deduplica por usuario.DELETE /api/trackables/groups/{trackableGroupId}/watch deja de supervisar el grupo.Un rastreable sólo puede pertenecer a un grupo a la vez. El servidor aplica la regla de desconexión primero. Solo el activador original puede volver a adjuntar un rastreable desconectado, y el grupo de destino también debe ser controlado por ese usuario o un administrador de equipo elegible.
{
"trackableGroupId": "4bdffcab-bb51-4fd8-8c15-59f7b2d72c3f"
}
GET /api/trackables/{trackableId}/commentsPOST /api/trackables/{trackableId}/commentsPUT /api/trackables/{trackableId}/comments/{commentId}DELETE /api/trackables/{trackableId}/comments/{commentId}Los rastreables no activados no pueden recibir comentarios ni paradas de viaje.
Los usuarios autenticados pueden publicar comentarios directamente. Las personas que llaman anónimamente también pueden publicar, pero cada escritura anónima debe provenir de la sesión rastreable activa de ese navegador o reenviar el código secreto corto exacto o el token QR privado para ese rastreable específico.
Solo el autor del comentario que haya iniciado sesión puede editar su propio comentario. Los propietarios rastreables y los administradores actuales del equipo pueden eliminar comentarios o paradas del viaje, pero aún no pueden reescribir las palabras de otra persona.
{
"body": "Starting the route now.",
"accessCode": "LN4C8R2Z"
}
El feed del recorrido ahora es un historial inmutable de paradas. Las paradas respaldadas por notas capturan una instantanea de la ubicación cuando se adjunta la nota, y los reportes directos en el mapa pueden guardarse sin crear primero una nota.
Si una nota vinculada luego se mueve a una coordenada diferente, el viaje rastreable aún mantiene la parada original para que el historial de logística no se reescriba silenciosamente.
Los informes directos anónimos siguen la misma regla que los comentarios anónimos: la persona que llama debe usar la sesión rastreable activa de ese navegador o reenviar el código secreto corto o el token QR privado en la solicitud de escritura.
{
"latitude": 41.8819,
"longitude": -87.6278,
"accessCode": "LN4C8R2Z"
}
GET /api/trackables/{trackableId}/journey devuelve los datos del lugar con la etiqueta como referencia principal. Cada punto incluye coordinateId, locationLabel y currentNotesAtCoordinate para que los clientes puedan mostrar las notas visibles actuales en esa coordenada sin tratar la parada como si tuviera una sola nota guardada propia.
Las respuestas del recorrido ya no dividen el contrato externo del lugar en campos city, stateOrProvince y country. Lea locationLabel junto con las coordenadas.
[
{
"journeyStopId": "8a274ad6-5dd4-45c4-969a-c13cc1b8d92c",
"coordinateId": "565c42dd-2e12-49b4-a16b-c89ff4502b8e",
"latitude": 41.8819,
"longitude": -87.6278,
"associatedUtc": "2026-04-05T18:30:00Z",
"isLocationOnly": false,
"isAnonymous": false,
"canDelete": false,
"canConvertToNote": false,
"locationLabel": "Chicago, Illinois, United States",
"creatorDisplayText": "Jordan",
"creatorProfileUserName": "jordan",
"currentNotesAtCoordinate": [
{
"noteId": "4d6c5df3-3c53-4d0e-8e72-7d98a0f8a9f3",
"title": "Lobby drop",
"contentLanguage": "en-US",
"thumbnailUrl": "/api/images/notes/4d6c5df3-3c53-4d0e-8e72-7d98a0f8a9f3/thumbnail"
}
]
}
]
Las páginas de viaje rastreables pueden mostrar ubicaciones mapeadas incluso cuando algunas notas subyacentes sean privadas. En esos casos, los espectadores no autorizados pueden recibir el punto de ubicación pero no el contenido de la nota protegida.
Los espectadores autorizados reciben el título de la nota, la descripción y el enlace de la nota directamente desde la carga útil del viaje precargada y las ventanas emergentes de pin del mapa.
Eliminar una cuenta no elimina automáticamente todos los rastreables que esa cuenta haya tocado. Los rastreables compartidos o propiedad del equipo pueden permanecer mientras solo se elimina la actividad personal extraíble del usuario eliminado.
Revise la página Eliminar datos y la sección API de eliminación de cuenta para conocer los límites de retención actuales.
La API rastreable tiene un flujo de trabajo de propiedad con inicio de sesión completo y un flujo de trabajo de informes anónimo respaldado por secretos más ligero. Utilice las páginas dedicadas a continuación cuando necesite secuencias de llamadas ordenadas, puntos de decisión y ejemplos de copiar y pegar en lugar de un catálogo de rutas.
Desde la búsqueda de elementos encontrados hasta el acceso secreto al navegador, el inicio de sesión, la activación, la vinculación de notas, el registro directo del viaje, la moderación y las consideraciones de exportación/eliminación.
Para personas que llaman que no inician sesión pero tienen el código secreto exacto o el token QR privado y necesitan publicar un informe de ubicación directo o comentar de forma segura.
Las respuestas rastreables de detalles del problema ahora incluyen un campo de código estable legible por máquina. Utilice la página de referencia de errores para asignar fallas a causas probables y soluciones.
El soporte de enlaces externos está disponible en las API de nota, equipo, rastreable, grupo de rastreables y sincronización. Los clientes pueden llamar primero al punto final de verificación, pero la creación y actualización de rutas aún revalidan el enlace del lado del servidor antes de guardar.
POST /api/external-links/verify
Portador
Llame a esto antes de mostrar el campo de descripción en un cliente personalizado. Una respuesta exitosa devuelve una URL normalizada, la descripción sugerida en el título de la página y una URL de soporte para problemas de revisión. Las respuestas fallidas devuelven HTTP 400 con un mensaje detallado, una URL de soporte y un código de estado ascendente cuando el sitio de destino devolvió un error HTTP.
{
"url": "https://example.com/hunt-rules"
}
{
"normalizedUrl": "https://example.com/hunt-rules",
"suggestedDescription": "Example Domain",
"supportUrl": "/es-US/support"
}
{
"title": "Request rejected.",
"status": 400,
"detail": "The external page returned HTTP 405 Method Not Allowed during verification.",
"supportUrl": "/es-US/support",
"upstreamStatusCode": 405
}
Cree y actualice cargas útiles de notas, equipos y sincronización utilizando externalLinkUrl más externalLinkDescription. Cuando ApplyExternalLinkChanges es verdadero en las cargas útiles de notas de sincronización, el servidor revalida el enlace antes de guardarlo.
CreateNoteRequest.ExternalLinkUrlCreateNoteRequest.ExternalLinkDescriptionCreateTeamRequest.ExternalLinkUrlCreateTeamRequest.ExternalLinkDescriptionUpdateTeamSettingsRequest.ExternalLinkUrlUpdateTeamSettingsRequest.ExternalLinkDescriptionNoteDto.ExternalLinkUrlNoteDto.ExternalLinkDescriptionNoteDto.ApplyExternalLinkChangesEn las solicitudes de creación y actualizacion de rastreables se usan externalLinkUrl, externalLinkDescription y externalLinkAppendPublicTrackableCode. Para crear y actualizar grupos de rastreables se usan defaultExternalLinkUrl, defaultExternalLinkDescription y defaultExternalLinkAppendPublicTrackableCode. La activación también admite useGroupDefaultStatusMessage junto con useGroupDefaultTitle, useGroupDefaultDescription y useGroupDefaultExternalLink cuando la persona propietaria quiere arrancar deliberadamente desde los valores predeterminados del grupo.
TrackableGroupCreateInputModel.Name acepta letras, numeros, espacios y mayusculas en las solicitudes. El servidor guarda el identificador URL de la página por separado en minusculas con guiones bajos y mantiene ese identificador URL fijo después de la creación.
Cuando un enlace guardado de rastreable o un enlace predeterminado de grupo de rastreables activa esta opción, LocationNotes agrega LN={publicCode} solo cuando el clic empieza desde una página de rastreable especifica. Las páginas de grupo siguen usando la URL guardada por si sola porque alli no hay ningun código de rastreable individual en contexto.
La activación también puede aceptar valores opcionales de initialJourneyStopLatitude e initialJourneyStopLongitude cuando la primera ubicación rastreada debe crearse en la misma solicitud.
TrackableCreateInputModel.ExternalLinkUrlTrackableCreateInputModel.ExternalLinkDescriptionTrackableCreateInputModel.ExternalLinkAppendPublicTrackableCodeTrackableActivationInputModel.StatusMessageTrackableGroupCreateInputModel.DefaultExternalLinkUrlTrackableGroupCreateInputModel.DefaultExternalLinkDescriptionTrackableGroupCreateInputModel.DefaultExternalLinkAppendPublicTrackableCodeTrackableGroupCreateInputModel.DefaultStatusMessageTrackableGroupCreateInputModel.WatchGroupActivityWhenCreatedTrackableActivationInputModel.UseGroupDefaultTitleTrackableActivationInputModel.UseGroupDefaultDescriptionTrackableActivationInputModel.UseGroupDefaultStatusMessageTrackableActivationInputModel.ExternalLinkUrlTrackableActivationInputModel.ExternalLinkDescriptionTrackableActivationInputModel.UseGroupDefaultExternalLinkTrackableActivationInputModel.InitialJourneyStopLatitudeTrackableActivationInputModel.InitialJourneyStopLongitudeLa visibilidad de la imagen siempre sigue al elemento principal. Si la persona que llama puede abrir la página de perfil, nota, equipo, rastreable o de grupo de rastreables conectado, la persona que llama también puede abrir sus imágenes. Si no se puede acceder al elemento principal, las lecturas de la lista de imágenes no devuelven elementos y las descargas directas de imágenes devuelven 404.
Los clientes también deben recordar que las cargas se examinan antes de guardarlas, los originales no se conservan y el servidor solo almacena variantes JPEG redimensionadas. Tanto el sitio web como la aplicación de Android utilizan estos mismos contratos API y rutas de archivos.
GET /api/images/profiles/{userId}
Anónimo o Portador
GET /api/images/notes/{noteId}
Anónimo o Portador
GET /api/images/teams/{teamId}
Anónimo o Portador
GET /api/images/trackables/{trackableId}
Anónimo o Portador
GET /api/images/trackable-groups/{trackableGroupId}
Anónimo o Portador
Utilice estas lecturas para poblar galerías. Cada elemento incluye el GUID de la imagen, las dimensiones originales y las URL relativas para las copias almacenadas en miniatura, pequeñas, medianas y grandes.
originalWidth y originalHeight describen la imagen fuente cargada como referencia. Los archivos descargables reales siguen siendo las variantes redimensionadas almacenadas y enlazadas por thumbnailUrl, smallUrl, mediumUrl y largeUrl.
curl "https://locationnotes.com/api/images/notes/4d6c5df3-3c53-4d0e-8e72-7d98a0f8a9f3"
[
{
"contentImageId": "f1d52aa2-4d59-49bf-8d21-7d0b4e9e57f1",
"targetType": 1,
"noteId": "4d6c5df3-3c53-4d0e-8e72-7d98a0f8a9f3",
"originalWidth": 1600,
"originalHeight": 1200,
"createdUtc": "2026-03-18T21:15:00Z",
"thumbnailUrl": "/Images/Thumbnail/f1d52aa2-4d59-49bf-8d21-7d0b4e9e57f1-64.jpg",
"smallUrl": "/Images/Small/f1d52aa2-4d59-49bf-8d21-7d0b4e9e57f1-306.jpg",
"mediumUrl": "/Images/Medium/f1d52aa2-4d59-49bf-8d21-7d0b4e9e57f1-612.jpg",
"largeUrl": "/Images/Large/f1d52aa2-4d59-49bf-8d21-7d0b4e9e57f1-1024.jpg"
}
]
GET /api/images/{contentImageId}/{variant}
Anónimo o Portador
Los valores de variante válidos son miniatura, pequeño, mediano y grande. Las respuestas devuelven imagen/jpeg.
Las URL de los archivos del sitio web en /Images/{Variant}/{guid}-{size}.jpg aplican la misma regla de visibilidad principal antes de que se entreguen los bytes de la imagen, por lo que los enlaces directos de las imágenes aún están protegidos por los permisos de perfil, nota, equipo, rastreable o grupo de rastreables conectados.
curl -L "https://locationnotes.com/api/images/f1d52aa2-4d59-49bf-8d21-7d0b4e9e57f1/large" --output note-large.jpg
POST /api/images/profiles
Portador
POST /api/images/notes/{noteId}
Portador
POST /api/images/teams/{teamId}
Portador
POST /api/images/trackables/{trackableId}
Portador
POST /api/images/trackable-groups/{trackableGroupId}
Portador
Envíe un campo de archivo de varias partes llamado archivo. La persona que llama ya debe tener permiso de administración principal para el objetivo, lo que significa acceso de administrador de equipo para las páginas del equipo y el permiso normal de edición/administración para los otros tipos de padres. Las cargas se analizan antes de guardarlas y luego se almacenan solo como copias JPEG redimensionadas.
curl -X POST "https://locationnotes.com/api/images/trackables/721f5205-ed2c-43e8-8ecd-1502d5bb7b56" \
-H "Authorization: Bearer <access token>" \
-F "file=@tracker.jpg"
{
"image": {
"contentImageId": "f1d52aa2-4d59-49bf-8d21-7d0b4e9e57f1",
"targetType": 3,
"trackableId": "721f5205-ed2c-43e8-8ecd-1502d5bb7b56",
"originalWidth": 1600,
"originalHeight": 1200,
"createdUtc": "2026-03-18T21:15:00Z",
"thumbnailUrl": "/Images/Thumbnail/f1d52aa2-4d59-49bf-8d21-7d0b4e9e57f1-64.jpg",
"smallUrl": "/Images/Small/f1d52aa2-4d59-49bf-8d21-7d0b4e9e57f1-306.jpg",
"mediumUrl": "/Images/Medium/f1d52aa2-4d59-49bf-8d21-7d0b4e9e57f1-612.jpg",
"largeUrl": "/Images/Large/f1d52aa2-4d59-49bf-8d21-7d0b4e9e57f1-1024.jpg"
}
}
DELETE /api/images/{contentImageId}
Portador
La eliminación requiere el mismo permiso de administración principal que la carga. Cuando la eliminación se realiza correctamente, la fila de imagen de contenido y todas las variantes redimensionadas almacenadas se eliminan juntas.
Los clientes de la API deben usar aquí el verbo HTTP DELETE. Si alguien abre esta URL directamente en la barra de direcciones del navegador, el navegador enviará GET y la respuesta será 405 Method Not Allowed porque esta ruta no es una página de descarga.
Los botones de eliminación del sitio web usan la ruta localizada del formulario del sitio en /{culture}/images/{contentImageId}/delete para que las eliminaciones desde la galería del navegador conserven la protección antifalsificación.
curl -X DELETE "https://locationnotes.com/api/images/f1d52aa2-4d59-49bf-8d21-7d0b4e9e57f1" \
-H "Authorization: Bearer <access token>"
¿Qué es una imagen? explica las reglas de visibilidad, moderación, informes, cambio de tamaño, exportación y eliminación detrás de estas rutas.
Use estas rutas para reportes de contenido inapropiado, errores de sistema rastreados y los mismos registros de casos de soporte que respaldan el flujo de solicitudes de soporte del sitio web. Las personas que llaman anónimamente pueden enviar informes, pero solo los informantes que hayan iniciado sesión pueden realizar un seguimiento posterior de las actualizaciones de estado y las resoluciones de los superadministradores a través de la API.
POST /api/compliance/reports
Anónimo o Portador
Si la solicitud está autenticada mediante la cookie del sitio web o un token bearer, el informe creado se vincula a esa cuenta para que aparezca en GET /api/compliance/reports/mine.
{
"pageType": 2,
"contentType": 5,
"pageTitle": "Reported note title",
"pageUrl": "/en-US/Note/2f4a9f80-b7db-4f4b-9d34-0c2cb8777d9a#note-page-title",
"pageReference": "2f4a9f80-b7db-4f4b-9d34-0c2cb8777d9a",
"contentLabel": "Note Page title and content",
"contentReference": "2f4a9f80-b7db-4f4b-9d34-0c2cb8777d9a:page-content",
"contentPreview": "Title: Reported note title\n\nContent: Reported note body",
"reportTitle": "Needs review",
"reportExplanation": "This title is not appropriate for a public note."
}
POST /api/compliance/errors
Anónimo o Portador
Si una ruta API ya falló con un 500 inesperado y devolvió un ticketNumber en el JSON de detalles del problema, publique ese caso aquí en lugar de crear una segunda fila de registro de errores. Incluya userExplanation y configure trackInSupportTickets cuando la persona que llama quiera un seguimiento del superadministrador.
{
"ticketNumber": "ERR-1M7Q4D9K2X5R8V6N",
"userExplanation": "Android app hit this right after I tapped refresh twice.",
"trackInSupportTickets": true,
"clientContext": {
"platform": "Android",
"screen": "My Journeys",
"appVersion": "1.0.0-beta.20260318.1"
}
}
Cuando la falla ocurrió solo dentro de la aplicación de Android y aún no hay ningún caso del servidor, cree un nuevo caso de error con un marcador que describa dónde estaba la aplicación.
{
"pageMarkerType": "Android screen",
"pageMarker": "My Journeys",
"requestCulture": "en-US",
"requestUrl": "https://locationnotes.com/api/trackables/active/721f5205-ed2c-43e8-8ecd-1502d5bb7b56?includeHistory=true",
"httpMethod": "GET",
"responseStatusCode": 503,
"exceptionType": "Java.Lang.IllegalStateException",
"exceptionMessage": "Journey list render failed.",
"stackTrace": "at com.locationnotes.trackables.MyJourneysFragment.render(MyJourneysFragment.kt:42)",
"userExplanation": "This happened right after scanning a QR code.",
"trackInSupportTickets": true,
"clientContext": {
"platform": "Android",
"deviceModel": "Pixel 9",
"osVersion": "Android 17",
"appVersion": "1.0.0-beta.20260318.1"
}
}
{
"ticketNumber": "ERR-1M7Q4D9K2X5R8V6N",
"usedExistingTicket": false,
"explanationSaved": true,
"trackedInSupportTickets": true,
"trackedContentReportId": "d91f6e1c-b8e2-4e38-9e96-f2de0cc4f0e2"
}
Utilice valores de pageMarkerType como URL, pantalla de Android o tarea en segundo plano de Android. Para los casos generados por el servidor, mantenga el marcador de URL original y envíe el ticketNumber devuelto aquí para que la URL de API registrada permanezca adjunta al mismo caso.
GET /api/compliance/reports/mine
Portador
GET /api/compliance/reports/{contentReportId}
Portador
Estas rutas devuelven solo los informes de la persona que llama, a menos que la persona que llama sea un superadministrador. Úselos para mostrar Reportado, Revisando o Resuelto además de cualquier nota de resolución final tanto para informes de contenido como para errores del sistema rastreados.
{
"contentReportId": "3ab419ab-4b71-4d43-b52c-303d6039f01f",
"reporterUserId": "6d650c55-b235-4370-8572-e4b772cd1aea",
"pageType": 2,
"pageTypeLabel": "Note Page",
"contentType": 5,
"contentTypeLabel": "Title and content",
"status": 2,
"statusLabel": "Resolved",
"pageTitle": "Reported note title",
"pageUrl": "/en-US/Note/2f4a9f80-b7db-4f4b-9d34-0c2cb8777d9a#note-page-title",
"pageReference": "2f4a9f80-b7db-4f4b-9d34-0c2cb8777d9a",
"contentLabel": "Note Page title and content",
"contentReference": "2f4a9f80-b7db-4f4b-9d34-0c2cb8777d9a:page-content",
"contentPreview": "Title: Reported note title\n\nContent: Reported note body",
"reportTitle": "Needs review",
"reportExplanation": "This title is not appropriate for a public note.",
"resolutionText": "Reviewed and recorded for moderation follow-up.",
"reporterDisplayName": "site-compliance-reporter",
"reviewerDisplayName": "site-compliance-admin",
"createdUtc": "2026-03-18T18:00:00Z",
"reviewedUtc": "2026-03-18T18:10:00Z"
}
GET /api/compliance/reports
Portador + SuperAdmin
PUT /api/compliance/reports/{contentReportId}
Portador + SuperAdmin
La lista de administradores incluye el enlace del informe, los metadatos de la página, los metadatos del contenido ofensivo, la identidad del denunciante cuando esté disponible y cualquier nota de revisión anterior. Las actualizaciones escriben el estado de revisión actual y el texto de resolución visible.
{
"status": 1,
"resolutionText": "Review opened and queued for follow-up."
}
Establezca el estado en 2 e incluya un texto de resolución que no esté vacío al cerrar un informe como resuelto.
pageType: 0 La página de perfil, 1 página del equipo, 2 página de notas, 3 La página rastreable, 4 página de grupo de rastreables, 5 error del sistema, 6 página de soportecontentType: 0 título, 1 descripción, 2 comentario, 3 cuerpo, 4 biografía, 5 título y contenido, 6 detalles del error, 7 imagen, 8 solicitud de soportestatus: 0 informado, 1 revisando la sección, 2 resueltoLos informes a nivel de página del sitio web ahora usan 5, por lo que un botón de informe puede cubrir tanto el título visible como la descripción/cuerpo visible juntos. Los informes a nivel de comentarios todavía utilizan los tipos de contenido específicos de comentarios.
Las solicitudes generales de soporte del sitio crean casos de Página de soporte y Solicitud de soporte en el mismo almacen COMPLIANCE.ContentReports, aunque el formulario del navegador use la página de soporte en lugar de esta ruta API directa.
Los errores de sitios web, API y aplicaciones de Android rastreados se almacenan en LOG.Errors. Cuando trackInSupportTickets está habilitado, el caso de soporte vinculado también aparece en COMPLIANCE.ContentReports, por lo que la revisión del superadministrador y el estado del reportero siguen el mismo flujo de trabajo.
GET /api/system/status
Anónimo
Use este endpoint para comprobaciones de estado, control de compatibilidad de Android, la URL actual de la página beta y el estado resuelto de mapa y privacidad para la solicitud actual.
GET /api/system/beta-android
Anónimo
Devuelve metadatos beta de Android preparados, incluida la versión para mostrar, el código de versión, la versión mínima compatible y las notas de la versión.
GET /api/system/ip-location
Anónimo
Devuelve la mejor ubicación basada en IP para la solicitud actual, útil para centrar mapas y diagnosticar problemas.
Cuando la IP del cliente es privada, local o no confiable por otro motivo, la respuesta sigue siendo HTTP 200 y explica la falla en
failureReason
en lugar de generar un error de transporte.
GET /api/system/coordinate-locality
Anónimo
Hace geocodificacion inversa de un par latitud/longitud a etiquetas de ciudad, estado/provincia y pais para los flujos del planificador de paradas y selección del mapa.
Las coordenadas no validas devuelven una carga útil sin excepción con
resolved=false
y
failureReason=invalid-coordinates.
/maps/tiles/{z}/{x}/{y}.png.Las solicitudes desde redes privadas, redes locales u otras IP que no puedan resolverse toman intencionalmente la ruta más estricta, por lo que una prueba en localhost o en una red de oficina puede mostrar legitimamente no_3rd_parties y hosted_maps incluso cuando la preferencia del usuario autenticado era distinta.
curl "https://locationnotes.com/api/system/status"
{
"status": "online",
"utcNow": "2026-03-13T21:15:00Z",
"androidMinimumCompatibleDisplayVersion": "1.0.0-beta.20260313.2",
"androidMinimumCompatibleVersionCode": "2026031302",
"androidCompatibilityMessage": "The API changed after older beta builds were published. Update to the latest beta before syncing or using live team management.",
"androidBetaPageUrl": "https://locationnotes.com/es-US/account/beta",
"requestedExperienceMode": "latest_and_greatest",
"effectiveExperienceMode": "no_3rd_parties",
"usesSavedExperienceModePreference": false,
"usesVisitorExperienceModePreferenceCookie": false,
"thirdPartyBrowserCallsAllowed": false,
"requestedMapSource": "openstreetmap",
"preferredMapSource": "hosted_maps",
"fallbackMapSource": "hosted_maps",
"usesSavedMapPreference": false,
"usesVisitorMapPreferenceCookie": false,
"googleMapsAllowed": false,
"googleMapsConfigured": false,
"openStreetMapAllowed": false,
"openStreetMapConfigured": true,
"hostedMapsConfigured": true,
"hostedMapsForcedByPrivacy": true,
"hostedMapTileUrlTemplate": "/maps/tiles/{z}/{x}/{y}.png"
}
curl "https://locationnotes.com/api/system/ip-location"
{
"resolved": true,
"clientIpAddress": "50.77.187.28",
"lookupIpAddress": "50.77.187.28",
"usedDevelopmentFallbackIp": false,
"sourceKind": "IpAddress",
"coordinateSourceProvider": "IpInfoDb",
"localitySourceProvider": "IpInfoDb",
"latitude": 41.8758,
"longitude": -87.6206,
"city": "Chicago",
"stateOrProvince": "Illinois",
"country": "United States of America",
"isApproximate": true,
"accuracyRadiusKm": null,
"failureReason": ""
}
curl "https://locationnotes.com/api/system/coordinate-locality?latitude=41.8818&longitude=-87.6231"
{
"resolved": true,
"sourceKind": "Coordinates",
"coordinateSourceProvider": "StopPlanner",
"localitySourceProvider": "HostedMapPostGIS",
"latitude": 41.8818,
"longitude": -87.6231,
"city": "Chicago",
"stateOrProvince": "Illinois",
"country": "United States",
"isApproximate": false,
"accuracyRadiusKm": null,
"failureReason": ""
}
Esta sección es la lista exhaustiva de verbos y rutas para la superficie actual de la API de LocationNotes, incluidas las rutas de identidad administradas por el marco bajo /api/auth. Las secciones detalladas anteriores explican los flujos principales; este inventario es la fuente de verdad a nivel de ruta y debe mantenerse alineado con la tabla de puntos finales en vivo.
POST /api/auth/register AnónimoPOST /api/auth/login AnónimoPOST /api/auth/refresh AnónimoGET /api/auth/confirmEmail AnónimoPOST /api/auth/resendConfirmationEmail AnónimoPOST /api/auth/forgotPassword AnónimoPOST /api/auth/resetPassword AnónimoGET /api/auth/manage/info PortadorPOST /api/auth/manage/info PortadorPOST /api/auth/manage/2fa PortadorDELETE /api/account PortadorGET /api/system/status AnónimoGET /api/system/beta-android AnónimoGET /api/system/ip-location AnónimoGET /api/system/coordinate-locality AnónimoPOST /api/sync/push PortadorPOST /api/sync/pull PortadorPOST /api/external-links/verify PortadorGET /api/notes/public/bounds AnónimoGET /api/notes/public/nearby AnónimoGET /api/notes/mine PortadorPOST /api/notes/mine PortadorGET /api/notes/mine/gpx PortadorPOST /api/notes/mine/gpx PortadorPOST /api/notes/mine/{noteId}/move PortadorDELETE /api/notes/mine/{noteId} PortadorGET /api/public/profiles/{userName}/notes/nearby Anónimo o PortadorGET /api/public/teams/{teamName}/notes/nearby Anónimo o PortadorGET /api/public/notes/{noteId} Anónimo o PortadorGET /api/public/notes/{noteId}/comments Anónimo o PortadorPOST /api/public/notes/{noteId}/comments PortadorGET /api/public/notes/{noteId}/trackables Anónimo o PortadorPOST /api/public/notes/{noteId}/trackables PortadorGET /api/categories/mine PortadorGET /api/categories/mine/tree PortadorGET /api/categories/mine/tree/sections PortadorGET /api/categories/mine/tree/children PortadorPOST /api/categories/mine PortadorPOST /api/categories/mine/{categoryId}/move PortadorDELETE /api/categories/mine/{categoryId} PortadorGET /api/teams PortadorPOST /api/teams PortadorPUT /api/teams/{teamId}/settings PortadorGET /api/teams/{teamId}/notes PortadorGET /api/teams/{teamId}/notes/gpx PortadorDELETE /api/teams/{teamId}/notes/{noteId} PortadorPOST /api/teams/{teamId}/notes PortadorPOST /api/teams/{teamId}/notes/gpx PortadorPOST /api/teams/{teamId}/notes/{noteId}/move PortadorDELETE /api/teams/{teamId}/notes/{noteId}/delete PortadorGET /api/teams/{teamId}/categories PortadorGET /api/teams/{teamId}/categories/tree PortadorGET /api/teams/{teamId}/categories/tree/sections PortadorGET /api/teams/{teamId}/categories/tree/children PortadorPOST /api/teams/{teamId}/categories PortadorPOST /api/teams/{teamId}/categories/{categoryId}/move PortadorDELETE /api/teams/{teamId}/categories/{categoryId} PortadorPOST /api/teams/{teamId}/memberships/request PortadorPOST /api/teams/{teamId}/memberships/invite PortadorPOST /api/teams/{teamId}/memberships/{membershipId}/accept PortadorPOST /api/teams/{teamId}/memberships/{membershipId}/refuse PortadorPOST /api/teams/{teamId}/memberships/{membershipId}/approve PortadorPOST /api/teams/{teamId}/memberships/{membershipId}/deny PortadorPOST /api/teams/{teamId}/memberships/{membershipId}/promote-admin PortadorDELETE /api/teams/{teamId}/memberships/{membershipId} PortadorGET /api/teams/{teamId}/invite-links PortadorPOST /api/teams/{teamId}/invite-links PortadorDELETE /api/teams/{teamId}/invite-links/{inviteLinkId} PortadorPOST /api/teams/invite-links/{teamSlug}/{inviteCode}/join PortadorDELETE /api/teams/{teamId} PortadorGET /api/trackables/public Anónimo o PortadorGET /api/trackables/mine PortadorGET /api/trackables/{trackableId} Anónimo o PortadorGET /api/trackables/{trackableId}/journey Anónimo o PortadorPOST /api/trackables PortadorPOST /api/trackables/groups PortadorPOST /api/trackables/{trackableId}/activate PortadorPOST /api/trackables/{trackableId}/watch PortadorDELETE /api/trackables/{trackableId}/watch PortadorDELETE /api/trackables/{trackableId}/group PortadorPOST /api/trackables/{trackableId}/group PortadorPOST /api/trackables/groups/{trackableGroupId}/watch PortadorDELETE /api/trackables/groups/{trackableGroupId}/watch PortadorGET /api/trackables/lookup AnónimoPOST /api/trackables/lookup AnónimoGET /api/trackables/active AnónimoGET /api/trackables/active/{trackableId} AnónimoPOST /api/trackables/active/{trackableId}/message AnónimoDELETE /api/trackables/active/{trackableId} AnónimoGET /api/trackables/{trackableId}/comments Anónimo o PortadorPOST /api/trackables/{trackableId}/comments Anónimo o PortadorPUT /api/trackables/{trackableId}/comments/{commentId} PortadorDELETE /api/trackables/{trackableId}/comments/{commentId} PortadorPOST /api/trackables/{trackableId}/journey-stops Anónimo o PortadorDELETE /api/trackables/{trackableId}/journey-stops/{journeyStopId} PortadorGET /api/images/profiles/{userId} Anónimo o PortadorGET /api/images/notes/{noteId} Anónimo o PortadorGET /api/images/teams/{teamId} Anónimo o PortadorGET /api/images/trackables/{trackableId} Anónimo o PortadorGET /api/images/trackable-groups/{trackableGroupId} Anónimo o PortadorGET /api/images/{contentImageId}/{variant} Anónimo o PortadorPOST /api/images/profiles PortadorPOST /api/images/notes/{noteId} PortadorPOST /api/images/teams/{teamId} PortadorPOST /api/images/trackables/{trackableId} PortadorPOST /api/images/trackable-groups/{trackableGroupId} PortadorDELETE /api/images/{contentImageId} PortadorPOST /api/compliance/reports Anónimo o PortadorPOST /api/compliance/errors Anónimo o PortadorGET /api/compliance/reports/mine PortadorGET /api/compliance/reports/{contentReportId} PortadorGET /api/compliance/reports Portador + SuperAdminPUT /api/compliance/reports/{contentReportId} Portador + SuperAdminEsta sección es la lista exhaustiva de verbos y rutas para la superficie actual de la API de LocationNotes, incluidas las rutas de identidad administradas por el marco bajo /api/auth. Las secciones detalladas anteriores explican los flujos principales; este inventario es la fuente de verdad a nivel de ruta y debe mantenerse alineado con la tabla de puntos finales en vivo.
DELETE /api/account
Portador
Eliminar cuenta de la API
curl -X DELETE "https://locationnotes.com/api/account" \
-H "Authorization: Bearer <access token>"
GET /api/auth/confirmEmail
Anónimo
Autenticacion de identidad y seguridad de la cuenta
curl "https://locationnotes.com/api/auth/confirmEmail?userId=3a856446-bd89-4b42-b44d-279d237fb5b7&code=CONFIRMATION-CODE"
POST /api/auth/forgotPassword
Anónimo
Autenticacion de identidad y seguridad de la cuenta
curl -X POST "https://locationnotes.com/api/auth/forgotPassword" \
-H "Content-Type: application/json" \
-d '{ "email": "api-user@example.com" }'
POST /api/auth/login
Anónimo
Autenticacion de identidad y seguridad de la cuenta
curl -X POST "https://locationnotes.com/api/auth/login?useCookies=false&useSessionCookies=false" \
-H "Content-Type: application/json" \
-d '{ "email": "api-user@example.com", "password": "Use-a-strong-password-123!" }'
POST /api/auth/manage/2fa
Portador
Autenticacion de identidad y seguridad de la cuenta
curl -X POST "https://locationnotes.com/api/auth/manage/2fa" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/auth/manage/info
Portador
Autenticacion de identidad y seguridad de la cuenta
curl "https://locationnotes.com/api/auth/manage/info" \
-H "Authorization: Bearer <access token>"
POST /api/auth/manage/info
Portador
Autenticacion de identidad y seguridad de la cuenta
curl -X POST "https://locationnotes.com/api/auth/manage/info" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/auth/refresh
Anónimo
Autenticacion de identidad y seguridad de la cuenta
curl -X POST "https://locationnotes.com/api/auth/refresh" \
-H "Content-Type: application/json" \
-d '{ "refreshToken": "<refresh token>" }'
POST /api/auth/register
Anónimo
Autenticacion de identidad y seguridad de la cuenta
curl -X POST "https://locationnotes.com/api/auth/register" \
-H "Content-Type: application/json" \
-d '{ "email": "api-user@example.com", "password": "Use-a-strong-password-123!" }'
POST /api/auth/resendConfirmationEmail
Anónimo
Autenticacion de identidad y seguridad de la cuenta
curl -X POST "https://locationnotes.com/api/auth/resendConfirmationEmail" \
-H "Content-Type: application/json" \
-d '{ "email": "api-user@example.com" }'
POST /api/auth/resetPassword
Anónimo
Autenticacion de identidad y seguridad de la cuenta
curl -X POST "https://locationnotes.com/api/auth/resetPassword" \
-H "Content-Type: application/json" \
-d '{ "email": "api-user@example.com", "resetCode": "RESET-CODE", "newPassword": "Use-a-strong-password-123!" }'
GET /api/categories/mine
Portador
Estas rutas devuelven el espacio de trabajo del sitio web en el que se ha iniciado sesión y el estado de sincronización personal de Android. Todos requieren autenticación de portador.
curl "https://locationnotes.com/api/categories/mine" \
-H "Authorization: Bearer <access token>"
POST /api/categories/mine
Portador
Estas rutas devuelven el espacio de trabajo del sitio web en el que se ha iniciado sesión y el estado de sincronización personal de Android. Todos requieren autenticación de portador.
curl -X POST "https://locationnotes.com/api/categories/mine" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/categories/mine/tree
Portador
Estas rutas devuelven el espacio de trabajo del sitio web en el que se ha iniciado sesión y el estado de sincronización personal de Android. Todos requieren autenticación de portador.
curl "https://locationnotes.com/api/categories/mine/tree" \
-H "Authorization: Bearer <access token>"
GET /api/categories/mine/tree/children
Portador
Estas rutas devuelven el espacio de trabajo del sitio web en el que se ha iniciado sesión y el estado de sincronización personal de Android. Todos requieren autenticación de portador.
curl "https://locationnotes.com/api/categories/mine/tree/children" \
-H "Authorization: Bearer <access token>"
GET /api/categories/mine/tree/sections
Portador
Estas rutas devuelven el espacio de trabajo del sitio web en el que se ha iniciado sesión y el estado de sincronización personal de Android. Todos requieren autenticación de portador.
curl "https://locationnotes.com/api/categories/mine/tree/sections" \
-H "Authorization: Bearer <access token>"
DELETE /api/categories/mine/{categoryId}
Portador
Estas rutas devuelven el espacio de trabajo del sitio web en el que se ha iniciado sesión y el estado de sincronización personal de Android. Todos requieren autenticación de portador.
curl -X DELETE "https://locationnotes.com/api/categories/mine/3a856446-bd89-4b42-b44d-279d237fb5b7" \
-H "Authorization: Bearer <access token>"
POST /api/categories/mine/{categoryId}/move
Portador
Estas rutas devuelven el espacio de trabajo del sitio web en el que se ha iniciado sesión y el estado de sincronización personal de Android. Todos requieren autenticación de portador.
curl -X POST "https://locationnotes.com/api/categories/mine/3a856446-bd89-4b42-b44d-279d237fb5b7/move" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/compliance/errors
Anónimo
Informes de cumplimiento
curl -X POST "https://locationnotes.com/api/compliance/errors" \
-H "Content-Type: application/json" \
-d '{ "message": "Client error detail", "url": "/api/example" }'
GET /api/compliance/reports
Portador
Informes de cumplimiento
curl "https://locationnotes.com/api/compliance/reports" \
-H "Authorization: Bearer <access token>"
POST /api/compliance/reports
Anónimo
Informes de cumplimiento
curl -X POST "https://locationnotes.com/api/compliance/reports" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/compliance/reports/mine
Portador
Informes de cumplimiento
curl "https://locationnotes.com/api/compliance/reports/mine" \
-H "Authorization: Bearer <access token>"
GET /api/compliance/reports/{contentReportId}
Portador
Informes de cumplimiento
curl "https://locationnotes.com/api/compliance/reports/3a856446-bd89-4b42-b44d-279d237fb5b7" \
-H "Authorization: Bearer <access token>"
PUT /api/compliance/reports/{contentReportId}
Portador
Informes de cumplimiento
curl -X PUT "https://locationnotes.com/api/compliance/reports/3a856446-bd89-4b42-b44d-279d237fb5b7" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/external-links/verify
Portador
El soporte de enlaces externos está disponible en las API de nota, equipo, rastreable, grupo de rastreables y sincronización. Los clientes pueden llamar primero al punto final de verificación, pero la creación y actualización de rutas aún revalidan el enlace del lado del servidor antes de guardar.
curl -X POST "https://locationnotes.com/api/external-links/verify" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{ "url": "https://example.com/resource" }'
GET /api/images/notes/{noteId}
Anónimo
La visibilidad de la imagen siempre sigue al elemento principal. Si la persona que llama puede abrir la página de perfil, nota, equipo, rastreable o de grupo de rastreables conectado, la persona que llama también puede abrir sus imágenes. Si no se puede acceder al elemento principal, las lecturas de la lista de imágenes no devuelven elementos y las descargas directas de imágenes devuelven 404.
curl "https://locationnotes.com/api/images/notes/3a856446-bd89-4b42-b44d-279d237fb5b7"
POST /api/images/notes/{noteId}
Portador
La visibilidad de la imagen siempre sigue al elemento principal. Si la persona que llama puede abrir la página de perfil, nota, equipo, rastreable o de grupo de rastreables conectado, la persona que llama también puede abrir sus imágenes. Si no se puede acceder al elemento principal, las lecturas de la lista de imágenes no devuelven elementos y las descargas directas de imágenes devuelven 404.
curl -X POST "https://locationnotes.com/api/images/notes/3a856446-bd89-4b42-b44d-279d237fb5b7" \
-H "Authorization: Bearer <access token>" \
-F "files=@example.jpg"
POST /api/images/profiles
Portador
La visibilidad de la imagen siempre sigue al elemento principal. Si la persona que llama puede abrir la página de perfil, nota, equipo, rastreable o de grupo de rastreables conectado, la persona que llama también puede abrir sus imágenes. Si no se puede acceder al elemento principal, las lecturas de la lista de imágenes no devuelven elementos y las descargas directas de imágenes devuelven 404.
curl -X POST "https://locationnotes.com/api/images/profiles" \
-H "Authorization: Bearer <access token>" \
-F "files=@example.jpg"
GET /api/images/profiles/{userId}
Anónimo
La visibilidad de la imagen siempre sigue al elemento principal. Si la persona que llama puede abrir la página de perfil, nota, equipo, rastreable o de grupo de rastreables conectado, la persona que llama también puede abrir sus imágenes. Si no se puede acceder al elemento principal, las lecturas de la lista de imágenes no devuelven elementos y las descargas directas de imágenes devuelven 404.
curl "https://locationnotes.com/api/images/profiles/3a856446-bd89-4b42-b44d-279d237fb5b7"
GET /api/images/teams/{teamId}
Anónimo
La visibilidad de la imagen siempre sigue al elemento principal. Si la persona que llama puede abrir la página de perfil, nota, equipo, rastreable o de grupo de rastreables conectado, la persona que llama también puede abrir sus imágenes. Si no se puede acceder al elemento principal, las lecturas de la lista de imágenes no devuelven elementos y las descargas directas de imágenes devuelven 404.
curl "https://locationnotes.com/api/images/teams/3a856446-bd89-4b42-b44d-279d237fb5b7"
POST /api/images/teams/{teamId}
Portador
La visibilidad de la imagen siempre sigue al elemento principal. Si la persona que llama puede abrir la página de perfil, nota, equipo, rastreable o de grupo de rastreables conectado, la persona que llama también puede abrir sus imágenes. Si no se puede acceder al elemento principal, las lecturas de la lista de imágenes no devuelven elementos y las descargas directas de imágenes devuelven 404.
curl -X POST "https://locationnotes.com/api/images/teams/3a856446-bd89-4b42-b44d-279d237fb5b7" \
-H "Authorization: Bearer <access token>" \
-F "files=@example.jpg"
GET /api/images/trackable-groups/{trackableGroupId}
Anónimo
La visibilidad de la imagen siempre sigue al elemento principal. Si la persona que llama puede abrir la página de perfil, nota, equipo, rastreable o de grupo de rastreables conectado, la persona que llama también puede abrir sus imágenes. Si no se puede acceder al elemento principal, las lecturas de la lista de imágenes no devuelven elementos y las descargas directas de imágenes devuelven 404.
curl "https://locationnotes.com/api/images/trackable-groups/3a856446-bd89-4b42-b44d-279d237fb5b7"
POST /api/images/trackable-groups/{trackableGroupId}
Portador
La visibilidad de la imagen siempre sigue al elemento principal. Si la persona que llama puede abrir la página de perfil, nota, equipo, rastreable o de grupo de rastreables conectado, la persona que llama también puede abrir sus imágenes. Si no se puede acceder al elemento principal, las lecturas de la lista de imágenes no devuelven elementos y las descargas directas de imágenes devuelven 404.
curl -X POST "https://locationnotes.com/api/images/trackable-groups/3a856446-bd89-4b42-b44d-279d237fb5b7" \
-H "Authorization: Bearer <access token>" \
-F "files=@example.jpg"
GET /api/images/trackables/{trackableId}
Anónimo
La visibilidad de la imagen siempre sigue al elemento principal. Si la persona que llama puede abrir la página de perfil, nota, equipo, rastreable o de grupo de rastreables conectado, la persona que llama también puede abrir sus imágenes. Si no se puede acceder al elemento principal, las lecturas de la lista de imágenes no devuelven elementos y las descargas directas de imágenes devuelven 404.
curl "https://locationnotes.com/api/images/trackables/3a856446-bd89-4b42-b44d-279d237fb5b7"
POST /api/images/trackables/{trackableId}
Portador
La visibilidad de la imagen siempre sigue al elemento principal. Si la persona que llama puede abrir la página de perfil, nota, equipo, rastreable o de grupo de rastreables conectado, la persona que llama también puede abrir sus imágenes. Si no se puede acceder al elemento principal, las lecturas de la lista de imágenes no devuelven elementos y las descargas directas de imágenes devuelven 404.
curl -X POST "https://locationnotes.com/api/images/trackables/3a856446-bd89-4b42-b44d-279d237fb5b7" \
-H "Authorization: Bearer <access token>" \
-F "files=@example.jpg"
DELETE /api/images/{contentImageId}
Portador
La visibilidad de la imagen siempre sigue al elemento principal. Si la persona que llama puede abrir la página de perfil, nota, equipo, rastreable o de grupo de rastreables conectado, la persona que llama también puede abrir sus imágenes. Si no se puede acceder al elemento principal, las lecturas de la lista de imágenes no devuelven elementos y las descargas directas de imágenes devuelven 404.
curl -X DELETE "https://locationnotes.com/api/images/3a856446-bd89-4b42-b44d-279d237fb5b7" \
-H "Authorization: Bearer <access token>"
GET /api/images/{contentImageId}/{variant}
Anónimo
La visibilidad de la imagen siempre sigue al elemento principal. Si la persona que llama puede abrir la página de perfil, nota, equipo, rastreable o de grupo de rastreables conectado, la persona que llama también puede abrir sus imágenes. Si no se puede acceder al elemento principal, las lecturas de la lista de imágenes no devuelven elementos y las descargas directas de imágenes devuelven 404.
curl "https://locationnotes.com/api/images/3a856446-bd89-4b42-b44d-279d237fb5b7/thumbnail"
GET /api/notes/mine
Portador
Estas rutas devuelven el espacio de trabajo del sitio web en el que se ha iniciado sesión y el estado de sincronización personal de Android. Todos requieren autenticación de portador.
curl "https://locationnotes.com/api/notes/mine" \
-H "Authorization: Bearer <access token>"
POST /api/notes/mine
Portador
Estas rutas devuelven el espacio de trabajo del sitio web en el que se ha iniciado sesión y el estado de sincronización personal de Android. Todos requieren autenticación de portador.
curl -X POST "https://locationnotes.com/api/notes/mine" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/notes/mine/gpx
Portador
Estas rutas devuelven el espacio de trabajo del sitio web en el que se ha iniciado sesión y el estado de sincronización personal de Android. Todos requieren autenticación de portador.
curl "https://locationnotes.com/api/notes/mine/gpx" \
-H "Authorization: Bearer <access token>"
POST /api/notes/mine/gpx
Portador
Estas rutas devuelven el espacio de trabajo del sitio web en el que se ha iniciado sesión y el estado de sincronización personal de Android. Todos requieren autenticación de portador.
curl -X POST "https://locationnotes.com/api/notes/mine/gpx" \
-H "Authorization: Bearer <access token>" \
-F "file=@waypoints.gpx"
DELETE /api/notes/mine/{noteId}
Portador
Estas rutas devuelven el espacio de trabajo del sitio web en el que se ha iniciado sesión y el estado de sincronización personal de Android. Todos requieren autenticación de portador.
curl -X DELETE "https://locationnotes.com/api/notes/mine/3a856446-bd89-4b42-b44d-279d237fb5b7" \
-H "Authorization: Bearer <access token>"
POST /api/notes/mine/{noteId}/move
Portador
Estas rutas devuelven el espacio de trabajo del sitio web en el que se ha iniciado sesión y el estado de sincronización personal de Android. Todos requieren autenticación de portador.
curl -X POST "https://locationnotes.com/api/notes/mine/3a856446-bd89-4b42-b44d-279d237fb5b7/move" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/notes/public/bounds
Anónimo
Utilice este punto final para ventanas de mapas públicos y experiencias de navegación por área. Esta es la ruta que utiliza el mapa de la página de inicio.
curl "https://locationnotes.com/api/notes/public/bounds?minLatitude=41.78&minLongitude=-87.75&maxLatitude=41.96&maxLongitude=-87.54&contentLanguage=en-US"
GET /api/notes/public/nearby
Anónimo
Utilice este punto final cuando el cliente ya conozca un punto central y desee un conjunto de resultados con distancia limitada en lugar de una ventana de mapa rectangular.
curl "https://locationnotes.com/api/notes/public/nearby?latitude=41.8818&longitude=-87.6231&radiusKm=8&contentLanguage=en-US"
GET /api/public/notes/{noteId}
Anónimo
Estas rutas respaldan el mapa publicado y la franja de notas en las páginas públicas de perfil y de equipo. Usan las mismas reglas de acceso a notas que la propia página y aceptan un punto central cercano o limites completos del mapa.
curl "https://locationnotes.com/api/public/notes/3a856446-bd89-4b42-b44d-279d237fb5b7"
GET /api/public/notes/{noteId}/comments
Anónimo
Estas rutas respaldan el mapa publicado y la franja de notas en las páginas públicas de perfil y de equipo. Usan las mismas reglas de acceso a notas que la propia página y aceptan un punto central cercano o limites completos del mapa.
curl "https://locationnotes.com/api/public/notes/3a856446-bd89-4b42-b44d-279d237fb5b7/comments"
POST /api/public/notes/{noteId}/comments
Portador
Estas rutas respaldan el mapa publicado y la franja de notas en las páginas públicas de perfil y de equipo. Usan las mismas reglas de acceso a notas que la propia página y aceptan un punto central cercano o limites completos del mapa.
curl -X POST "https://locationnotes.com/api/public/notes/3a856446-bd89-4b42-b44d-279d237fb5b7/comments" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/public/notes/{noteId}/trackables
Anónimo
Estas rutas respaldan el mapa publicado y la franja de notas en las páginas públicas de perfil y de equipo. Usan las mismas reglas de acceso a notas que la propia página y aceptan un punto central cercano o limites completos del mapa.
curl "https://locationnotes.com/api/public/notes/3a856446-bd89-4b42-b44d-279d237fb5b7/trackables"
POST /api/public/notes/{noteId}/trackables
Portador
Estas rutas respaldan el mapa publicado y la franja de notas en las páginas públicas de perfil y de equipo. Usan las mismas reglas de acceso a notas que la propia página y aceptan un punto central cercano o limites completos del mapa.
curl -X POST "https://locationnotes.com/api/public/notes/3a856446-bd89-4b42-b44d-279d237fb5b7/trackables" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/public/profiles/{userName}/notes/nearby
Anónimo
Estas rutas respaldan el mapa publicado y la franja de notas en las páginas públicas de perfil y de equipo. Usan las mismas reglas de acceso a notas que la propia página y aceptan un punto central cercano o limites completos del mapa.
curl "https://locationnotes.com/api/public/profiles/field-user/notes/nearby?latitude=41.8818&longitude=-87.6231&radiusKm=8&contentLanguage=en-US"
GET /api/public/teams/{teamName}/notes/nearby
Anónimo
Estas rutas respaldan el mapa publicado y la franja de notas en las páginas públicas de perfil y de equipo. Usan las mismas reglas de acceso a notas que la propia página y aceptan un punto central cercano o limites completos del mapa.
curl "https://locationnotes.com/api/public/teams/field-team/notes/nearby?latitude=41.8818&longitude=-87.6231&radiusKm=8&contentLanguage=en-US"
POST /api/sync/pull
Portador
Los clientes de sincronización deben enviar primero los datos locales sucios y luego extraer los cambios del servidor para el usuario, los equipos activos y las notas públicas en el área actual.
curl -X POST "https://locationnotes.com/api/sync/pull" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/sync/push
Portador
Los clientes de sincronización deben enviar primero los datos locales sucios y luego extraer los cambios del servidor para el usuario, los equipos activos y las notas públicas en el área actual.
curl -X POST "https://locationnotes.com/api/sync/push" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/system/beta-android
Anónimo
Metadatos del sistema y beta
curl "https://locationnotes.com/api/system/beta-android"
GET /api/system/coordinate-locality
Anónimo
Metadatos del sistema y beta
curl "https://locationnotes.com/api/system/coordinate-locality?latitude=41.8818&longitude=-87.6231"
GET /api/system/ip-location
Anónimo
Metadatos del sistema y beta
curl "https://locationnotes.com/api/system/ip-location"
GET /api/system/status
Anónimo
Metadatos del sistema y beta
curl "https://locationnotes.com/api/system/status"
GET /api/teams
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl "https://locationnotes.com/api/teams" \
-H "Authorization: Bearer <access token>"
POST /api/teams
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X POST "https://locationnotes.com/api/teams" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/teams/invite-links/{teamSlug}/{inviteCode}/join
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X POST "https://locationnotes.com/api/teams/invite-links/field-team/INVITE-CODE/join" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/teams/{teamId}
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X DELETE "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7" \
-H "Authorization: Bearer <access token>"
GET /api/teams/{teamId}/categories
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/categories" \
-H "Authorization: Bearer <access token>"
POST /api/teams/{teamId}/categories
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X POST "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/categories" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/teams/{teamId}/categories/tree
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/categories/tree" \
-H "Authorization: Bearer <access token>"
GET /api/teams/{teamId}/categories/tree/children
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/categories/tree/children" \
-H "Authorization: Bearer <access token>"
GET /api/teams/{teamId}/categories/tree/sections
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/categories/tree/sections" \
-H "Authorization: Bearer <access token>"
DELETE /api/teams/{teamId}/categories/{categoryId}
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X DELETE "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/categories/3a856446-bd89-4b42-b44d-279d237fb5b7" \
-H "Authorization: Bearer <access token>"
POST /api/teams/{teamId}/categories/{categoryId}/move
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X POST "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/categories/3a856446-bd89-4b42-b44d-279d237fb5b7/move" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/teams/{teamId}/invite-links
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/invite-links" \
-H "Authorization: Bearer <access token>"
POST /api/teams/{teamId}/invite-links
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X POST "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/invite-links" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/teams/{teamId}/invite-links/{inviteLinkId}
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X DELETE "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/invite-links/3a856446-bd89-4b42-b44d-279d237fb5b7" \
-H "Authorization: Bearer <access token>"
POST /api/teams/{teamId}/memberships/invite
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X POST "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/memberships/invite" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/teams/{teamId}/memberships/request
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X POST "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/memberships/request" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/teams/{teamId}/memberships/{membershipId}
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X DELETE "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/memberships/3a856446-bd89-4b42-b44d-279d237fb5b7" \
-H "Authorization: Bearer <access token>"
POST /api/teams/{teamId}/memberships/{membershipId}/accept
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X POST "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/memberships/3a856446-bd89-4b42-b44d-279d237fb5b7/accept" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/teams/{teamId}/memberships/{membershipId}/approve
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X POST "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/memberships/3a856446-bd89-4b42-b44d-279d237fb5b7/approve" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/teams/{teamId}/memberships/{membershipId}/deny
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X POST "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/memberships/3a856446-bd89-4b42-b44d-279d237fb5b7/deny" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/teams/{teamId}/memberships/{membershipId}/promote-admin
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X POST "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/memberships/3a856446-bd89-4b42-b44d-279d237fb5b7/promote-admin" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/teams/{teamId}/memberships/{membershipId}/refuse
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X POST "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/memberships/3a856446-bd89-4b42-b44d-279d237fb5b7/refuse" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/teams/{teamId}/notes
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/notes" \
-H "Authorization: Bearer <access token>"
POST /api/teams/{teamId}/notes
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X POST "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/notes" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/teams/{teamId}/notes/gpx
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/notes/gpx" \
-H "Authorization: Bearer <access token>"
POST /api/teams/{teamId}/notes/gpx
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X POST "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/notes/gpx" \
-H "Authorization: Bearer <access token>" \
-F "file=@waypoints.gpx"
DELETE /api/teams/{teamId}/notes/{noteId}
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X DELETE "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/notes/3a856446-bd89-4b42-b44d-279d237fb5b7" \
-H "Authorization: Bearer <access token>"
DELETE /api/teams/{teamId}/notes/{noteId}/delete
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X DELETE "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/notes/3a856446-bd89-4b42-b44d-279d237fb5b7/delete" \
-H "Authorization: Bearer <access token>"
POST /api/teams/{teamId}/notes/{noteId}/move
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X POST "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/notes/3a856446-bd89-4b42-b44d-279d237fb5b7/move" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
PUT /api/teams/{teamId}/settings
Portador
Las rutas de equipo cubren membresía, invitaciones, configuraciones, notas de equipo y categorías de equipo. Todos requieren autenticación de portador y el servidor aplica permisos de administrador/miembro por ruta.
curl -X PUT "https://locationnotes.com/api/teams/3a856446-bd89-4b42-b44d-279d237fb5b7/settings" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/trackables
Portador
URL base y convenciones
curl -X POST "https://locationnotes.com/api/trackables" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/trackables/active
Anónimo
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl "https://locationnotes.com/api/trackables/active"
DELETE /api/trackables/active/{trackableId}
Anónimo
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl -X DELETE "https://locationnotes.com/api/trackables/active/3a856446-bd89-4b42-b44d-279d237fb5b7"
GET /api/trackables/active/{trackableId}
Anónimo
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl "https://locationnotes.com/api/trackables/active/3a856446-bd89-4b42-b44d-279d237fb5b7"
POST /api/trackables/active/{trackableId}/message
Anónimo
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl -X POST "https://locationnotes.com/api/trackables/active/3a856446-bd89-4b42-b44d-279d237fb5b7/message" \
-H "Content-Type: application/json" \
-d '{}'
POST /api/trackables/groups
Portador
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl -X POST "https://locationnotes.com/api/trackables/groups" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/trackables/groups/{trackableGroupId}/watch
Portador
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl -X DELETE "https://locationnotes.com/api/trackables/groups/3a856446-bd89-4b42-b44d-279d237fb5b7/watch" \
-H "Authorization: Bearer <access token>"
POST /api/trackables/groups/{trackableGroupId}/watch
Portador
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl -X POST "https://locationnotes.com/api/trackables/groups/3a856446-bd89-4b42-b44d-279d237fb5b7/watch" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/trackables/lookup
Anónimo
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl "https://locationnotes.com/api/trackables/lookup?code=GT-EXAMPLE"
POST /api/trackables/lookup
Anónimo
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl -X POST "https://locationnotes.com/api/trackables/lookup" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/trackables/mine
Portador
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl "https://locationnotes.com/api/trackables/mine" \
-H "Authorization: Bearer <access token>"
GET /api/trackables/public
Anónimo
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl "https://locationnotes.com/api/trackables/public?contentLanguage=en-US"
GET /api/trackables/{trackableId}
Anónimo
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl "https://locationnotes.com/api/trackables/3a856446-bd89-4b42-b44d-279d237fb5b7"
POST /api/trackables/{trackableId}/activate
Portador
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl -X POST "https://locationnotes.com/api/trackables/3a856446-bd89-4b42-b44d-279d237fb5b7/activate" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/trackables/{trackableId}/comments
Anónimo
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl "https://locationnotes.com/api/trackables/3a856446-bd89-4b42-b44d-279d237fb5b7/comments"
POST /api/trackables/{trackableId}/comments
Anónimo
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl -X POST "https://locationnotes.com/api/trackables/3a856446-bd89-4b42-b44d-279d237fb5b7/comments" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/trackables/{trackableId}/comments/{commentId}
Portador
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl -X DELETE "https://locationnotes.com/api/trackables/3a856446-bd89-4b42-b44d-279d237fb5b7/comments/3a856446-bd89-4b42-b44d-279d237fb5b7" \
-H "Authorization: Bearer <access token>"
PUT /api/trackables/{trackableId}/comments/{commentId}
Portador
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl -X PUT "https://locationnotes.com/api/trackables/3a856446-bd89-4b42-b44d-279d237fb5b7/comments/3a856446-bd89-4b42-b44d-279d237fb5b7" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/trackables/{trackableId}/group
Portador
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl -X DELETE "https://locationnotes.com/api/trackables/3a856446-bd89-4b42-b44d-279d237fb5b7/group" \
-H "Authorization: Bearer <access token>"
POST /api/trackables/{trackableId}/group
Portador
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl -X POST "https://locationnotes.com/api/trackables/3a856446-bd89-4b42-b44d-279d237fb5b7/group" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/trackables/{trackableId}/journey
Anónimo
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl "https://locationnotes.com/api/trackables/3a856446-bd89-4b42-b44d-279d237fb5b7/journey"
POST /api/trackables/{trackableId}/journey-stops
Anónimo
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl -X POST "https://locationnotes.com/api/trackables/3a856446-bd89-4b42-b44d-279d237fb5b7/journey-stops" \
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/trackables/{trackableId}/journey-stops/{journeyStopId}
Portador
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl -X DELETE "https://locationnotes.com/api/trackables/3a856446-bd89-4b42-b44d-279d237fb5b7/journey-stops/3a856446-bd89-4b42-b44d-279d237fb5b7" \
-H "Authorization: Bearer <access token>"
DELETE /api/trackables/{trackableId}/watch
Portador
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl -X DELETE "https://locationnotes.com/api/trackables/3a856446-bd89-4b42-b44d-279d237fb5b7/watch" \
-H "Authorization: Bearer <access token>"
POST /api/trackables/{trackableId}/watch
Portador
Los rastreables admiten la exploración de códigos públicos, acceso a códigos secretos o QR de solo escaneo, revelación secreta única durante la creación, sesiones activas en el navegador, comentarios y flujos de trabajo de inventario agrupados.
curl -X POST "https://locationnotes.com/api/trackables/3a856446-bd89-4b42-b44d-279d237fb5b7/watch" \
-H "Authorization: Bearer <access token>" \
-H "Content-Type: application/json" \
-d '{}'
Los clientes autenticados pueden eliminar permanentemente la cuenta actual y los datos personales sincronizados a través de la API. Lea el Eliminar datos página primero si necesita las reglas de retención completas para las exportaciones y los datos propiedad del equipo.
La limpieza rastreable no es todo o nada. El servidor elimina la actividad rastreable personal del usuario eliminado cuando puede, pero no elimina los rastreables compartidos, los rastreables propiedad del equipo ni el historial de otros usuarios solo porque se elimina una cuenta. Si un rastreable propiedad del equipo todavía es importante para el equipo, permanece en ese equipo. Si la actividad de otra persona todavía está adjunta a un rastreable, ese rastreable permanece en el sistema.
DELETE /api/account
Portador
curl -X DELETE "https://locationnotes.com/api/account" \
-H "Authorization: Bearer <access token>"
{
"deletedAccount": true,
"notesDeleted": 14,
"categoriesDeleted": 6,
"linkedProvidersDeleted": 2
}
Los errores de validación, permisos y búsqueda devuelven códigos de estado HTTP estándar. Muchas rutas de espacios de trabajo devuelven JSON de detalles de problemas estilo RFC 7807 con un título, detalle y estado.
{
"title": "Forbidden",
"code": "trackable_access_code_required",
"detail": "Sign in, keep this trackable active on this browser, or provide this trackable's secret code or QR access code before posting comments or location reports.",
"status": 403
}
400 para validación o rechazo de reglas comerciales401 para autenticación faltante o no válida403 para usuarios autenticados que no tienen acceso404 para notas, categorías, equipos, membresías o enlaces de invitación faltantes
Las rutas de escritura de rastreables también agregan una propiedad code estable para que los clientes de la API puedan distinguir casos como
trackable_access_code_required,
trackable_access_code_invalid,
trackable_activation_required,
y
trackable_already_activated
sin analizar el texto en inglés. El mapeo completo está documentado en el
página de referencia de errores rastreables.
Las reglas de enlace externo, la verificación, la detección de contenido para adultos, el comportamiento de salida de la página, los valores predeterminados de grupos de rastreables, las exportaciones y la eliminación están documentados en ¿Qué es un enlace externo? página.
Para ver ejemplos de solicitudes y respuestas, incluidos externalLinkUrl, externalLinkDescription, externalLinkAppendPublicTrackableCode, defaultExternalLinkUrl, defaultExternalLinkDescription, defaultExternalLinkAppendPublicTrackableCode, useGroupDefaultExternalLink y el endpoint de verificación, consulte la Documentación de la API.