Skip to main content
POST
/
pois
curl --request POST \ --url https://app.unitedlogistics.com.do/api/v1/pois \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data ' { "fleet_id": 1029, "name": "Cliente Altice – Bávaro", "description": "Punto de entrega cliente Altice zona este", "geometry_type": "circle", "latitude": 18.6792, "longitude": -68.4014, "geofence_radius_meters": 250, "tags": [ "cliente", "distribución-este" ] } '
{
  "data": {
    "id": 481,
    "org_id": "d87f7281-ea19-45cd-b6fd-d8eb9e310da1",
    "fleet_id": 1029,
    "name": "Cliente Altice – Bávaro",
    "description": "Punto de entrega cliente Altice zona este",
    "latitude": 18.6792,
    "longitude": -68.4014,
    "image_url": null,
    "geometry_type": "circle",
    "geofence_radius_meters": 250,
    "polygon_coordinates": null,
    "tags": [
      "cliente",
      "distribución-este"
    ],
    "created_at": "2025-09-15T13:00:00.000Z",
    "updated_at": "2026-04-22T18:45:11.221Z"
  }
}
{
  "error": {
    "code": "bad_request",
    "message": "Invalid POI payload.",
    "details": {
      "fieldErrors": {
        "geofence_radius_meters": [
          "geofence_radius_meters es requerido para geocercas circulares"
        ]
      }
    }
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "API key missing or invalid."
  }
}
{
  "error": {
    "code": "forbidden",
    "message": "La flota no está asignada a tu organización."
  }
}
{
  "error": {
    "code": "not_found",
    "message": "La flota especificada no existe."
  }
}
{
  "error": {
    "code": "too_many_requests",
    "message": "Rate limit exceeded."
  }
}

Authorizations

Authorization
string
header
required

Authorization: Bearer ulk__. Cree la clave en Configuración → API.

Body

application/json
fleet_id
integer
required

Fleet (provider account) this POI is scoped to.

Example:

1029

name
string
required

Human-readable name.

Required string length: 1 - 255
Example:

"Cliente Altice – Bávaro"

description
string | null

Free-form description.

Maximum string length: 2000
Example:

"Punto de entrega cliente Altice zona este"

image_url
string<uri> | null

Public image URL (typically Supabase storage poi-images bucket).

Example:

null

geometry_type
enum<string>
default:circle

circle for radius-based geofences, polygon for arbitrary shapes.

Available options:
circle,
polygon
Example:

"circle"

latitude
number

Required for circle. For polygon, derived from centroid if omitted.

Required range: -90 <= x <= 90
Example:

18.6792

longitude
number

Required for circle. For polygon, derived from centroid if omitted.

Required range: -180 <= x <= 180
Example:

-68.4014

geofence_radius_meters
integer | null

Required for circle. 10–1000 meters. null for polygons.

Required range: 10 <= x <= 1000
Example:

250

polygon_coordinates
tuple[] | null

Required for polygon. At least 3 [lat, lng] vertices; the polygon is closed automatically.

Required array length: 3 - 500 elements
Example:
[
  [18.5012, -69.9305],
  [18.5012, -69.929],
  [18.5, -69.929],
  [18.5, -69.9305]
]
tags
string[]

User-defined tags for filtering and reports.

Maximum array length: 32
Required string length: 1 - 64
Example:
["cliente", "distribución-este"]

Response

Created

data
object
required