# Fetch multiple EOR Contract forms

POST https://api.letsdeel.com/rest/v2/forms/eor/create-contract/definitions
Content-Type: application/json

Retrieve paginated, versioned form definitions for creating EOR contracts for the specified countries. Use this endpoint when initializing or resuming a contract-creation flow to determine the required sections, fields, validation rules, and conditional logic per country (and optional contract type/locale). Always consume the latest effective version from the response and handle pagination. Not intended for reading or updating existing contracts.
 **Token scopes**: `forms:read`

Reference: https://developer.deel.com/api/reference/endpoints/forms/fetch-multiple-eor-contract-forms

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: Deel HRIS SCIM API
  version: 1.0.0
paths:
  /forms/eor/create-contract/definitions:
    post:
      operationId: fetch-multiple-eor-contract-forms
      summary: Fetch multiple EOR Contract forms
      description: >-
        Retrieve paginated, versioned form definitions for creating EOR
        contracts for the specified countries. Use this endpoint when
        initializing or resuming a contract-creation flow to determine the
        required sections, fields, validation rules, and conditional logic per
        country (and optional contract type/locale). Always consume the latest
        effective version from the response and handle pagination. Not intended
        for reading or updating existing contracts.
         **Token scopes**: `forms:read`
      tags:
        - subpackage_forms
      parameters:
        - name: limit
          in: query
          description: >-
            Maximum number of countries to return in a single response. Defaults
            to 10.
          required: false
          schema:
            type: integer
            default: 10
        - name: cursor
          in: query
          description: Pagination cursor for fetching subsequent pages of results.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: >
            ## Authentication

            The Deel API uses bearer tokens to authenticate requests. All API
            calls must be made over HTTPS — calls over plain HTTP or without
            authentication will fail.


            ```curl

            curl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \
              -H 'Authorization: Bearer YOUR-TOKEN-HERE'
            ```


            [Learn more about authentication](/api/authentication)
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response containing multiple form configuration data.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Forms_fetchMultipleEorContractForms_Response_200
        '400':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/FetchMultipleEorContractFormsRequestBadRequestError
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/FetchMultipleEorContractFormsRequestInternalServerError
      requestBody:
        description: >-
          Request body containing countries and optional parameters for bulk
          quote form fetching.
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: >-
                    #/components/schemas/FormsEorCreateContractDefinitionsPostRequestBodyContentApplicationJsonSchemaData
              required:
                - data
servers:
  - url: https://api.letsdeel.com/rest/v2
  - url: https://api-staging.letsdeel.com/rest/v2
