> ## Documentation Index
> Fetch the complete documentation index at: https://developer.tryfinch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Request Forwarding

> The Forward API allows you to make direct requests to an employment system. If Finch's unified API
doesn't have a data model that cleanly fits your needs, then Forward allows you to push or pull
data models directly against an integration's API.



## OpenAPI

````yaml post /forward
openapi: 3.1.0
info:
  title: API Reference
  version: '2020-09-17'
  contact: {}
  description: >-
    The Finch HRIS API provides a unified way to connect to a multitide of HRIS
    systems. The API requires an access token issued by Finch.


    By default, Organization and Payroll requests use Finch's [Data
    Syncs](/developer-resources/Data-Syncs). If a request is made before the
    initial sync has completed, Finch will request data live from the provider.
    The latency on live requests may range from seconds to minutes depending on
    the provider and batch size.

    For automated integrations, Deductions requests (both read and write) are
    always made live to the provider. Latencies may range from seconds to
    minutes depending on the provider and batch size.



    Employer products are specified by the product parameter, a space-separated
    list of products that your application requests from an employer
    authenticating through Finch Connect. Valid product names are—

    - `company`: Read basic company data


    - `directory`: Read company directory and organization structure


    - `individual`: Read individual data, excluding income and employment data


    - `employment`: Read individual employment and income data


    - `payment`: Read payroll and contractor related payments by the company


    - `pay_statement`: Read detailed pay statements for each individual


    - `benefits`: Create and manage deductions and contributions and enrollment
    for an employer


    [![Open in
    Postman](https://run.pstmn.io/button.svg)](https://god.gw.postman.com/run-collection/21027137-08db0929-883d-4094-a9ce-dbf5a9bee4a4?action=collection%2Ffork&collection-url=entityId%3D21027137-08db0929-883d-4094-a9ce-dbf5a9bee4a4%26entityType%3Dcollection%26workspaceId%3D1edf19bc-e0a8-41e9-ac55-481a4b50790b)
servers:
  - url: https://api.tryfinch.com
    description: ''
security: []
tags:
  - name: Organization
  - name: Payroll
  - name: Deductions
  - name: Management
  - name: Sandbox
paths:
  /forward:
    post:
      tags:
        - Management
      summary: Request Forwarding
      description: >-
        The Forward API allows you to make direct requests to an employment
        system. If Finch's unified API

        doesn't have a data model that cleanly fits your needs, then Forward
        allows you to push or pull

        data models directly against an integration's API.
      operationId: post-forward
      parameters:
        - $ref: '#/components/parameters/API-Version'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ForwardRequest'
            examples:
              Sample:
                value:
                  method: POST
                  route: /people/search
                  headers:
                    content-type: application/json
                  params:
                    showInactive: true
                    humanReadable: true
                  data: null
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForwardResponse'
              examples:
                Success:
                  value:
                    request:
                      method: POST
                      route: /people/search
                      headers:
                        content-type: application/json
                      params:
                        showInactive: true
                        humanReadable: true
                      data: null
                    headers:
                      date: Sun, 17 Sep 2023 21:27:25 GMT
                      content-type: application/json
                    statusCode: 200
                    data: >-
                      {"employees":[{"/work/custom/field_1693264321143":{"value":580192},"fullName":"Anna
                      Gibbons","/payroll/employment/siteWorkingPattern":{"value":{"workingPatternType":"partial_week","days":{"sunday":false,"tuesday":true,"wednesday":true,"monday":true,"friday":true,"thursday":true,"saturday":false},"hoursPerDay":9,"workingPatternId":null}},"/about/avatar":{"value":"https://media-process.hibob.com/image/upload/v1/hibob/demo-avatar/demo_employee/images/UiRYuQQyDc4sLbYzFFtN_59.jpg?__cld_token__=exp=4795680381~acl=*%2fhibob%2fdemo-avatar%2fdemo_employee%2fimages%2fUiRYuQQyDc4sLbYzFFtN_59.jpg*~hmac=07e5aff698027029ebbb4d8cb067db044ec46a86f9bf71430c53cc590f9c07a6"},"displayName":"Anna
                      Gibbons","/work/reportsTo/email":{"value":"joshua.tyler_632127@samplebob.com"},"/payroll/employment/activeEffectiveDate":{"value":"2015-03-03"},"payroll":{"employment":{"standardWorkingPattern":null,"fte":100,"type":null,"flsaCode":null,"actualWorkingPattern":{"workingPatternType":"partial_week","days":{"sunday":false,"tuesday":true,"wednesday":true,"monday":true,"friday":true,"thursday":true,"saturday":false},"hoursPerDay":9,"workingPatternId":null},"contract":"Full
                      time","customColumns":{"column_1693433488092":null,"column_1693419526345":null},"calendarId":null,"salaryPayType":null,"workingPattern":null,"activeEffectiveDate":"2015-03-03","weeklyHours":45,"siteWorkingPattern":{"workingPatternType":"partial_week","days":{"sunday":false,"tuesday":true,"wednesday":true,"monday":true,"friday":true,"thursday":true,"saturday":false},"hoursPerDay":9,"workingPatternId":null}}},"/root/firstName":{"value":"Anna"},"/work/employeeIdInCompany":{"value":38},"/work/tenureDurationYears":{"value":8.545},"/about/foodPreferences":{"value":[]},"/work/site":{"value":"New
                      York
                      (Demo)"},"/work/tenureYears":{"value":9},"creationDateTime":"2023-07-13T06:37:04.94395","/about/hobbies":{"value":["theatre","film","music"]},"/root/email":{"value":"anna.gibbons_632127@samplebob.com"},"/work/title":{"value":"Sales
                      Manager"},"employee":{"payrollManager":null,"hrbp":null,"itAdmin":null,"buddy":null},"work":{"shortStartDate":"03-03","startDate":"2015-03-03","manager":"3145813558047015811","tenureDuration":{"periodISO":"P8Y6M16D","sortFactor":3076,"humanize":"8
                      years, 6 months and 16
                      days"},"custom":{"field_1693264337015":580192,"field_1693264321143":580192},"durationOfEmployment":{"periodISO":"P8Y6M16D","sortFactor":3076,"humanize":"8
                      years, 6 months and 16
                      days"},"reportsToIdInCompany":27,"employeeIdInCompany":38,"reportsTo":{"displayName":"Joshua
                      Tyler","email":"joshua.tyler_632127@samplebob.com","surname":"Tyler","firstName":"Joshua","id":"3145813558047015811"},"indirectReports":null,"siteId":2477371,"tenureDurationYears":8.545,"department":"Sales","tenureYears":9,"isManager":false,"title":"Sales
                      Manager","site":"New York
                      (Demo)","activeEffectiveDate":"2015-03-03","directReports":null,"secondLevelManager":"3145813528661721978","daysOfPreviousService":0,"yearsOfService":8.545},"/payroll/employment/weeklyHours":{"value":45},"/root/creationDateTime":{"value":"2023-07-13T06:37:04.94395"},"avatarUrl":"https://media-process.hibob.com/image/upload/v1/hibob/demo-avatar/demo_employee/images/UiRYuQQyDc4sLbYzFFtN_59.jpg?__cld_token__=exp=4795680381~acl=*%2fhibob%2fdemo-avatar%2fdemo_employee%2fimages%2fUiRYuQQyDc4sLbYzFFtN_59.jpg*~hmac=07e5aff698027029ebbb4d8cb067db044ec46a86f9bf71430c53cc590f9c07a6","secondName":null,"/work/startDate":{"value":"2015-03-03"},"about":{"foodPreferences":[],"socialData":{"linkedin":null,"twitter":null,"facebook":null},"superpowers":["proof
                      reading"],"hobbies":["theatre","film","music"],"about":"I
                      dont have a life story, my story is my life
                      ","avatar":"https://media-process.hibob.com/image/upload/v1/hibob/demo-avatar/demo_employee/images/UiRYuQQyDc4sLbYzFFtN_59.jpg?__cld_token__=exp=4795680381~acl=*%2fhibob%2fdemo-avatar%2fdemo_employee%2fimages%2fUiRYuQQyDc4sLbYzFFtN_59.jpg*~hmac=07e5aff698027029ebbb4d8cb067db044ec46a86f9bf71430c53cc590f9c07a6"},"/root/fullName":{"value":"Anna
                      Gibbons"},"/payroll/employment/contract":{"value":"Full
                      time"},"/payroll/employment/actualWorkingPattern":{"value":{"workingPatternType":"partial_week","days":{"sunday":false,"tuesday":true,"wednesday":true,"monday":true,"friday":true,"thursday":true,"saturday":false},"hoursPerDay":9,"workingPatternId":null}},"companyId":632127,"/root/coverImageUrl":{"value":"https://media-process.hibob.com/image/upload/v1/hibob/public-image/cover/default_cover_image.png?token=X19jbGRfdG9rZW5fXz1leHA9NDg0OTgzNjczOX5hY2w9KiUyZmhpYm9iJTJmcHVibGljLWltYWdlJTJmY292ZXIlMmZkZWZhdWx0X2NvdmVyX2ltYWdlLnBuZyp+aG1hYz0zMjY3NjE4ZDQ1MzZjZjE3MWFiM2Y2MzJlY2JmZmQ5MWZkYTRmY2FmOGY3MDExYjllNmZlZTI4Njc0MzZlN2M5&vendor=cloudinary"},"/work/secondLevelManager":{"value":"3145813528661721978"},"/work/yearsOfService":{"value":8.545},"/work/daysOfPreviousService":{"value":0},"/about/about":{"value":"I
                      dont have a life story, my story is my life
                      "},"/root/avatarUrl":{"value":"https://media-process.hibob.com/image/upload/v1/hibob/demo-avatar/demo_employee/images/UiRYuQQyDc4sLbYzFFtN_59.jpg?__cld_token__=exp=4795680381~acl=*%2fhibob%2fdemo-avatar%2fdemo_employee%2fimages%2fUiRYuQQyDc4sLbYzFFtN_59.jpg*~hmac=07e5aff698027029ebbb4d8cb067db044ec46a86f9bf71430c53cc590f9c07a6"},"/root/surname":{"value":"Gibbons"},"/work/shortStartDate":{"value":"03-03"},"/work/activeEffectiveDate":{"value":"2015-03-03"},"/root/id":{"value":"3145813590838084494"},"email":"anna.gibbons_632127@samplebob.com","/work/manager":{"value":"3145813558047015811"},"surname":"Gibbons","/work/reportsTo":{"value":{"displayName":"Joshua
                      Tyler","email":"joshua.tyler_632127@samplebob.com","surname":"Tyler","firstName":"Joshua","id":"3145813558047015811"}},"/root/displayName":{"value":"Anna
                      Gibbons"},"/root/companyId":{"value":632127},"/payroll/employment/fte":{"value":100},"/work/department":{"value":"Sales"},"/work/isManager":{"value":false},"/work/custom/field_1693264337015":{"value":580192},"/work/reportsToIdInCompany":{"value":27},"/work/tenureDuration":{"value":{"periodISO":"P8Y6M16D","sortFactor":3076,"humanize":"8
                      years, 6 months and 16
                      days"}},"coverImageUrl":"https://media-process.hibob.com/image/upload/v1/hibob/public-image/cover/default_cover_image.png?token=X19jbGRfdG9rZW5fXz1leHA9NDg0OTgzNjczOX5hY2w9KiUyZmhpYm9iJTJmcHVibGljLWltYWdlJTJmY292ZXIlMmZkZWZhdWx0X2NvdmVyX2ltYWdlLnBuZyp+aG1hYz0zMjY3NjE4ZDQ1MzZjZjE3MWFiM2Y2MzJlY2JmZmQ5MWZkYTRmY2FmOGY3MDExYjllNmZlZTI4Njc0MzZlN2M5&vendor=cloudinary","/about/superpowers":{"value":["proof
                      reading"]},"/work/siteId":{"value":2477371},"id":"3145813590838084494","firstName":"Anna","/work/durationOfEmployment":{"value":{"periodISO":"P8Y6M16D","sortFactor":3076,"humanize":"8
                      years, 6 months and 16 days"}}}]}
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: JavaScript
          source: >-
            import Finch from '@tryfinch/finch-api';


            const client = new Finch({
              accessToken: 'My Access Token',
            });


            const response = await client.requestForwarding.forward({ method:
            'method', route: 'route' });


            console.log(response.request);
        - lang: Python
          source: |-
            from finch import Finch

            client = Finch(
                access_token="My Access Token",
            )
            response = client.request_forwarding.forward(
                method="method",
                route="route",
            )
            print(response.request)
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/Finch-API/finch-api-go\"\n\t\"github.com/Finch-API/finch-api-go/option\"\n)\n\nfunc main() {\n\tclient := finchgo.NewClient(\n\t\toption.WithAccessToken(\"My Access Token\"),\n\t)\n\tresponse, err := client.RequestForwarding.Forward(context.TODO(), finchgo.RequestForwardingForwardParams{\n\t\tMethod: finchgo.F(\"method\"),\n\t\tRoute:  finchgo.F(\"route\"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", response.Request)\n}\n"
        - lang: Java
          source: |-
            package com.tryfinch.api.example;

            import com.tryfinch.api.client.FinchClient;
            import com.tryfinch.api.client.okhttp.FinchOkHttpClient;
            import com.tryfinch.api.models.RequestForwardingForwardParams;
            import com.tryfinch.api.models.RequestForwardingForwardResponse;

            public final class Main {
                private Main() {}

                public static void main(String[] args) {
                    FinchClient client = FinchOkHttpClient.builder()
                        .fromEnv()
                        .accessToken("My Access Token")
                        .build();

                    RequestForwardingForwardParams params = RequestForwardingForwardParams.builder()
                        .method("method")
                        .route("route")
                        .build();
                    RequestForwardingForwardResponse response = client.requestForwarding().forward(params);
                }
            }
        - lang: Kotlin
          source: |-
            package com.tryfinch.api.example

            import com.tryfinch.api.client.FinchClient
            import com.tryfinch.api.client.okhttp.FinchOkHttpClient
            import com.tryfinch.api.models.RequestForwardingForwardParams
            import com.tryfinch.api.models.RequestForwardingForwardResponse

            fun main() {
                val client: FinchClient = FinchOkHttpClient.builder()
                    .fromEnv()
                    .accessToken("My Access Token")
                    .build()

                val params: RequestForwardingForwardParams = RequestForwardingForwardParams.builder()
                    .method("method")
                    .route("route")
                    .build()
                val response: RequestForwardingForwardResponse = client.requestForwarding().forward(params)
            }
        - lang: Ruby
          source: >-
            require "finch_api"


            finch = FinchAPI::Client.new(access_token: "My Access Token")


            response = finch.request_forwarding.forward(method_: "method",
            route: "route")


            puts(response)
components:
  parameters:
    API-Version:
      name: Finch-API-Version
      in: header
      required: true
      schema:
        type: string
        default: '2020-09-17'
        format: date
        pattern: ([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))
      description: >-
        Header used to specify the version for a given API request. Current
        version is 2020-09-17.
  schemas:
    ForwardRequest:
      type: object
      properties:
        method:
          type: string
          description: >-
            The HTTP method for the forwarded request. Valid values include:
            `GET` , `POST` , `PUT` , `DELETE` , and `PATCH`.
        route:
          type: string
          description: >-
            The URL route path for the forwarded request. This value must begin
            with a forward-slash ( / ) and may only contain alphanumeric
            characters, hyphens, and underscores.
        headers:
          type: object
          nullable: true
          additionalProperties:
            nullable: true
          description: >-
            The HTTP headers to include on the forwarded request. This value
            must be specified as an object of key-value pairs. Example:
            `{"Content-Type": "application/xml", "X-API-Version": "v1" }`
        params:
          type: object
          nullable: true
          additionalProperties:
            nullable: true
          description: >-
            The query parameters for the forwarded request. This value must be
            specified as a valid JSON object rather than a query string.
        data:
          type: string
          nullable: true
          description: >-
            The body for the forwarded request. This value must be specified as
            either a string or a valid JSON object.
      required:
        - method
        - route
    ForwardResponse:
      type: object
      properties:
        headers:
          type: object
          nullable: true
          additionalProperties:
            nullable: true
          description: >-
            The HTTP headers of the forwarded request's response, exactly as
            received from the underlying integration's API.
        statusCode:
          type: integer
          description: >-
            The HTTP status code of the forwarded request's response, exactly
            received from the underlying integration's API. This value will be
            returned as an integer.
        data:
          type: string
          nullable: true
          description: >-
            A string representation of the HTTP response body of the forwarded
            request's response received from the underlying integration's API.
            This field may be null in the case where the upstream system's
            response is empty.
        request:
          type: object
          properties:
            method:
              type: string
              description: >-
                The HTTP method that was specified for the forwarded request.
                Valid values include: `GET` , `POST` , `PUT` , `DELETE` , and
                `PATCH`.
            route:
              type: string
              description: The URL route path that was specified for the forwarded request.
            headers:
              type: object
              nullable: true
              additionalProperties:
                type: string
              description: The HTTP headers that were specified for the forwarded request.
            params:
              type: object
              nullable: true
              additionalProperties:
                nullable: true
              description: >-
                The query parameters that were specified for the forwarded
                request.
            data:
              anyOf:
                - type: string
                - type: object
                  additionalProperties:
                    nullable: true
                - nullable: true
                - nullable: true
              description: The body that was specified for the forwarded request.
          required:
            - method
            - route
          description: >-
            An object containing details of your original forwarded request, for
            your ease of reference.
      required:
        - statusCode
        - request
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Please use your Access Token

````