Amazon Location Service Location Service Positions API

The Location Service Positions API from Amazon Location Service — 3 operation(s) for location service positions.

Business capability
Device & IP Location AE-120.50

Operations 3

POST /geofencing/v0/collections/{CollectionName}/positions Batch Evaluate Geofences #
GET /tracking/v0/trackers/{TrackerName}/devices/{DeviceId}/positions/latest Get Device Position #
POST /tracking/v0/trackers/{TrackerName}/positions/verify Verify Device Position #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/amazon-location-service:amazon-location-service-positions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

amazon-location-service-positions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Amazon Location Service Positions API
  version: '2020-11-19'
  description: Generated from AWS's published Smithy model for Amazon Location Service. 3 operation(s).
  contact:
    name: Amazon Web Services
    url: https://aws.amazon.com/contact-us/
  license:
    name: Apache 2.0
    identifier: Apache-2.0
    url: https://github.com/aws/api-models-aws/blob/main/LICENSE
servers:
- url: https://geo.{region}.amazonaws.com
  variables:
    region:
      default: us-east-1
security:
- sigv4: []
tags:
- name: Positions
paths:
  /geofencing/v0/collections/{CollectionName}/positions:
    post:
      operationId: BatchEvaluateGeofences
      summary: Batch Evaluate Geofences
      description: 'Evaluates device positions against the geofence geometries from a given geofence collection. This operation always returns an empty response because geofences are asynchronously evaluated. The evaluation determines if the device has entered or exited a geofenced area, and then publishes one of the following events to Amazon EventBridge: ENTER if Amazon Location determines that the tracked device has entered a geofenced area. EXIT if Amazon Location determines that the tracked device has exited a geofenced area. The last geofence that a device was observed within is tracked for 30 days after the most recent device position update. Geofence evaluation uses the given device position. It does not account for the optional Accuracy of a DevicePositionUpdate. The DeviceID is used as a string to represent the device. You do not need to have a Tracker associated with the DeviceID.'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchEvaluateGeofencesResponse'
        '403':
          description: AccessDeniedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: InternalServerException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
        '404':
          description: ResourceNotFoundException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceNotFoundException'
        '429':
          description: ThrottlingException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThrottlingException'
        '400':
          description: ValidationException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchEvaluateGeofencesRequest'
      tags:
      - Positions
  /tracking/v0/trackers/{TrackerName}/devices/{DeviceId}/positions/latest:
    get:
      operationId: GetDevicePosition
      summary: Get Device Position
      description: Retrieves a device's most recent position according to its sample time. Device positions are deleted after 30 days.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDevicePositionResponse'
        '403':
          description: AccessDeniedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: InternalServerException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
        '404':
          description: ResourceNotFoundException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceNotFoundException'
        '429':
          description: ThrottlingException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThrottlingException'
        '400':
          description: ValidationException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetDevicePositionRequest'
      tags:
      - Positions
  /tracking/v0/trackers/{TrackerName}/positions/verify:
    post:
      operationId: VerifyDevicePosition
      summary: Verify Device Position
      description: Verifies the integrity of the device's position by determining if it was reported behind a proxy, and by comparing it to an inferred position estimated based on the device's state. The Location Integrity SDK provides enhanced features related to device verification, and it is available for use by request. To get access to the SDK, contact Sales Support.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerifyDevicePositionResponse'
        '403':
          description: AccessDeniedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: InternalServerException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
        '404':
          description: ResourceNotFoundException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceNotFoundException'
        '429':
          description: ThrottlingException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThrottlingException'
        '400':
          description: ValidationException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VerifyDevicePositionRequest'
      tags:
      - Positions
