> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.gorilladash.com/gorilla-dash-rest-ful-api/people/get-people-list/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.gorilladash.com/_mcp/server. # Get People List GET https://api.gorilladash.com/api/v1/people Paginated list of the calling organisation's (or tribe's) people. **Ordering** — ascending `id`. Stable for full syncs: a record can never move onto a page you have already read. **Lookups** — `id`, `email` and `mobile` are *exact* matches. `mobile` is compared against the stored E.164 value with no normalisation, so send `+61412345678`, not `0412 345 678`. **Every payload carries** `organisation_id`, plus the person's single operational `tribe_id` / `tribe_slug` (resolved as `primary_tribe_id` first, otherwise the earliest tribe link — never the whole collection). A tribe-scoped API key always sees its own tribe here. **Incremental sync (`updated_after`)** - Timestamp-granular and strictly greater-than (`>`). Send a full ISO-8601 timestamp; an offset such as `+10:00` is honoured. - Child-aware: a person whose only change was moving tribes still comes back, because `person_tribes` participates in this payload. - Cursor on `record_updated_at` (the latest of the person row and its tribe links), **not** `updated_at`. `updated_at` still means "the person row itself changed". - Cursor on the **wall-clock time the poll started**, not on `max(record_updated_at)` in the result — bulk writes stamp an identical timestamp across many rows and a strict `>` would step over the ties. - Omit `updated_after` entirely for the first full walk; use it for deltas afterwards. **Limits** — `results_per_page` is 1–1000 (default 100). Anything over 1000 returns HTTP 422. Rate limit is 120 req/min per API key per IP, under a 300 req/min per-IP ceiling. Success is HTTP **201**, not 200 — that is the convention across this whole API. Reference: https://docs.gorilladash.com/gorilla-dash-rest-ful-api/people/get-people-list ## Request ### Query parameters - `page` (integer, optional) — Page number for pagination (default: 1) - `results_per_page` (integer, optional) — Records per page. 1-1000, default 100. Over 1000 returns 422. ### Headers - `GorillaDash-Api-Key` (string, optional) — Gorilla Dash API Key - `GorillaDash-Api-Secret` (string, optional) — Gorilla Dash API Secret - `X-Requested-With` (string, optional) ## Response ### 201 Created - `status` (integer, required) - `success` (boolean, required) - `data` (list of ApiV1PeopleGetResponsesContentApplicationJsonSchemaDataItems, required) - `pagination` (ApiV1PeopleGetResponsesContentApplicationJsonSchemaPagination, required) ## Types ### ApiV1PeopleGetResponsesContentApplicationJsonSchemaDataItems - `id` (integer, required) - `organisation_id` (integer, required) - `tribe_id` (integer, required) - `tribe_slug` (string, required) - `created_at` (datetime, required) - `updated_at` (datetime, required) - `record_updated_at` (datetime, required) - `first_name` (string, required) - `last_name` (string, required) - `email` (string, required) - `number_e164` (string, required) - `number_display` (string, required) - `business_name` (string, required) - `initial_lead_source` (string, required) - `initial_lead_campaign` (string, required) - `address_1` (any, optional) - `address_2` (any, optional) - `locality` (any, optional) - `state` (any, optional) - `postal_code` (any, optional) - `country` (any, optional) ### ApiV1PeopleGetResponsesContentApplicationJsonSchemaPagination - `count` (integer, required) - `total` (integer, required) - `perPage` (integer, required) - `currentPage` (integer, required) - `totalPages` (integer, required) - `links` (ApiV1PeopleGetResponsesContentApplicationJsonSchemaPaginationLinks, required) ### ApiV1PeopleGetResponsesContentApplicationJsonSchemaPaginationLinks - `next` (string, required) ## Examples **Response** ```json { "status": 201, "success": true, "data": [ { "id": 1, "organisation_id": 176, "tribe_id": 902, "tribe_slug": "fl-demo", "created_at": "2018-05-04T07:09:25.000000Z", "updated_at": "2024-05-10T07:13:26.000000Z", "record_updated_at": "2026-08-30T22:41:12.000000Z", "first_name": "Casper", "last_name": "Lai", "email": "casper@gorilladash.com", "number_e164": "+61499999999", "number_display": "0499 999 999", "business_name": "Gorilla Dash", "initial_lead_source": "Form", "initial_lead_campaign": "Gorilla Dash Enquiry Form" } ], "pagination": { "count": 100, "total": 1207800, "perPage": 100, "currentPage": 1, "totalPages": 12078, "links": { "next": "https://api.gorilladash.com/api/v1/people?results_per_page=100&updated_after=2026-08-30T00%3A00%3A00Z&page=2" } } } ``` **SDK Code** ```python People_Get People List_example import requests url = "https://api.gorilladash.com/api/v1/people" querystring = {"page":"1","results_per_page":"100"} headers = { "GorillaDash-Api-Key": "{{API_KEY}}", "GorillaDash-Api-Secret": "{{GD_RESTFUL_SECRET}}", "X-Requested-With": "XMLHttpRequest" } response = requests.get(url, headers=headers, params=querystring) print(response.json()) ``` ```javascript People_Get People List_example const url = 'https://api.gorilladash.com/api/v1/people?page=1&results_per_page=100'; const options = { method: 'GET', headers: { 'GorillaDash-Api-Key': '{{API_KEY}}', 'GorillaDash-Api-Secret': '{{GD_RESTFUL_SECRET}}', 'X-Requested-With': 'XMLHttpRequest' } }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go People_Get People List_example package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.gorilladash.com/api/v1/people?page=1&results_per_page=100" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("GorillaDash-Api-Key", "{{API_KEY}}") req.Header.Add("GorillaDash-Api-Secret", "{{GD_RESTFUL_SECRET}}") req.Header.Add("X-Requested-With", "XMLHttpRequest") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby People_Get People List_example require 'uri' require 'net/http' url = URI("https://api.gorilladash.com/api/v1/people?page=1&results_per_page=100") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["GorillaDash-Api-Key"] = '{{API_KEY}}' request["GorillaDash-Api-Secret"] = '{{GD_RESTFUL_SECRET}}' request["X-Requested-With"] = 'XMLHttpRequest' response = http.request(request) puts response.read_body ``` ```java People_Get People List_example import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://api.gorilladash.com/api/v1/people?page=1&results_per_page=100") .header("GorillaDash-Api-Key", "{{API_KEY}}") .header("GorillaDash-Api-Secret", "{{GD_RESTFUL_SECRET}}") .header("X-Requested-With", "XMLHttpRequest") .asString(); ``` ```php People_Get People List_example request('GET', 'https://api.gorilladash.com/api/v1/people?page=1&results_per_page=100', [ 'headers' => [ 'GorillaDash-Api-Key' => '{{API_KEY}}', 'GorillaDash-Api-Secret' => '{{GD_RESTFUL_SECRET}}', 'X-Requested-With' => 'XMLHttpRequest', ], ]); echo $response->getBody(); ``` ```csharp People_Get People List_example using RestSharp; var client = new RestClient("https://api.gorilladash.com/api/v1/people?page=1&results_per_page=100"); var request = new RestRequest(Method.GET); request.AddHeader("GorillaDash-Api-Key", "{{API_KEY}}"); request.AddHeader("GorillaDash-Api-Secret", "{{GD_RESTFUL_SECRET}}"); request.AddHeader("X-Requested-With", "XMLHttpRequest"); IRestResponse response = client.Execute(request); ``` ```swift People_Get People List_example import Foundation let headers = [ "GorillaDash-Api-Key": "{{API_KEY}}", "GorillaDash-Api-Secret": "{{GD_RESTFUL_SECRET}}", "X-Requested-With": "XMLHttpRequest" ] let request = NSMutableURLRequest(url: NSURL(string: "https://api.gorilladash.com/api/v1/people?page=1&results_per_page=100")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```