Skip to content
Miss Blue

Reference

Location sharing

A location request belongs to an existing iMessage conversation. The recipient chooses whether and how long to share; the API reports that lifecycle without turning an unanswered request into a location.

Send a native Find My location request.

curl -X POST https://api.missblue.dev/v1/locations/iMessage%3B-%3B%2B15555550100/%2B15555550100 \
  -H "Authorization: Bearer $MISS_BLUE_KEY"

Response

{ "requested": true }
  • 404The conversation is not on a number held by this project.
  • 503The number's Mac could not send the request.

Pull the sharing lifecycle and newest location fix.

state is not_shared, request_pending, declined, stopped, expired, shared_no_fix_yet, or shared_with_fix. Coordinates are absent until a fix exists; ended_at is present for an ended lifecycle.

curl -X GET https://api.missblue.dev/v1/locations/iMessage%3B-%3B%2B15555550100/%2B15555550100 \
  -H "Authorization: Bearer $MISS_BLUE_KEY"

Response

{
  "handle": "+15555550100",
  "state": "shared_with_fix",
  "latitude": 40.7411,
  "longitude": -73.9897,
  "horizontal_accuracy": 12.4,
  "observed_at": "2026-08-28T10:04:00Z",
  "short_address": "Flatiron District, New York",
  "expires_at": "2026-08-28T11:04:00Z",
  "requested_at": "2026-08-28T10:00:00Z",
  "started_at": "2026-08-28T10:03:12Z"
}

Watch changing location state as Server-Sent Events.

A location event is sent only when the JSON snapshot changes. The stream sends a keepalive every 15 seconds. An error event reports a temporary read failure without silently ending the stream.

curl -X GET https://api.missblue.dev/v1/locations/iMessage%3B-%3B%2B15555550100/%2B15555550100/watch \
  -H "Authorization: Bearer $MISS_BLUE_KEY"

Response

event: location
data: {"handle":"+15555550100","state":"shared_with_fix","latitude":40.7411,"longitude":-73.9897}
NextLookupWhether iMessage has reached a handle.