Skip to content
Get started

Get location data

client.chats.location.retrieve(stringchatID, RequestOptionsoptions?): GetChatLocationResponse { data, success }
GET/v3/chats/{chatId}/location

Retrieve the current location for contacts sharing with you in a chat.

Returns a GeoJSON FeatureCollection with a Feature for each participant actively sharing their location.

Works for both 1:1 and group chats. In group chats, returns a separate feature for each participant who is sharing. Each feature’s properties.handle identifies the user.

Returns an empty features array if no one is sharing or no location data is available yet.

ParametersExpand Collapse
chatID: string
formatuuid
ReturnsExpand Collapse
GetChatLocationResponse { data, success }
data: Data { features, type }
features: Array<Feature>
geometry: Geometry { coordinates, type }
coordinates: Array<number>

[longitude, latitude] or [longitude, latitude, altitude]

type: "Point"
properties: Properties { handle, address, locality, updated_at }
handle: string

Phone number or email of the person sharing their location

address?: string

Full street address

locality?: string

City or locality name

updated_at?: string

When the location was last updated

formatdate-time
type: "Feature"
type: "FeatureCollection"
success: boolean

Get location data

import LinqAPIV3 from '@linqapp/sdk';

const client = new LinqAPIV3({
  apiKey: process.env['LINQ_API_V3_API_KEY'], // This is the default and can be omitted
});

const getChatLocationResponse = await client.chats.location.retrieve(
  '975d0776-bd17-4273-8337-f346b4c661b0',
);

console.log(getChatLocationResponse.data);
{
  "error": {
    "status": 400,
    "code": 1002,
    "message": "Phone number must be in E.164 format",
    "doc_url": "https://docs.linqapp.com/error/codes/1xxx/1002/"
  },
  "success": false
}
{
  "error": {
    "status": 401,
    "code": 2004,
    "message": "Unauthorized - missing or invalid authentication token",
    "doc_url": "https://docs.linqapp.com/error/codes/2xxx/2004/"
  },
  "success": false
}
{
  "error": {
    "status": 403,
    "code": 2005,
    "message": "Access denied - insufficient permissions for this resource",
    "doc_url": "https://docs.linqapp.com/error/codes/2xxx/2005/"
  },
  "success": false
}
{
  "error": {
    "status": 404,
    "code": 2001,
    "message": "Resource not found",
    "doc_url": "https://docs.linqapp.com/error/codes/2xxx/2001/"
  },
  "success": false
}
{
  "error": {
    "status": 500,
    "code": 3006,
    "message": "Internal server error",
    "doc_url": "https://docs.linqapp.com/error/codes/3xxx/3006/"
  },
  "success": false
}
Returns Examples
{
  "error": {
    "status": 400,
    "code": 1002,
    "message": "Phone number must be in E.164 format",
    "doc_url": "https://docs.linqapp.com/error/codes/1xxx/1002/"
  },
  "success": false
}
{
  "error": {
    "status": 401,
    "code": 2004,
    "message": "Unauthorized - missing or invalid authentication token",
    "doc_url": "https://docs.linqapp.com/error/codes/2xxx/2004/"
  },
  "success": false
}
{
  "error": {
    "status": 403,
    "code": 2005,
    "message": "Access denied - insufficient permissions for this resource",
    "doc_url": "https://docs.linqapp.com/error/codes/2xxx/2005/"
  },
  "success": false
}
{
  "error": {
    "status": 404,
    "code": 2001,
    "message": "Resource not found",
    "doc_url": "https://docs.linqapp.com/error/codes/2xxx/2001/"
  },
  "success": false
}
{
  "error": {
    "status": 500,
    "code": 3006,
    "message": "Internal server error",
    "doc_url": "https://docs.linqapp.com/error/codes/3xxx/3006/"
  },
  "success": false
}