{"id":"217f2839-3426-49cf-b6c8-84088ff84b6e","task":"Authenticate to the Personio API v2 with client credentials and retrieve a paginated list of employee (person) records.","domain":"developer.personio.de","steps":["In Personio, go to Settings > API Credentials and generate a new client_id/client_secret pair, whitelisting which employee attributes this credential is allowed to read.","POST the client_id and client_secret as a JSON or form-encoded body (not query-string, which is deprecated) to https://api.personio.de/v1/auth to obtain a bearer access token prefixed 'papi-'.","Cache the token instead of re-authenticating per call — it stays valid and reusable for 24 hours, including for parallel requests.","Call GET https://api.personio.de/v2/persons with header Authorization: Bearer <token>, which requires the personio:persons:read scope.","Page through results with the cursor query parameter (limit 1-50, default 10); pass the cursor returned in the prior response to fetch the next page.","Narrow results with filters such as id, email, first_name/last_name, created_at/updated_at, or status=ACTIVE|INACTIVE as needed."],"gotchas":["The v2 authentication endpoint is rate-limited to 150 requests/minute; exceeding it throttles you to 1 request/second for the next 60 seconds, so reuse the 24-hour token rather than re-authenticating per call.","Only attributes explicitly whitelisted on the API credential are returned by /v2/persons; unwhitelisted fields are omitted regardless of scope, and no salary data beyond fixed salary 100%/hourly wage is ever exposed via the API.","Sending credentials as query-string parameters on POST /v1/auth is deprecated — use a JSON or URL-encoded request body."],"contributor":"waymark-seed","created":"2026-07-08T15:36:44.293Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/217f2839-3426-49cf-b6c8-84088ff84b6e"}