[{"data":1,"prerenderedAt":53},["ShallowReactive",2],{"docs:rendered-article:\u002Fdocs\u002Fpublic\u002Fguides\u002Fmigrating-search-persons-to-people":3},{"path":4,"slug":5,"title":8,"description":9,"category":6,"categoryLabel":10,"order":11,"status":12,"family":13,"subfamily":13,"content":14,"html":15,"examplesHtml":16,"excerpt":17,"readTimeMinutes":18,"headings":19,"examplesHeadings":48,"lastUpdated":13,"endpointId":13,"requiredFlag":13,"relatedArticlePaths":49,"badge":13},"\u002Fdocs\u002Fguides\u002Fmigrating-search-persons-to-people",[6,7],"guides","migrating-search-persons-to-people","Migrating people search from persons to people","Move people search calls from \u002Fv2\u002Fsearch\u002Fpersons to \u002Fv2\u002Fsearch\u002Fpeople.","Guides",51,"new",null,"\nPeople search has a new home: `POST \u002Fv2\u002Fsearch\u002Fpeople`. It returns full profiles instead of search hits, paginates with cursors instead of page numbers, accepts a larger filter set, and ships with a free count endpoint.\n\nThe previous endpoint, `POST \u002Fv2\u002Fsearch\u002Fpersons`, remains functional while customers migrate. It is no longer documented in the endpoint catalog, and this guide covers everything that changes when you move to `\u002Fv2\u002Fsearch\u002Fpeople`.\n\n## What changes\n\n| Area | `POST \u002Fv2\u002Fsearch\u002Fpersons` | `POST \u002Fv2\u002Fsearch\u002Fpeople` |\n| ---- | ------------------------- | ------------------------ |\n| Path | `\u002Fv2\u002Fsearch\u002Fpersons` | `\u002Fv2\u002Fsearch\u002Fpeople` |\n| Results | Search hits (name, title, company, location) | Full profiles, the same shape as the [Profile](\u002Fdocs\u002Fendpoints\u002Ffetch-profile) endpoint |\n| Pagination | `page` and `perPage` (default `100`) | `cursor` and `perPage` (default `25`) |\n| Metadata | `currentPage`, `pageNumber`, `perPage`, `total` | `perPage`, `count`, `nextCursor` |\n| Total matches | `data.metadata.total` on every response | Free [count endpoint](\u002Fdocs\u002Fendpoints\u002Fsearch-people-count) |\n| Pricing | 1 credit per page | 1 credit per profile delivered |\n| Available fields | `GET \u002Fv2\u002Fsearch\u002Fpersons\u002Favailable-fields` | `GET \u002Fv2\u002Fsearch\u002Fpeople\u002Favailable-fields` |\n\n## Paths\n\n| Before | After |\n| ------ | ----- |\n| `POST \u002Fv2\u002Fsearch\u002Fpersons` | `POST \u002Fv2\u002Fsearch\u002Fpeople` |\n| `GET \u002Fv2\u002Fsearch\u002Fpersons\u002Favailable-fields` | `GET \u002Fv2\u002Fsearch\u002Fpeople\u002Favailable-fields` |\n| (no equivalent) | `POST \u002Fv2\u002Fsearch\u002Fpeople\u002Fcount` |\n\nThe method and the `Authorization: Bearer YOUR_API_KEY` header stay the same. Only the path changes.\n\n## Results are full profiles\n\nThe previous endpoint returned a light search hit, and the documented flow was to chain into the [Profile](\u002Fdocs\u002Fendpoints\u002Ffetch-profile) endpoint for the full data of a hit. People search returns complete profiles directly, so the second call is no longer needed.\n\nBefore, a hit looked like this:\n\n```json\n{\n  \"id\": \"prs_01h2x3y4z5a6b7c8d9e0f1g2h3\",\n  \"publicId\": \"janedoe\",\n  \"linkedinUrl\": \"https:\u002F\u002Fwww.social.com\u002Fin\u002Fjanedoe\",\n  \"firstName\": \"Jane\",\n  \"lastName\": \"Doe\",\n  \"headline\": \"VP of Marketing @ Acme Corp\",\n  \"currentPositionTitle\": \"VP of Marketing\",\n  \"currentCompanyName\": \"Acme Corp\",\n  \"updateDate\": \"2026-03-18T09:12:44.000Z\"\n}\n```\n\nAfter, each item of `data.data` is a full profile, with `currentPosition`, `experience`, `education`, `skills` and the other sections documented on the [Profile](\u002Fdocs\u002Fendpoints\u002Ffetch-profile) endpoint. If you chained Profile calls after a search, drop them: the data is already in the search response.\n\n## Pagination moves from pages to cursors\n\nThe previous endpoint used `page` (1 to 50) and `perPage` (1 to 100, default `100`), and reported `currentPage`, `pageNumber` and `total` in `data.metadata`. People search uses cursor pagination:\n\n- `perPage` stays, with a new default of `25` (still 1 to 100).\n- `page` is gone. Send the `nextCursor` value from the previous response as `cursor` to get the next page.\n- `nextCursor` is `null` on the last page.\n- The cursor is opaque: send it back unchanged, without parsing or altering it.\n\nBefore:\n\n```javascript\nconst response = await fetch(\"https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Fsearch\u002Fpersons\", {\n  method: \"POST\",\n  headers: { \"Authorization\": \"Bearer YOUR_API_KEY\", \"Content-Type\": \"application\u002Fjson\" },\n  body: JSON.stringify({ currentPositionTitle: \"VP of Marketing\", page: 2, perPage: 100 })\n});\n\nconst payload = await response.json();\nconst hits = payload.data.data;\nconsole.log(`Page ${payload.data.metadata.currentPage} of ${payload.data.metadata.pageNumber}, ${payload.data.metadata.total} total`);\n```\n\nAfter:\n\n```javascript\nconst searchPage = async (cursor) => {\n  const response = await fetch(\"https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Fsearch\u002Fpeople\", {\n    method: \"POST\",\n    headers: { \"Authorization\": \"Bearer YOUR_API_KEY\", \"Content-Type\": \"application\u002Fjson\" },\n    body: JSON.stringify({ currentSeniority: \"VP\", perPage: 25, cursor })\n  });\n\n  return response.json();\n};\n\nconst page = await searchPage();\nconsole.log(`${page.data.metadata.count} profiles in this page`);\nif (page.data.metadata.nextCursor) {\n  const nextPage = await searchPage(page.data.metadata.nextCursor);\n}\n```\n\n## Totals move to the count endpoint\n\nThe previous `data.metadata.total` field is gone: `data.metadata.count` is the number of profiles in the current page, not the size of the whole matching set. To size a query, call the free [People search count](\u002Fdocs\u002Fendpoints\u002Fsearch-people-count) endpoint with the same filters:\n\n```bash\ncurl -X POST https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Fsearch\u002Fpeople\u002Fcount \\\n  -H \"Authorization: Bearer YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"currentSeniority\": \"VP\" }'\n```\n\nThe response is `data.count`, the total number of matching profiles across all pages, and it costs 0 credits.\n\n## Pricing changes\n\nThe previous endpoint charged 1 credit per page, whatever the page contained. People search charges **1 credit per profile delivered**: a page that returns 25 profiles costs 25 credits, and a page that returns no profile costs 0 credits. Rejected filters still cost 0 credits.\n\nTwo consequences for your migration:\n\n- `perPage` is now a credit control. Lower it to cap what a single request can spend.\n- Size queries first with the free count endpoint instead of reading `metadata.total` from a billed page.\n\n## Filter changes\n\nExisting filters keep their names, including `currentPositionTitle`, `excludeCurrentPositionTitle`, `currentCompanyIndustry`, `currentCompanyEmployeeCountRange`, `location`, `followersCount` and `maxDataAgeDate`. People search also accepts filters the previous endpoint did not have:\n\n| Filter | What it does |\n| ------ | ------------ |\n| `currentFunction`, `excludeCurrentFunction` | Match the current function from a 32-value position taxonomy |\n| `currentSubFunction`, `excludeCurrentSubFunction` | Match the current sub-function from a 386-value taxonomy |\n| `currentSeniority`, `excludeCurrentSeniority` | Match the current seniority from a 10-value taxonomy |\n| `experience` | Require past experience in a function, sub-function or seniority, with an optional minimum tenure in months |\n| `positionTitle`, `companyName`, `companyId`, `companyLinkedinId`, `companyPublicId`, `companyIndustry` and their `exclude...` counterparts | Match current and past positions, not only the current one |\n| `excludeCurrentCompanyName`, `excludeCurrentCompanyId`, `excludeCurrentCompanyLinkedinId`, `excludeCurrentCompanyPublicId` | Exclude a specific current employer |\n| `email` | Filter by email address |\n| `isCurrentlyEmployed` | Restrict to profiles that have a current employer |\n\nThe taxonomy lists are documented on the [People search](\u002Fdocs\u002Fendpoints\u002Fsearch-people#position-taxonomy) page and returned dynamically by [available fields](\u002Fdocs\u002Fendpoints\u002Fsearch-people-available-fields). Validation is unchanged in spirit: unknown fields, blank values and values outside a closed list return `422` with suggestions and cost 0 credits.\n\n## Available fields moves too\n\nIf you discover filters dynamically, switch `GET \u002Fv2\u002Fsearch\u002Fpersons\u002Favailable-fields` to `GET \u002Fv2\u002Fsearch\u002Fpeople\u002Favailable-fields`. The response shape is unchanged: `data.entity` is `\"person\"` and `data.fields` lists every accepted filter, with `allowedValues` for closed vocabularies such as the position taxonomy.\n\n## Migration checklist\n\n1. Replace the search path with `POST \u002Fv2\u002Fsearch\u002Fpeople` and the available-fields path with `GET \u002Fv2\u002Fsearch\u002Fpeople\u002Favailable-fields`.\n2. Replace `page` with cursor handling: loop while `data.metadata.nextCursor` is not `null`.\n3. Review your `perPage`: the default is now `25`, and each delivered profile costs 1 credit.\n4. Replace `data.metadata.total` reads with a call to `POST \u002Fv2\u002Fsearch\u002Fpeople\u002Fcount`.\n5. Drop the Profile calls you used to chain after a search: results are already full profiles.\n6. Map your title filters: `currentPositionTitle` still matches the current position, and the new `positionTitle` matches current and past positions.\n","\u003Cp>People search has a new home: \u003Ccode>POST \u002Fv2\u002Fsearch\u002Fpeople\u003C\u002Fcode>. It returns full profiles instead of search hits, paginates with cursors instead of page numbers, accepts a larger filter set, and ships with a free count endpoint.\u003C\u002Fp>\n\u003Cp>The previous endpoint, \u003Ccode>POST \u002Fv2\u002Fsearch\u002Fpersons\u003C\u002Fcode>, remains functional while customers migrate. It is no longer documented in the endpoint catalog, and this guide covers everything that changes when you move to \u003Ccode>\u002Fv2\u002Fsearch\u002Fpeople\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch2 id=\"what-changes\">What changes\u003C\u002Fh2>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Area\u003C\u002Fth>\n\u003Cth>\u003Ccode>POST \u002Fv2\u002Fsearch\u002Fpersons\u003C\u002Fcode>\u003C\u002Fth>\n\u003Cth>\u003Ccode>POST \u002Fv2\u002Fsearch\u002Fpeople\u003C\u002Fcode>\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Path\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>\u002Fv2\u002Fsearch\u002Fpersons\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>\u002Fv2\u002Fsearch\u002Fpeople\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Results\u003C\u002Ftd>\n\u003Ctd>Search hits (name, title, company, location)\u003C\u002Ftd>\n\u003Ctd>Full profiles, the same shape as the \u003Ca href=\"\u002Fdocs\u002Fendpoints\u002Ffetch-profile\">Profile\u003C\u002Fa> endpoint\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Pagination\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>page\u003C\u002Fcode> and \u003Ccode>perPage\u003C\u002Fcode> (default \u003Ccode>100\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>cursor\u003C\u002Fcode> and \u003Ccode>perPage\u003C\u002Fcode> (default \u003Ccode>25\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Metadata\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>currentPage\u003C\u002Fcode>, \u003Ccode>pageNumber\u003C\u002Fcode>, \u003Ccode>perPage\u003C\u002Fcode>, \u003Ccode>total\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>perPage\u003C\u002Fcode>, \u003Ccode>count\u003C\u002Fcode>, \u003Ccode>nextCursor\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Total matches\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>data.metadata.total\u003C\u002Fcode> on every response\u003C\u002Ftd>\n\u003Ctd>Free \u003Ca href=\"\u002Fdocs\u002Fendpoints\u002Fsearch-people-count\">count endpoint\u003C\u002Fa>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Pricing\u003C\u002Ftd>\n\u003Ctd>1 credit per page\u003C\u002Ftd>\n\u003Ctd>1 credit per profile delivered\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Available fields\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>GET \u002Fv2\u002Fsearch\u002Fpersons\u002Favailable-fields\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>GET \u002Fv2\u002Fsearch\u002Fpeople\u002Favailable-fields\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch2 id=\"paths\">Paths\u003C\u002Fh2>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Before\u003C\u002Fth>\n\u003Cth>After\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>POST \u002Fv2\u002Fsearch\u002Fpersons\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>POST \u002Fv2\u002Fsearch\u002Fpeople\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>GET \u002Fv2\u002Fsearch\u002Fpersons\u002Favailable-fields\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>GET \u002Fv2\u002Fsearch\u002Fpeople\u002Favailable-fields\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>(no equivalent)\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>POST \u002Fv2\u002Fsearch\u002Fpeople\u002Fcount\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>The method and the \u003Ccode>Authorization: Bearer YOUR_API_KEY\u003C\u002Fcode> header stay the same. Only the path changes.\u003C\u002Fp>\n\u003Ch2 id=\"results-are-full-profiles\">Results are full profiles\u003C\u002Fh2>\n\u003Cp>The previous endpoint returned a light search hit, and the documented flow was to chain into the \u003Ca href=\"\u002Fdocs\u002Fendpoints\u002Ffetch-profile\">Profile\u003C\u002Fa> endpoint for the full data of a hit. People search returns complete profiles directly, so the second call is no longer needed.\u003C\u002Fp>\n\u003Cp>Before, a hit looked like this:\u003C\u002Fp>\n\u003Cpre class=\"shiki shiki-themes github-light github-dark\" style=\"--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e\" tabindex=\"0\" data-language=\"json\">\u003Ccode class=\"language-json\">\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  \"id\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"prs_01h2x3y4z5a6b7c8d9e0f1g2h3\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  \"publicId\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"janedoe\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  \"linkedinUrl\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"https:\u002F\u002Fwww.social.com\u002Fin\u002Fjanedoe\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  \"firstName\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"Jane\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  \"lastName\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"Doe\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  \"headline\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"VP of Marketing @ Acme Corp\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  \"currentPositionTitle\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"VP of Marketing\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  \"currentCompanyName\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"Acme Corp\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  \"updateDate\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"2026-03-18T09:12:44.000Z\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>After, each item of \u003Ccode>data.data\u003C\u002Fcode> is a full profile, with \u003Ccode>currentPosition\u003C\u002Fcode>, \u003Ccode>experience\u003C\u002Fcode>, \u003Ccode>education\u003C\u002Fcode>, \u003Ccode>skills\u003C\u002Fcode> and the other sections documented on the \u003Ca href=\"\u002Fdocs\u002Fendpoints\u002Ffetch-profile\">Profile\u003C\u002Fa> endpoint. If you chained Profile calls after a search, drop them: the data is already in the search response.\u003C\u002Fp>\n\u003Ch2 id=\"pagination-moves-from-pages-to-cursors\">Pagination moves from pages to cursors\u003C\u002Fh2>\n\u003Cp>The previous endpoint used \u003Ccode>page\u003C\u002Fcode> (1 to 50) and \u003Ccode>perPage\u003C\u002Fcode> (1 to 100, default \u003Ccode>100\u003C\u002Fcode>), and reported \u003Ccode>currentPage\u003C\u002Fcode>, \u003Ccode>pageNumber\u003C\u002Fcode> and \u003Ccode>total\u003C\u002Fcode> in \u003Ccode>data.metadata\u003C\u002Fcode>. People search uses cursor pagination:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>perPage\u003C\u002Fcode> stays, with a new default of \u003Ccode>25\u003C\u002Fcode> (still 1 to 100).\u003C\u002Fli>\n\u003Cli>\u003Ccode>page\u003C\u002Fcode> is gone. Send the \u003Ccode>nextCursor\u003C\u002Fcode> value from the previous response as \u003Ccode>cursor\u003C\u002Fcode> to get the next page.\u003C\u002Fli>\n\u003Cli>\u003Ccode>nextCursor\u003C\u002Fcode> is \u003Ccode>null\u003C\u002Fcode> on the last page.\u003C\u002Fli>\n\u003Cli>The cursor is opaque: send it back unchanged, without parsing or altering it.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Before:\u003C\u002Fp>\n\u003Cpre class=\"shiki shiki-themes github-light github-dark\" style=\"--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e\" tabindex=\"0\" data-language=\"javascript\">\u003Ccode class=\"language-javascript\">\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">const\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> response\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> =\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> await\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\"> fetch\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Fsearch\u002Fpersons\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">  method: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"POST\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">  headers: { \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"Authorization\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"Bearer YOUR_API_KEY\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"Content-Type\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"application\u002Fjson\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\"> },\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">  body: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">JSON\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">stringify\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">({ currentPositionTitle: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"VP of Marketing\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, page: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">2\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, perPage: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">100\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\"> })\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">});\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">const\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> payload\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> =\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> await\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\"> response.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">json\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">();\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">const\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> hits\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> =\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\"> payload.data.data;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">console.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">log\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">`Page ${\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">payload\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">data\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">metadata\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">currentPage\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">} of ${\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">payload\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">data\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">metadata\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">pageNumber\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">}, ${\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">payload\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">data\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">metadata\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">total\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">} total`\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">);\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>After:\u003C\u002Fp>\n\u003Cpre class=\"shiki shiki-themes github-light github-dark\" style=\"--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e\" tabindex=\"0\" data-language=\"javascript\">\u003Ccode class=\"language-javascript\">\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">const\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\"> searchPage\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> =\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> async\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\"> (\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#E36209;--shiki-dark:#FFAB70\">cursor\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">) \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">=>\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">  const\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> response\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> =\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> await\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\"> fetch\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Fsearch\u002Fpeople\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">    method: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"POST\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">    headers: { \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"Authorization\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"Bearer YOUR_API_KEY\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"Content-Type\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"application\u002Fjson\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\"> },\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">    body: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">JSON\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">stringify\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">({ currentSeniority: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">\"VP\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, perPage: \u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">25\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">, cursor })\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">  });\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">  return\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\"> response.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">json\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">();\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">};\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">const\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> page\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> =\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> await\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\"> searchPage\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">();\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">console.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">log\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">`${\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">page\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">data\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">metadata\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">.\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">count\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\">} profiles in this page`\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">if\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\"> (page.data.metadata.nextCursor) {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\">  const\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> nextPage\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> =\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#D73A49;--shiki-dark:#F97583\"> await\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\"> searchPage\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">(page.data.metadata.nextCursor);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#24292E;--shiki-dark:#E1E4E8\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"totals-move-to-the-count-endpoint\">Totals move to the count endpoint\u003C\u002Fh2>\n\u003Cp>The previous \u003Ccode>data.metadata.total\u003C\u002Fcode> field is gone: \u003Ccode>data.metadata.count\u003C\u002Fcode> is the number of profiles in the current page, not the size of the whole matching set. To size a query, call the free \u003Ca href=\"\u002Fdocs\u002Fendpoints\u002Fsearch-people-count\">People search count\u003C\u002Fa> endpoint with the same filters:\u003C\u002Fp>\n\u003Cpre class=\"shiki shiki-themes github-light github-dark\" style=\"--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e\" tabindex=\"0\" data-language=\"bash\">\u003Ccode class=\"language-bash\">\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#6F42C1;--shiki-dark:#B392F0\">curl\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> -X\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> POST\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> https:\u002F\u002Fapi.reversecontact.com\u002Fv2\u002Fsearch\u002Fpeople\u002Fcount\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  -H\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> \"Authorization: Bearer YOUR_API_KEY\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  -H\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> \"Content-Type: application\u002Fjson\"\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"--shiki-light:#005CC5;--shiki-dark:#79B8FF\">  -d\u003C\u002Fspan>\u003Cspan style=\"--shiki-light:#032F62;--shiki-dark:#9ECBFF\"> '{ \"currentSeniority\": \"VP\" }'\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The response is \u003Ccode>data.count\u003C\u002Fcode>, the total number of matching profiles across all pages, and it costs 0 credits.\u003C\u002Fp>\n\u003Ch2 id=\"pricing-changes\">Pricing changes\u003C\u002Fh2>\n\u003Cp>The previous endpoint charged 1 credit per page, whatever the page contained. People search charges \u003Cstrong>1 credit per profile delivered\u003C\u002Fstrong>: a page that returns 25 profiles costs 25 credits, and a page that returns no profile costs 0 credits. Rejected filters still cost 0 credits.\u003C\u002Fp>\n\u003Cp>Two consequences for your migration:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>perPage\u003C\u002Fcode> is now a credit control. Lower it to cap what a single request can spend.\u003C\u002Fli>\n\u003Cli>Size queries first with the free count endpoint instead of reading \u003Ccode>metadata.total\u003C\u002Fcode> from a billed page.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"filter-changes\">Filter changes\u003C\u002Fh2>\n\u003Cp>Existing filters keep their names, including \u003Ccode>currentPositionTitle\u003C\u002Fcode>, \u003Ccode>excludeCurrentPositionTitle\u003C\u002Fcode>, \u003Ccode>currentCompanyIndustry\u003C\u002Fcode>, \u003Ccode>currentCompanyEmployeeCountRange\u003C\u002Fcode>, \u003Ccode>location\u003C\u002Fcode>, \u003Ccode>followersCount\u003C\u002Fcode> and \u003Ccode>maxDataAgeDate\u003C\u002Fcode>. People search also accepts filters the previous endpoint did not have:\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Filter\u003C\u002Fth>\n\u003Cth>What it does\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>currentFunction\u003C\u002Fcode>, \u003Ccode>excludeCurrentFunction\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Match the current function from a 32-value position taxonomy\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>currentSubFunction\u003C\u002Fcode>, \u003Ccode>excludeCurrentSubFunction\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Match the current sub-function from a 386-value taxonomy\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>currentSeniority\u003C\u002Fcode>, \u003Ccode>excludeCurrentSeniority\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Match the current seniority from a 10-value taxonomy\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>experience\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Require past experience in a function, sub-function or seniority, with an optional minimum tenure in months\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>positionTitle\u003C\u002Fcode>, \u003Ccode>companyName\u003C\u002Fcode>, \u003Ccode>companyId\u003C\u002Fcode>, \u003Ccode>companyLinkedinId\u003C\u002Fcode>, \u003Ccode>companyPublicId\u003C\u002Fcode>, \u003Ccode>companyIndustry\u003C\u002Fcode> and their \u003Ccode>exclude...\u003C\u002Fcode> counterparts\u003C\u002Ftd>\n\u003Ctd>Match current and past positions, not only the current one\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>excludeCurrentCompanyName\u003C\u002Fcode>, \u003Ccode>excludeCurrentCompanyId\u003C\u002Fcode>, \u003Ccode>excludeCurrentCompanyLinkedinId\u003C\u002Fcode>, \u003Ccode>excludeCurrentCompanyPublicId\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Exclude a specific current employer\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>email\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Filter by email address\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>isCurrentlyEmployed\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Restrict to profiles that have a current employer\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>The taxonomy lists are documented on the \u003Ca href=\"\u002Fdocs\u002Fendpoints\u002Fsearch-people#position-taxonomy\" target=\"_blank\" rel=\"noopener\">People search\u003C\u002Fa> page and returned dynamically by \u003Ca href=\"\u002Fdocs\u002Fendpoints\u002Fsearch-people-available-fields\">available fields\u003C\u002Fa>. Validation is unchanged in spirit: unknown fields, blank values and values outside a closed list return \u003Ccode>422\u003C\u002Fcode> with suggestions and cost 0 credits.\u003C\u002Fp>\n\u003Ch2 id=\"available-fields-moves-too\">Available fields moves too\u003C\u002Fh2>\n\u003Cp>If you discover filters dynamically, switch \u003Ccode>GET \u002Fv2\u002Fsearch\u002Fpersons\u002Favailable-fields\u003C\u002Fcode> to \u003Ccode>GET \u002Fv2\u002Fsearch\u002Fpeople\u002Favailable-fields\u003C\u002Fcode>. The response shape is unchanged: \u003Ccode>data.entity\u003C\u002Fcode> is \u003Ccode>&quot;person&quot;\u003C\u002Fcode> and \u003Ccode>data.fields\u003C\u002Fcode> lists every accepted filter, with \u003Ccode>allowedValues\u003C\u002Fcode> for closed vocabularies such as the position taxonomy.\u003C\u002Fp>\n\u003Ch2 id=\"migration-checklist\">Migration checklist\u003C\u002Fh2>\n\u003Col>\n\u003Cli>Replace the search path with \u003Ccode>POST \u002Fv2\u002Fsearch\u002Fpeople\u003C\u002Fcode> and the available-fields path with \u003Ccode>GET \u002Fv2\u002Fsearch\u002Fpeople\u002Favailable-fields\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Replace \u003Ccode>page\u003C\u002Fcode> with cursor handling: loop while \u003Ccode>data.metadata.nextCursor\u003C\u002Fcode> is not \u003Ccode>null\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Review your \u003Ccode>perPage\u003C\u002Fcode>: the default is now \u003Ccode>25\u003C\u002Fcode>, and each delivered profile costs 1 credit.\u003C\u002Fli>\n\u003Cli>Replace \u003Ccode>data.metadata.total\u003C\u002Fcode> reads with a call to \u003Ccode>POST \u002Fv2\u002Fsearch\u002Fpeople\u002Fcount\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Drop the Profile calls you used to chain after a search: results are already full profiles.\u003C\u002Fli>\n\u003Cli>Map your title filters: \u003Ccode>currentPositionTitle\u003C\u002Fcode> still matches the current position, and the new \u003Ccode>positionTitle\u003C\u002Fcode> matches current and past positions.\u003C\u002Fli>\n\u003C\u002Fol>\n","","People search has a new home: POST \u002Fv2\u002Fsearch\u002Fpeople. It returns full profiles instead of search hits, paginates with cursors instead of page numbers, accepts a larger filter se...",4,[20,24,27,30,33,36,39,42,45],{"id":21,"title":22,"level":23},"what-changes","What changes",2,{"id":25,"title":26,"level":23},"paths","Paths",{"id":28,"title":29,"level":23},"results-are-full-profiles","Results are full profiles",{"id":31,"title":32,"level":23},"pagination-moves-from-pages-to-cursors","Pagination moves from pages to cursors",{"id":34,"title":35,"level":23},"totals-move-to-the-count-endpoint","Totals move to the count endpoint",{"id":37,"title":38,"level":23},"pricing-changes","Pricing changes",{"id":40,"title":41,"level":23},"filter-changes","Filter changes",{"id":43,"title":44,"level":23},"available-fields-moves-too","Available fields moves too",{"id":46,"title":47,"level":23},"migration-checklist","Migration checklist",[],[50,51,52],"\u002Fdocs\u002Fendpoints\u002Fsearch-people","\u002Fdocs\u002Fendpoints\u002Fsearch-people-count","\u002Fdocs\u002Fendpoints\u002Fsearch-people-available-fields",1789687964691]