components:
  schemas:
    LteNetworkMeasurements:
      type: object
      properties:
        Earfcn:
          type: integer
          description: E-UTRA (Evolved Universal Terrestrial Radio Access) absolute radio frequency channel number (EARFCN).
        CellId:
          type: integer
          description: E-UTRAN Cell Identifier (ECI).
        Pci:
          type: integer
          description: Physical Cell ID (PCI).
        Rsrp:
          type: integer
          description: Signal power of the reference signal received, measured in dBm (decibel-milliwatts).
        Rsrq:
          type: number
          description: Signal quality of the reference Signal received, measured in decibels (dB).
      required:
      - Earfcn
      - CellId
      - Pci
    BatchEvaluateGeofencesError:
      type: object
      properties:
        DeviceId:
          type: string
          description: The device associated with the position evaluation error.
        SampleTime:
          type: string
          format: date-time
          description: 'Specifies a timestamp for when the error occurred in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ'
        Error:
          $ref: '#/components/schemas/BatchItemError'
      required:
      - DeviceId
      - SampleTime
      - Error
    LteLocalId:
      type: object
      properties:
        Earfcn:
          type: integer
          description: E-UTRA (Evolved Universal Terrestrial Radio Access) absolute radio frequency channel number (EARFCN).
        Pci:
          type: integer
          description: Physical Cell ID (PCI).
      required:
      - Earfcn
      - Pci
    BatchItemError:
      type: object
      properties:
        Code:
          type: string
          description: The error code associated with the batch request error.
        Message:
          type: string
          description: A message with the reason for the batch request error.
    VerifyDevicePositionRequest:
      type: object
      properties:
        TrackerName:
          type: string
          description: The name of the tracker resource to be associated with verification request.
        DeviceState:
          $ref: '#/components/schemas/DeviceState'
        DistanceUnit:
          type: string
          description: 'The distance unit for the verification request. Default Value: Kilometers'
      required:
      - TrackerName
      - DeviceState
    ResourceNotFoundException:
      type: object
      properties:
        Message:
          type: string
      required:
      - Message
    LteCellDetails:
      type: object
      properties:
        CellId:
          type: integer
          description: The E-UTRAN Cell Identifier (ECI).
        Mcc:
          type: integer
          description: The Mobile Country Code (MCC).
        Mnc:
          type: integer
          description: The Mobile Network Code (MNC)
        LocalId:
          $ref: '#/components/schemas/LteLocalId'
        NetworkMeasurements:
          type: array
          items:
            $ref: '#/components/schemas/LteNetworkMeasurements'
          description: The network measurements.
        TimingAdvance:
          type: integer
          description: Timing Advance (TA).
        NrCapable:
          type: boolean
          description: Indicates whether the LTE object is capable of supporting NR (new radio).
        Rsrp:
          type: integer
          description: Signal power of the reference signal received, measured in decibel-milliwatts (dBm).
        Rsrq:
          type: number
          description: Signal quality of the reference Signal received, measured in decibels (dB).
        Tac:
          type: integer
          description: LTE Tracking Area Code (TAC).
      required:
      - CellId
      - Mcc
      - Mnc
    ValidationExceptionField:
      type: object
      properties:
        Name:
          type: string
          description: The field name where the invalid entry was detected.
        Message:
          type: string
          description: A message with the reason for the validation exception error.
      required:
      - Name
      - Message
    ThrottlingException:
      type: object
      properties:
        Message:
          type: string
      required:
      - Message
    PositionalAccuracy:
      type: object
      properties:
        Horizontal:
          type: number
          description: Estimated maximum distance, in meters, between the measured position and the true position of a device, along the Earth's surface.
      required:
      - Horizontal
    GetDevicePositionRequest:
      type: object
      properties:
        TrackerName:
          type: string
          description: The tracker resource receiving the position update.
        DeviceId:
          type: string
          description: The device whose position you want to retrieve.
      required:
      - TrackerName
      - DeviceId
    VerifyDevicePositionResponse:
      type: object
      properties:
        InferredState:
          $ref: '#/components/schemas/InferredState'
        DeviceId:
          type: string
          description: The device identifier.
        SampleTime:
          type: string
          format: date-time
          description: 'The timestamp at which the device''s position was determined. Uses ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.'
        ReceivedTime:
          type: string
          format: date-time
          description: 'The timestamp for when the tracker resource received the device position in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.'
        DistanceUnit:
          type: string
          description: The distance unit for the verification response.
      required:
      - InferredState
      - DeviceId
      - SampleTime
      - ReceivedTime
      - DistanceUnit
    DeviceState:
      type: object
      properties:
        DeviceId:
          type: string
          description: The device identifier.
        SampleTime:
          type: string
          format: date-time
          description: 'The timestamp at which the device''s position was determined. Uses ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.'
        Position:
          type: array
          items:
            type: number
          description: The last known device position.
        Accuracy:
          $ref: '#/components/schemas/PositionalAccuracy'
        Ipv4Address:
          type: string
          description: The device's Ipv4 address.
        WiFiAccessPoints:
          type: array
          items:
            $ref: '#/components/schemas/WiFiAccessPoint'
          description: The Wi-Fi access points the device is using.
        CellSignals:
          $ref: '#/components/schemas/CellSignals'
      required:
      - DeviceId
      - SampleTime
      - Position
    GetDevicePositionResponse:
      type: object
      properties:
        DeviceId:
          type: string
          description: The device whose position you retrieved.
        SampleTime:
          type: string
          format: date-time
          description: 'The timestamp at which the device''s position was determined. Uses ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.'
        ReceivedTime:
          type: string
          format: date-time
          description: 'The timestamp for when the tracker resource received the device position. Uses ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.'
        Position:
          type: array
          items:
            type: number
          description: The last known device position.
        Accuracy:
          $ref: '#/components/schemas/PositionalAccuracy'
        PositionProperties:
          type: object
          additionalProperties:
            type: string
          description: The properties associated with the position.
      required:
      - SampleTime
      - ReceivedTime
      - Position
    InferredState:
      type: object
      properties:
        Position:
          type: array
          items:
            type: number
          description: The device position inferred by the provided position, IP address, cellular signals, and Wi-Fi- access points.
        Accuracy:
          $ref: '#/components/schemas/PositionalAccuracy'
        DeviationDistance:
          type: number
          description: The distance between the inferred position and the device's self-reported position.
        ProxyDetected:
          type: boolean
          description: Indicates if a proxy was used.
      required:
      - ProxyDetected
    InternalServerException:
      type: object
      properties:
        Message:
          type: string
      required:
      - Message
    AccessDeniedException:
      type: object
      properties:
        Message:
          type: string
      required:
      - Message
    ValidationException:
      type: object
      properties:
        Message:
          type: string
        Reason:
          type: string
          description: A message with the reason for the validation exception error.
        FieldList:
          type: array
          items:
            $ref: '#/components/schemas/ValidationExceptionField'
          description: The field where the invalid entry was detected.
      required:
      - Message
      - Reason
      - FieldList
    BatchEvaluateGeofencesResponse:
      type: object
      properties:
        Errors:
          type: array
          items:
            $ref: '#/components/schemas/BatchEvaluateGeofencesError'
          description: Contains error details for each device that failed to evaluate its position against the given geofence collection.
      required:
      - Errors
    DevicePositionUpdate:
      type: object
      properties:
        DeviceId:
          type: string
          description: The device associated to the position update.
        SampleTime:
          type: string
          format: date-time
          description: 'The timestamp at which the device''s position was determined. Uses ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ'
        Position:
          type: array
          items:
            type: number
          description: 'The latest device position defined in WGS 84 format: [X or longitude, Y or latitude].'
        Accuracy:
          $ref: '#/components/schemas/PositionalAccuracy'
        PositionProperties:
          type: object
          additionalProperties:
            type: string
          description: 'Associates one of more properties with the position update. A property is a key-value pair stored with the position update and added to any geofence event the update may trigger. Format: "key" : "value"'
      required:
      - DeviceId
      - SampleTime
      - Position
    CellSignals:
      type: object
      properties:
        LteCellDetails:
          type: array
          items:
            $ref: '#/components/schemas/LteCellDetails'
          description: Information about the Long-Term Evolution (LTE) network the device is connected to.
      required:
      - LteCellDetails
    BatchEvaluateGeofencesRequest:
      type: object
      properties:
        CollectionName:
          type: string
          description: The geofence collection used in evaluating the position of devices against its geofences.
        DevicePositionUpdates:
          type: array
          items:
            $ref: '#/components/schemas/DevicePositionUpdate'
          description: Contains device details for each device to be evaluated against the given geofence collection.
      required:
      - CollectionName
      - DevicePositionUpdates
    WiFiAccessPoint:
      type: object
      properties:
        MacAddress:
          type: string
          description: Medium access control address (Mac).
        Rss:
          type: integer
          description: Received signal strength (dBm) of the WLAN measurement data.
      required:
      - MacAddress
      - Rss
  securitySchemes:
    sigv4:
      type: apiKey
      in: header
      name: Authorization
      description: AWS Signature Version 4. The Authorization header carries an AWS4-HMAC-SHA256 signature over the canonical request, with X-Amz-Date (and X-Amz-Security-Token for temporary credentials). Not a bearer token.
      x-aws-sigv4:
        signingName: geo
x-provenance:
  method: harvested
  publisher: Amazon Web Services
  source: https://raw.githubusercontent.com/aws/api-models-aws/582e55931c45b944739742a2c1620b6026dd2d13/models/location/service/2020-11-19/location-2020-11-19.json
  note: converted by smithy-to-openapi.py from AWS's Smithy model (roadmap#1001)