components:
  schemas:
    FormsEorCreateContractDefinitionsPostRequestBodyContentApplicationJsonSchemaDataCountriesItems:
      type: object
      properties:
        state:
          type: string
          description: >-
            The selected state code of the contract. This is only required for
            countries that specify it.
        country_code:
          type: string
          description: Two-letter country code in ISO 3166-1 alpha-2 format
      required:
        - country_code
      title: >-
        FormsEorCreateContractDefinitionsPostRequestBodyContentApplicationJsonSchemaDataCountriesItems
    FormsEorCreateContractDefinitionsPostRequestBodyContentApplicationJsonSchemaData:
      type: object
      properties:
        countries:
          type: array
          items:
            $ref: >-
              #/components/schemas/FormsEorCreateContractDefinitionsPostRequestBodyContentApplicationJsonSchemaDataCountriesItems
          description: >-
            Array of countries for which to fetch quote forms. Maximum 10
            countries per request.
        start_date:
          type: string
          format: date
          description: >-
            The selected start date of the contract in ISO 8601 formatted date
            string.
        work_hours_per_week:
          type: integer
          description: The selected number of work hours per week.
        contract_duration_in_days:
          type: integer
          description: The contract duration in days for definite contracts.
      required:
        - countries
      title: >-
        FormsEorCreateContractDefinitionsPostRequestBodyContentApplicationJsonSchemaData
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsType:
      type: string
      enum:
        - FreeText
        - Paragraph
        - SingleSelection
        - MultiSelection
        - Address
        - PhoneNumber
        - DocumentUpload
        - Number
        - Dropdown
        - DatePicker
        - Email
      description: Type of the question.
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsType
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsSource:
      type: object
      properties:
        url:
          type: string
          description: API endpoint providing dynamic options.
        definition:
          type: string
          description: Reference URL for API documentation.
        description:
          type: string
          description: Description of the data source.
      description: Defines dynamic data source for the question.
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsSource
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsOptionsItems:
      type: object
      properties:
        title:
          type: string
          description: Display text for the option.
        value:
          type:
            - string
            - 'null'
          description: Value associated with the option.
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsOptionsItems
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsRequiresItemsValue:
      oneOf:
        - type: string
        - type: number
          format: double
        - type: boolean
      description: Expected value for the condition.
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsRequiresItemsValue
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsRequiresItems:
      type: object
      properties:
        key:
          type: string
          description: Key of the dependent field.
        value:
          $ref: >-
            #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsRequiresItemsValue
          description: Expected value for the condition.
        operator:
          type:
            - string
            - 'null'
          description: Comparison operator (e.g., 'eq', 'ne').
        compare_key:
          type:
            - string
            - 'null'
          description: Key of the field to compare against.
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsRequiresItems
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsMaxValue:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Maximum value allowed.
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsMaxValue
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsMinValue:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Minimum value allowed.
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsMinValue
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsDefaultValue:
      oneOf:
        - type: string
        - type: number
          format: double
        - type: boolean
      description: Default value to pre-fill in the form.
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsDefaultValue
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItems:
      type: object
      properties:
        title:
          type: string
          description: Title of the question.
        source:
          oneOf:
            - $ref: >-
                #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsSource
            - type: 'null'
          description: Defines dynamic data source for the question.
        options:
          type:
            - array
            - 'null'
          items:
            $ref: >-
              #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsOptionsItems
          description: >-
            List of selectable options for selection-type questions. Value may
            be of any type.
        is_range:
          type: boolean
          description: Specifies whether a date picker allows range selection.
        requires:
          type: array
          items:
            $ref: >-
              #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsRequiresItems
          description: List of conditions that must be met for this rule to apply.
        max_value:
          $ref: >-
            #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsMaxValue
          description: Maximum value allowed.
        min_value:
          $ref: >-
            #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsMinValue
          description: Minimum value allowed.
        max_length:
          type:
            - integer
            - 'null'
          description: Maximum character length for text responses.
        min_length:
          type:
            - integer
            - 'null'
          description: Minimum character length for text responses.
        helper_text:
          type:
            - string
            - 'null'
          description: Additional information to assist the user.
        is_disabled:
          type: boolean
          description: If true, the field is disabled and cannot be edited.
        is_required:
          type: boolean
          description: Indicates if the question is required.
        number_type:
          type: string
          description: Used for number fields to define the unit or representation.
        default_value:
          $ref: >-
            #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItemsDefaultValue
          description: Default value to pre-fill in the form.
        is_only_digits:
          type: boolean
          description: Restricts input to numeric characters only, for FreeText questions.
        date_limitation:
          type:
            - string
            - 'null'
          description: >-
            Limits date selection (e.g., blocking past dates). Will always be
            'BLOCK_PAST' for now.
        is_multiple_selection:
          type: boolean
          description: Indicates if the user can select multiple values.
        must_request_validation:
          type: boolean
          description: Whether additional validation should be triggered for this field.
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItems
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsSource:
      type: object
      properties:
        url:
          type: string
          description: API endpoint providing dynamic options.
        definition:
          type: string
          description: Reference URL for API documentation.
        description:
          type: string
          description: Description of the data source.
      description: Defines dynamic data source for the question.
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsSource
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsOptionsItems:
      type: object
      properties:
        title:
          type: string
          description: Display text for the option.
        value:
          type:
            - string
            - 'null'
          description: Value associated with the option.
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsOptionsItems
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsMaxValue:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Maximum value allowed.
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsMaxValue
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsMinValue:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Minimum value allowed.
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsMinValue
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsDefaultValue:
      oneOf:
        - type: string
        - type: number
          format: double
        - type: boolean
      description: Default value to pre-fill in the form.
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsDefaultValue
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItems:
      type: object
      properties:
        key:
          type: string
          description: Unique key identifier for the question.
        type:
          $ref: >-
            #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsType
          description: Type of the question.
        rules:
          type:
            - array
            - 'null'
          items:
            $ref: >-
              #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsRulesItems
          description: Validation rules for the question.
        title:
          type: string
          description: Title of the question.
        source:
          oneOf:
            - $ref: >-
                #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsSource
            - type: 'null'
          description: Defines dynamic data source for the question.
        options:
          type:
            - array
            - 'null'
          items:
            $ref: >-
              #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsOptionsItems
          description: >-
            List of selectable options for selection-type questions. Value may
            be of any type.
        is_range:
          type: boolean
          description: Specifies whether a date picker allows range selection.
        max_value:
          $ref: >-
            #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsMaxValue
          description: Maximum value allowed.
        min_value:
          $ref: >-
            #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsMinValue
          description: Minimum value allowed.
        max_length:
          type:
            - integer
            - 'null'
          description: Maximum character length for text responses.
        min_length:
          type:
            - integer
            - 'null'
          description: Minimum character length for text responses.
        helper_text:
          type:
            - string
            - 'null'
          description: Additional information to assist the user.
        is_disabled:
          type: boolean
          description: If true, the field is disabled and cannot be edited.
        is_required:
          type: boolean
          description: Indicates if the question is required.
        number_type:
          type: string
          description: Used for number fields to define the unit or representation.
        default_value:
          $ref: >-
            #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItemsDefaultValue
          description: Default value to pre-fill in the form.
        is_only_digits:
          type: boolean
          description: Restricts input to numeric characters only, for FreeText questions.
        date_limitation:
          type:
            - string
            - 'null'
          description: >-
            Limits date selection (e.g., blocking past dates). Will always be
            'BLOCK_PAST' for now.
        is_multiple_selection:
          type: boolean
          description: Indicates if the user can select multiple values.
        must_request_validation:
          type: boolean
          description: Whether additional validation should be triggered for this field.
      required:
        - key
        - type
        - title
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItems
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItems:
      type: object
      properties:
        title:
          type: string
          description: Title of the section.
        subtitle:
          type: string
          description: Additional information shown at the top of the section.
        questions:
          type: array
          items:
            $ref: >-
              #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItemsQuestionsItems
          description: List of questions within the section.
      required:
        - title
        - questions
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItems
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItems:
      type: object
      properties:
        title:
          type: string
          description: Title of the form page.
        sections:
          type: array
          items:
            $ref: >-
              #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItemsSectionsItems
          description: Sections within the page.
      required:
        - title
        - sections
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItems
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItems:
      type: object
      properties:
        pages:
          type: array
          items:
            $ref: >-
              #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItemsPagesItems
          description: List of pages in the form.
        state:
          type:
            - string
            - 'null'
          description: State or province code if applicable
        country:
          type: string
          description: Two-letter country code in ISO 3166-1 alpha-2 format
      required:
        - pages
        - country
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItems
    Forms_fetchMultipleEorContractForms_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: >-
              #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaDataItems
          description: Array of quote forms for the requested countries.
        has_more:
          type: boolean
          description: >-
            Indicates if there are more results available beyond the current
            page.
        next_cursor:
          type:
            - string
            - 'null'
          description: >-
            Cursor for fetching the next page of results. Null if no more
            results.
        total_count:
          type: integer
          description: Total number of countries in the request.
      required:
        - data
        - has_more
        - total_count
      title: Forms_fetchMultipleEorContractForms_Response_200
    FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaErrorsItems:
      type: object
      properties:
        code:
          type: string
          description: Machine-readable error code
        message:
          type: string
          description: Human-readable explanation of the error
      title: >-
        FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaErrorsItems
    FetchMultipleEorContractFormsRequestBadRequestError:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: >-
              #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaErrorsItems
      title: FetchMultipleEorContractFormsRequestBadRequestError
    ApiErrorRequest:
      type: object
      properties:
        method:
          type: string
          description: The HTTP method of the failed request
        url:
          type: string
          description: The relative URL of the failed request
        status:
          type: number
          format: double
          description: The status code of the response
        api_req_id:
          type: string
          description: The request ID of the failed request
        docs:
          type: string
          description: >-
            A link to the official documentation for the requested endpoint
            resource
        source:
          type: string
          description: The source handler which produced the returned error
        code:
          type: number
          format: double
          description: The code of the source handler which produced the returned error
      title: ApiErrorRequest
    ApiError:
      type: object
      properties:
        message:
          type: string
          description: A description of the returned error
        path:
          type: string
          description: The JSON path where input validation failed
      title: ApiError
    ApiErrorContainer:
      type: object
      properties:
        request:
          $ref: '#/components/schemas/ApiErrorRequest'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ApiError'
      title: ApiErrorContainer
    FetchMultipleEorContractFormsRequestInternalServerError:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: >-
              #/components/schemas/FormsEorCreateContractDefinitionsPostResponsesContentApplicationJsonSchemaErrorsItems
      title: FetchMultipleEorContractFormsRequestInternalServerError
  securitySchemes:
    deelToken:
      type: http
      scheme: bearer
      description: >
        ## Authentication

        The Deel API uses bearer tokens to authenticate requests. All API calls
        must be made over HTTPS — calls over plain HTTP or without
        authentication will fail.


        ```curl

        curl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \
          -H 'Authorization: Bearer YOUR-TOKEN-HERE'
        ```


        [Learn more about authentication](/api/authentication)
    oauth2:
      type: http
      scheme: bearer
      description: >-
        Standard OAuth2 security scheme based on
        https://swagger.io/docs/specification/authentication/

