{ "openapi": "3.0.2", "info": { "title": "Klaviyo API", "version": "2026-07-15", "description": "The Klaviyo REST API. Please visit https://developers.klaviyo.com for more details.", "contact": { "name": "Klaviyo Developer Experience Team", "email": "developers@klaviyo.com", "url": "https://developers.klaviyo.com" }, "termsOfService": "https://www.klaviyo.com/legal/api-terms", "license": { "name": "License", "url": "https://www.klaviyo.com/legal" } }, "servers": [ { "url": "https://a.klaviyo.com", "description": "Production" } ], "security": [ { "Klaviyo-API-Key": [] } ], "paths": { "/client/geofences": { "get": { "operationId": "get_client_geofences", "summary": "Get Client Geofences", "description": "Get all geofences in an account.\n\nReturns a paginated list of all geofences for the specified company. This is the GA API endpoint designed for mobile SDK consumption. No authentication required.\n\nReturns a maximum of 100 results per page (default 20).\n\nThis API supports filtering via header instead of query param. Provide `X-Klaviyo-API-Filters` header to filter geofences. We don't use regular query param filters here because lat and long are sensitive information.\n\nSupported filters:\n- `lat` (equals) - Latitude coordinate for distance-based sorting\n- `lng` (equals) - Longitude coordinate for distance-based sorting\n\nWhen both lat and lng are provided, geofences are returned sorted by distance from the specified coordinates (closest first).\n\nExample filter header: `X-Klaviyo-API-Filters: and(equals(lat,40.7128),equals(lng,-74.0060))`

*Rate limits*:
Burst: `3/s`
Steady: `60/m`\n\n[OpenAPI Spec](https://raw.githubusercontent.com/klaviyo/openapi/main/openapi/stable/apis/get_client_geofences.json)", "parameters": [ { "name": "company_id", "in": "query", "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", "required": true, "schema": { "description": "Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.", "type": "string", "example": "PUBLIC_API_KEY" } }, { "name": "fields[geofence]", "in": "query", "description": "For more information please visit https://developers.klaviyo.com/en/v2026-07-15/reference/api-overview#sparse-fieldsets", "required": false, "schema": { "type": "array", "items": { "type": "string", "enum": [ "id", "latitude", "longitude", "radius" ] } }, "explode": false }, { "name": "page[cursor]", "in": "query", "description": "For more information please visit https://developers.klaviyo.com/en/v2026-07-15/reference/api-overview#pagination", "required": false, "schema": { "type": "string" } }, { "name": "page[size]", "in": "query", "description": "Default: 20. Min: 1. Max: 100.", "required": false, "schema": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1 } }, { "name": "X-Klaviyo-API-Filters", "in": "header", "description": "\nSupported filters:\n- `lat` (equals) - Latitude coordinate for distance-based sorting\n- `lng` (equals) - Longitude coordinate for distance-based sorting\n\nWhen both lat and lng are provided, geofences are returned sorted by\ndistance from the specified coordinates (closest first).\n", "required": false, "schema": { "type": "string", "example": "and(equals(lat,40.7128),equals(lng,-74.0060))" } }, { "name": "revision", "in": "header", "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", "required": true, "schema": { "type": "string", "default": "2026-07-15" } } ], "responses": { "200": { "description": "Success", "content": { "application/vnd.api+json": { "schema": { "$ref": "#/components/schemas/GetGeofenceResponseCollection" } } } }, "4XX": { "$ref": "#/components/responses/ClientError" }, "5XX": { "$ref": "#/components/responses/ServerError" } }, "security": [], "tags": [ "Client" ], "x-klaviyo-pre-release": "None", "x-klaviyo-ratelimit": { "burst": "3/s", "steady": "60/m" }, "x-klaviyo-scopes": [] } } }, "components": { "responses": { "ClientError": { "description": "Client Error", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "object", "required": [ "id", "code", "title", "detail" ], "properties": { "id": { "type": "string" }, "code": { "type": "string" }, "title": { "type": "string" }, "detail": { "type": "string" }, "source": { "type": "object", "properties": { "pointer": { "type": "string" }, "parameter": { "type": "string" } } } } } } }, "required": [ "errors" ] } } } }, "ServerError": { "description": "Server Error", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "object", "required": [ "id", "code", "title", "detail" ], "properties": { "id": { "type": "string" }, "code": { "type": "string" }, "title": { "type": "string" }, "detail": { "type": "string" }, "source": { "type": "object", "properties": { "pointer": { "type": "string" }, "parameter": { "type": "string" } } } } } } }, "required": [ "errors" ] } } } } }, "schemas": { "AgentHints": { "description": "Optional hints emitted by the API for agent callers", "type": "object", "properties": { "next_steps": { "description": "Suggested follow-up actions for agents to take after this response", "type": "array", "items": { "type": "string" } } } }, "CollectionLinks": { "type": "object", "properties": { "self": { "type": "string", "format": "uri" }, "prev": { "type": "string", "format": "uri" }, "next": { "type": "string", "format": "uri" } }, "required": [ "self" ] }, "GeofenceEnum": { "type": "string", "enum": [ "geofence" ] }, "GeofenceResponseObjectResource": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/GeofenceEnum" }, "id": { "description": "Primary key that uniquely identifies this geofence. Generated by the system.", "type": "string", "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }, "attributes": { "type": "object", "properties": { "latitude": { "description": "Latitude coordinate of the geofence center point", "type": "number", "example": 40.7128 }, "longitude": { "description": "Longitude coordinate of the geofence center point", "type": "number", "example": -74.006 }, "radius": { "description": "Radius in meters from the center point", "type": "number", "example": 100 } }, "required": [ "latitude", "longitude", "radius" ] }, "links": { "$ref": "#/components/schemas/ObjectLinks" } }, "required": [ "type", "id", "attributes", "links" ] }, "GetGeofenceResponseCollection": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/GeofenceResponseObjectResource" } }, "links": { "$ref": "#/components/schemas/CollectionLinks" }, "meta": { "$ref": "#/components/schemas/ResponseMeta" } }, "required": [ "data" ] }, "ObjectLinks": { "type": "object", "properties": { "self": { "type": "string", "format": "uri" } }, "required": [ "self" ] }, "ResponseMeta": { "description": "Response-level metadata", "type": "object", "properties": { "agent_hints": { "$ref": "#/components/schemas/AgentHints" } } } }, "securitySchemes": { "Klaviyo-API-Key": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "Private key authentication for /api/ endpoints is performed by setting the `Authorization` header to `Klaviyo-API-Key your-private-api-key`
For more information please visit https://developers.klaviyo.com/en/v2026-07-15/reference/api-overview#authentication", "x-default": "Klaviyo-API-Key your-private-api-key" } } }, "tags": [ { "name": "Client", "description": "client" } ] }