Deel Subpackage Reports API
The subpackage_reports API from Deel — 4 operation(s) for subpackage_reports.
The subpackage_reports API from Deel — 4 operation(s) for subpackage_reports.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/deel-com:deel-com-subpackage-reports-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Endpoints Subpackage Reports API
version: 1.0.0
servers:
- url: https://api.letsdeel.com/rest/v2
- url: https://api-staging.letsdeel.com/rest/v2
tags:
- name: subpackage_reports
paths:
/gp/reports/{id}/gross_to_net/csv:
get:
operationId: get-gp-report-gross-to-net-csv
summary: Download gross to net report
description: 'Download global payroll reports detailing gross-to-net calculations.
**Token scopes**: `global-payroll:read`'
tags:
- subpackage_reports
parameters:
- name: id
in: path
description: Id of the gp payroll report.
required: true
schema:
type: string
- name: currency
in: query
description: Currency to be used in the report calculation.
required: false
schema:
type: string
- name: Authorization
in: header
description: "## Authentication\nThe 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.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
required: true
schema:
type: string
responses:
'200':
description: Successful operation.
content:
application/json:
schema:
type: object
properties: {}
'400':
description: Operation failed.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorContainer'
'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/ApiErrorContainer'
/gp/reports/{id}/gross_to_net:
get:
operationId: get-gp-report-gross-to-net
summary: List gross-to-net report
description: 'Get a list of global payroll reports detailing gross-to-net calculations. Supports pagination through limit and offset query parameters.
**Token scopes**: `global-payroll:read`'
tags:
- subpackage_reports
parameters:
- name: id
in: path
description: Id of the gp payroll report.
required: true
schema:
type: string
- name: currency
in: query
description: Currency to be used in the report calculation.
required: false
schema:
type: string
- name: limit
in: query
description: Maximum number of records to return.
required: false
schema:
type: number
format: double
- name: offset
in: query
description: Offset/index of record for the next page of records to return.
required: false
schema:
type: number
format: double
- name: Authorization
in: header
description: "## Authentication\nThe 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.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
required: true
schema:
type: string
responses:
'200':
description: Successful operation.
content:
application/json:
schema:
$ref: '#/components/schemas/reports_getGPReportGrossToNet_Response_200'
'400':
description: Operation failed.
content:
application/json:
schema:
$ref: '#/components/schemas/ListGrossToNetReportRequestBadRequestError'
'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/ApiErrorContainer'
/gp/legal-entities/{legal_entity_id}/reports:
get:
operationId: get-gp-legal-entity-reports
summary: List payroll events by legal entity
description: 'Use this endpoint to retrieve payroll events for a specific legal entity when preparing payroll reports or auditing pay cycles. This operation is read-only and does not modify any data.
**Token scopes**: `global-payroll:read`'
tags:
- subpackage_reports
parameters:
- name: legal_entity_id
in: path
description: Unique identifier for the legal entity.
required: true
schema:
type: string
format: uuid
- name: Authorization
in: header
description: "## Authentication\nThe 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.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
required: true
schema:
type: string
responses:
'200':
description: Successful operation.
content:
application/json:
schema:
$ref: '#/components/schemas/reports_getGPLegalEntityReports_Response_200'
'400':
description: Operation failed.
content:
application/json:
schema:
$ref: '#/components/schemas/ListPayrollEventsByLegalEntityRequestBadRequestError'
'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/ApiErrorContainer'
/reports/payroll/cycles/{cycle_id}/gross-to-net:
get:
operationId: gets-g-2-n-report-data-for-a-given-payroll-cycle-by-its-id-v-2026-01-01
summary: Gets G2N report data for a given payroll cycle by it's ID
description: 'This endpoint gets categorized G2N data (including category group, category, sub-category and label) for each contract within a given payroll cycle for the provided id.
**Token scopes**: `payslips:read`'
tags:
- subpackage_reports
parameters:
- name: cycle_id
in: path
description: The unique identifier for the payroll event.
required: true
schema:
type: string
format: uuid
- name: limit
in: query
description: Maximum number of items to return. Defaults to 20.
required: false
schema:
type: integer
default: 20
- name: cursor
in: query
description: Cursor for pagination of results.
required: false
schema:
type: string
- name: Authorization
in: header
description: "## Authentication\nThe 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.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
required: true
schema:
type: string
responses:
'200':
description: Successful operation.
content:
application/json:
schema:
$ref: '#/components/schemas/Reports_getsG2NReportDataForAGivenPayrollCycleByItsId-v2026-01-01_Response_200'
'400':
description: Bad Request.
content:
application/json:
schema:
$ref: '#/components/schemas/GetsG2NReportDataForAGivenPayrollCycleByItsId-v2026-01-01RequestBadRequestError'
'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: Resource not found.
content:
application/json:
schema:
$ref: '#/components/schemas/GetsG2NReportDataForAGivenPayrollCycleByItsId-v2026-01-01RequestNotFoundError'
'500':
description: Internal Server Error.
content:
application/json:
schema:
$ref: '#/components/schemas/GetsG2NReportDataForAGivenPayrollCycleByItsId-v2026-01-01RequestInternalServerError'
components:
schemas:
ListGrossToNetReportRequestBadRequestError:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/GpReportsIdGrossToNetGetResponsesContentApplicationJsonSchemaErrorsItems'
request:
$ref: '#/components/schemas/GpReportsIdGrossToNetGetResponsesContentApplicationJsonSchemaRequest'
title: ListGrossToNetReportRequestBadRequestError
ReportsPayrollCyclesCycleIdGrossToNetGetResponsesContentApplicationJsonSchemaDataItemsItemsItems:
type: object
properties:
label:
type: string
description: Label of the payroll item.
value:
type: number
format: double
description: Value associated with the payroll item.
category:
type: string
description: Category of the item.
sub_category:
type: string
description: Sub-category of the item.
category_group:
$ref: '#/components/schemas/ReportsPayrollCyclesCycleIdGrossToNetGetResponsesContentApplicationJsonSchemaDataItemsItemsItemsCategoryGroup'
description: Category group for the reporting label.
title: ReportsPayrollCyclesCycleIdGrossToNetGetResponsesContentApplicationJsonSchemaDataItemsItemsItems
reports_getGPReportGrossToNet_Response_200:
type: object
properties:
data:
type: array
items:
type: object
additionalProperties:
$ref: '#/components/schemas/GpReportsIdGrossToNetGetResponsesContentApplicationJsonSchemaDataItems'
description: List of report rows (summary rows are filtered out). Each row contains dynamic column keys mapped to cell objects.
page:
$ref: '#/components/schemas/GpReportsIdGrossToNetGetResponsesContentApplicationJsonSchemaPage'
description: Pagination metadata for the report rows.
required:
- data
- page
title: reports_getGPReportGrossToNet_Response_200
GpReportsIdGrossToNetGetResponsesContentApplicationJsonSchemaDataItems:
type: object
properties:
type:
type: string
description: Cell type used for rendering/formatting.
label:
type: string
description: Human-readable label of the column for this cell.
compareValue:
description: Raw value for the comparison period, if applicable.
currentValue:
description: Raw value for the current period. Type varies by column (string/number/null/etc).
percentageDiff:
description: Percentage difference between current and comparison values, if applicable.
formattedCurrentValue:
description: Formatted value for display purposes.
required:
- type
- label
description: A cell value object for a given column.
title: GpReportsIdGrossToNetGetResponsesContentApplicationJsonSchemaDataItems
GpLegalEntitiesLegalEntityIdReportsGetResponsesContentApplicationJsonSchemaDataItems:
type: object
properties:
id:
type: string
description: Unique identifier for the payroll event.
status:
type: string
description: Status of the payroll event (e.g., OPEN, CLOSED).
end_date:
type: string
format: date-time
description: End date of the payroll event in ISO-8601 format.
lock_date:
type:
- string
- 'null'
format: date-time
description: Date when the payroll event is locked, in ISO-8601 format.
start_date:
type: string
format: date-time
description: Start date of the payroll event in ISO-8601 format.
required:
- id
- status
- end_date
- start_date
title: GpLegalEntitiesLegalEntityIdReportsGetResponsesContentApplicationJsonSchemaDataItems
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
GpReportsIdGrossToNetGetResponsesContentApplicationJsonSchemaErrorsItems:
type: object
properties:
path:
type: string
description: The JSON path where input validation failed
message:
type: string
description: A description of the returned error
title: GpReportsIdGrossToNetGetResponsesContentApplicationJsonSchemaErrorsItems
GpLegalEntitiesLegalEntityIdReportsGetResponsesContentApplicationJsonSchemaRequest:
type: object
properties:
url:
type: string
description: The relative URL of the failed request
code:
type: number
format: double
description: The code of the source handler which produced the returned error
docs:
type: string
description: A link to the official documentation for the requested endpoint resource
method:
type: string
description: The HTTP method of the failed request
source:
type: string
description: The source handler which produced the returned error
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
title: GpLegalEntitiesLegalEntityIdReportsGetResponsesContentApplicationJsonSchemaRequest
ReportsPayrollCyclesCycleIdGrossToNetGetResponsesContentApplicationJsonSchemaDataItemsPaymentData:
type: object
properties:
conversion_rate:
type: string
description: Conversion rate applied between the payroll currency and the payment currency.
payment_currency:
type: string
description: Currency in which the payment is made.
description: Payment details associated with the payroll event. Null if no payment data is available.
title: ReportsPayrollCyclesCycleIdGrossToNetGetResponsesContentApplicationJsonSchemaDataItemsPaymentData
GetsG2NReportDataForAGivenPayrollCycleByItsId-v2026-01-01RequestNotFoundError:
type: object
properties:
code:
type: string
description: Machine-readable error code.
message:
type: string
description: Error message explaining the resource was not found.
title: GetsG2NReportDataForAGivenPayrollCycleByItsId-v2026-01-01RequestNotFoundError
ReportsPayrollCyclesCycleIdGrossToNetGetResponsesContentApplicationJsonSchemaDataItemsItemsItemsCategoryGroup:
type: string
enum:
- ADDITIONS
- DEDUCTIONS
- BENEFITS
- INFOS
- CONTRIBUTIONS
- TOTALS
description: Category group for the reporting label.
title: ReportsPayrollCyclesCycleIdGrossToNetGetResponsesContentApplicationJsonSchemaDataItemsItemsItemsCategoryGroup
GetsG2NReportDataForAGivenPayrollCycleByItsId-v2026-01-01RequestBadRequestError:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/ReportsPayrollCyclesCycleIdGrossToNetGetResponsesContentApplicationJsonSchemaErrorsItems'
title: GetsG2NReportDataForAGivenPayrollCycleByItsId-v2026-01-01RequestBadRequestError
ReportsPayrollCyclesCycleIdGrossToNetGetResponsesContentApplicationJsonSchemaErrorsItems:
type: object
properties:
code:
type: string
description: Machine-readable error code.
message:
type: string
description: Human-readable explanation of the server error.
title: ReportsPayrollCyclesCycleIdGrossToNetGetResponsesContentApplicationJsonSchemaErrorsItems
GpReportsIdGrossToNetGetResponsesContentApplicationJsonSchemaPage:
type: object
properties:
limit:
type: number
format: double
description: Maximum number of rows returned per page.
offset:
type: number
format: double
description: Zero-based offset of the first returned row.
total_rows:
type: number
format: double
description: Total number of rows available across all pages.
required:
- limit
- offset
- total_rows
description: Pagination metadata for the report rows.
title: GpReportsIdGrossToNetGetResponsesContentApplicationJsonSchemaPage
Reports_getsG2NReportDataForAGivenPayrollCycleByItsId-v2026-01-01_Response_200:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ReportsPayrollCyclesCycleIdGrossToNetGetResponsesContentApplicationJsonSchemaDataItems'
description: List of contracts associated with the payroll event.
has_more:
type: boolean
description: Indicates whether more pages are available.
created_at:
type: string
format: date-time
description: Timestamp when the report was generated
updated_at:
type: string
format: date-time
description: Timestamp when the report was updated
next_cursor:
type:
- string
- 'null'
description: Pagination cursor to fetch the next page of results.
items_per_page:
type: integer
description: The number of items per page.
required:
- data
- has_more
- created_at
- updated_at
- next_cursor
- items_per_page
title: Reports_getsG2NReportDataForAGivenPayrollCycleByItsId-v2026-01-01_Response_200
ApiErrorContainer:
type: object
properties:
request:
$ref: '#/components/schemas/ApiErrorRequest'
errors:
type: array
items:
$ref: '#/components/schemas/ApiError'
title: ApiErrorContainer
GetsG2NReportDataForAGivenPayrollCycleByItsId-v2026-01-01RequestInternalServerError:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/ReportsPayrollCyclesCycleIdGrossToNetGetResponsesContentApplicationJsonSchemaErrorsItems'
title: GetsG2NReportDataForAGivenPayrollCycleByItsId-v2026-01-01RequestInternalServerError
ReportsPayrollCyclesCycleIdGrossToNetGetResponsesContentApplicationJsonSchemaDataItems:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/ReportsPayrollCyclesCycleIdGrossToNetGetResponsesContentApplicationJsonSchemaDataItemsItemsItems'
description: List of payroll-related items.
currency:
type: string
description: Currency associated with the payroll event.
contract_oid:
type: string
description: Unique identifier for the contract.
payment_data:
oneOf:
- $ref: '#/components/schemas/ReportsPayrollCyclesCycleIdGrossToNetGetResponsesContentApplicationJsonSchemaDataItemsPaymentData'
- type: 'null'
description: Payment details associated with the payroll event. Null if no payment data is available.
title: ReportsPayrollCyclesCycleIdGrossToNetGetResponsesContentApplicationJsonSchemaDataItems
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
GpReportsIdGrossToNetGetResponsesContentApplicationJsonSchemaRequest:
type: object
properties:
url:
type: string
description: The relative URL of the failed request
code:
type: number
format: double
description: The code of the source handler which produced the returned error
docs:
type: string
description: A link to the official documentation for the requested endpoint resource
method:
type: string
description: The HTTP method of the failed request
source:
type: string
description: The source handler which produced the returned error
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
title: GpReportsIdGrossToNetGetResponsesContentApplicationJsonSchemaRequest
reports_getGPLegalEntityReports_Response_200:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/GpLegalEntitiesLegalEntityIdReportsGetResponsesContentApplicationJsonSchemaDataItems'
required:
- data
title: reports_getGPLegalEntityReports_Response_200
GpLegalEntitiesLegalEntityIdReportsGetResponsesContentApplicationJsonSchemaErrorsItems:
type: object
properties:
path:
type: string
description: The JSON path where input validation failed
message:
type: string
description: A description of the returned error
title: GpLegalEntitiesLegalEntityIdReportsGetResponsesContentApplicationJsonSchemaErrorsItems
ListPayrollEventsByLegalEntityRequestBadRequestError:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/GpLegalEntitiesLegalEntityIdReportsGetResponsesContentApplicationJsonSchemaErrorsItems'
request:
$ref: '#/components/schemas/GpLegalEntitiesLegalEntityIdReportsGetResponsesContentApplicationJsonSchemaRequest'
title: ListPayrollEventsByLegalEntityRequestBadRequestError
securitySchemes:
deelToken:
type: http
scheme: bearer
description: "## Authentication\nThe 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.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)\n"
oauth2:
type: http
scheme: bearer
description: Standard OAuth2 security scheme based on https://swagger.io/docs/specification/authentication/