Skip to main content
You can now make API requests to Finch’s various endpoints, such as /company, /directory, /individual, /employment, /payment, and /pay-statement. These endpoints only allow the reading of data from employment providers; they do not permit the writing of data back to the system. Writing deductions and contributions back to the provider is covered in Write Data step. These calls must be made from your backend using the access token obtained after Finch Connect — see Backend Security for why the access token should never be exposed to your frontend. In this step, you will learn how to make API requests, handle responses, and manage request rate limits.
  1. Choose the appropriate Finch API endpoints: Pick the endpoint(s) that match the data your application needs. See Verify Product Scopes for what each product/endpoint returns, or How Finch’s API is organized for the full data model.
  2. Batch your requests: For endpoints that accept multiple IDs — /individual, /employment, /pay-statement — send all the IDs you need in a single call instead of one request per ID. This reduces the number of API calls your application makes and, as a result, helps you stay within your rate limits. See Batch Requests for the request and response format.
  3. Set up the HTTP request: Use an HTTP library such as Fetch or Axios (or another suitable package) to create an HTTP request. Include the access token in the Authorization header using the format Bearer <your_access_token>. Make sure the HTTP request uses the appropriate method (GET, POST, etc.) and includes any required parameters.
  4. Include entity_ids query parameter in requests: When using an access token associated with multiple entities, you must include the entity_ids query parameter in all API requests. If you do not provide the entity_ids query parameter, Finch will return the following error:
Despite the plural name, the API currently accepts exactly one entity ID per request (entity_ids[]=<entity_id>) — to fetch data for multiple entities, make one request per entity.
  1. Handle API responses: When Finch returns a response, parse the JSON data and extract the relevant information needed for your application. All API responses include a header that includes date the data was retrieved. See our Development Guide on Headers for more details. Store or display the data as needed for your application.
    Example response
    The id values in a response (like the individual and manager IDs above) stay constant across access tokens generated via the same authentication method. If a connection has multiple access tokens from different authentication methods — for example, one from credentials and another from an API token — those IDs can differ between tokens, since Finch maps its IDs to the underlying employment system’s own identifiers, which vary by authentication method. Responses can include null field values or, for some requests, a 202 status instead of the shape above. See Handling API Responses for why these occur and how to handle each.
  2. Paginate GET /directory and POST /pay-statement responses: GET /directory and each entry in a POST /pay-statement request return paginated results using limit and offset. Set limit explicitly — if you omit it, Finch returns only the default page size, not the full result set. Loop on offset, adding the number of items received each time, until the response’s paging.count shows there are no more records to fetch:
    A limit above the max returns a 422 with a finch_code of page_size_limit_exceeded. See Mitigate Errors for the error format.
  3. Handle errors and edge cases: Finch returns 4XX or 5XX error types when a request fails, sometimes due to an unsupported response from the underlying employment system. See Server errors in Mitigate Errors for a retry-with-backoff implementation and when to contact support with the Finch-Request-ID.
  4. Handle 401 re-authentication errors: A 401 response with a finch_code of reauthenticate_user means Finch lost access to the employer’s provider and the employer must reauthenticate. See Reauthentication errors in Mitigate Errors for the full flow.
  5. Manage rate limits: Finch enforces rate limits per product on a rolling 60-second basis, for both applications and access tokens. Batching your requests (see step 2 above) is the main way to stay within these limits. If Finch returns a 429 HTTP status code, back off and retry — see Rate limit errors in Mitigate Errors for the full model and a retry implementation.

Checkpoint + Next Step

After completing this step, your application will be able to interact with the Finch API endpoints, read the necessary data, and handle various error scenarios. If all you need is to read data, the next step is to batch requests. If you need the ability to write data back to the provider, follow the Write Data step. Otherwise, you can move on to Prepare the Employer Experience.

Learn more