```

## SDK Code Examples

```python
import requests

url = "https://api.letsdeel.com/rest/v2/forms/eor/create-contract/definitions"

querystring = {"limit":"5","cursor":"eyJvZmZzZXQiOjEwfQ=="}

payload = { "data": { "countries": [{
                "country_code": "US",
                "state": "CA"
            }, { "country_code": "BR" }] } }
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers, params=querystring)

print(response.json())
```

```javascript
const url = 'https://api.letsdeel.com/rest/v2/forms/eor/create-contract/definitions?limit=5&cursor=eyJvZmZzZXQiOjEwfQ%3D%3D';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"data":{"countries":[{"country_code":"US","state":"CA"},{"country_code":"BR"}]}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.letsdeel.com/rest/v2/forms/eor/create-contract/definitions?limit=5&cursor=eyJvZmZzZXQiOjEwfQ%3D%3D"

	payload := strings.NewReader("{\n  \"data\": {\n    \"countries\": [\n      {\n        \"country_code\": \"US\",\n        \"state\": \"CA\"\n      },\n      {\n        \"country_code\": \"BR\"\n      }\n    ]\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.letsdeel.com/rest/v2/forms/eor/create-contract/definitions?limit=5&cursor=eyJvZmZzZXQiOjEwfQ%3D%3D")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"data\": {\n    \"countries\": [\n      {\n        \"country_code\": \"US\",\n        \"state\": \"CA\"\n      },\n      {\n        \"country_code\": \"BR\"\n      }\n    ]\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.letsdeel.com/rest/v2/forms/eor/create-contract/definitions?limit=5&cursor=eyJvZmZzZXQiOjEwfQ%3D%3D")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"data\": {\n    \"countries\": [\n      {\n        \"country_code\": \"US\",\n        \"state\": \"CA\"\n      },\n      {\n        \"country_code\": \"BR\"\n      }\n    ]\n  }\n}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.letsdeel.com/rest/v2/forms/eor/create-contract/definitions?limit=5&cursor=eyJvZmZzZXQiOjEwfQ%3D%3D', [
  'body' => '{
  "data": {
    "countries": [
      {
        "country_code": "US",
        "state": "CA"
      },
      {
        "country_code": "BR"
      }
    ]
  }
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.letsdeel.com/rest/v2/forms/eor/create-contract/definitions?limit=5&cursor=eyJvZmZzZXQiOjEwfQ%3D%3D");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"data\": {\n    \"countries\": [\n      {\n        \"country_code\": \"US\",\n        \"state\": \"CA\"\n      },\n      {\n        \"country_code\": \"BR\"\n      }\n    ]\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = ["data": ["countries": [[
        "country_code": "US",
        "state": "CA"
      ], ["country_code": "BR"]]]] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.letsdeel.com/rest/v2/forms/eor/create-contract/definitions?limit=5&cursor=eyJvZmZzZXQiOjEwfQ%3D%3D")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

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()
```