> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automate.ax/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# On courier location updated

> Starts an automation each time Uber reports a courier's location.

`uber.onCourierLocationUpdated` takes no filters. Uber sends a courier update about every 20 seconds from courier assignment until the delivery ends.

```ts automations/push-uber-courier-location.automation.ts theme={null}
import { automation, fetchHttp } from "automate.ax"
import { uber } from "automate.ax/uber"

export default automation("Push courier location", () => {
  const update = uber.onCourierLocationUpdated({})
  fetchHttp({
    url: "https://orders.example.com/api/courier-location",
    method: "POST",
    body: {
      deliveryId: update.deliveryId,
      lat: update.location.lat,
      lng: update.location.lng,
    },
  })
})
```

The event includes `id`, `deliveryId`, `customerId`, `liveMode`, `created`, the courier `location` with `lat` and `lng`, and the full `delivery`.

Each update starts a separate run, so one delivery can start this trigger dozens of times. Use a [milestone trigger](https://docs.automate.ax/reference/integrations/uber/index.md#delivery-lifecycle) when you only need status changes.

Requires an Uber Direct connection with a webhook signing key and a dashboard webhook that sends `event.courier_update`. See [Connect Uber Direct](https://docs.automate.ax/reference/integrations/uber/index.md#connect-uber-direct).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.