---
title: "Get profit and loss"
method: GET
path: "/companies/{companyId}/data/financials/profitAndLoss"
tags: ["Reports"]
---

# Get profit and loss

`GET /companies/{companyId}/data/financials/profitAndLoss`

## Request

- Base URL: `https://api.codat.io`
- URL: `https://api.codat.io/companies/{companyId}/data/financials/profitAndLoss`
- Auth: API key in header `Authorization`

Gets the latest profit and loss for a company.

## Query parameters

- `periodLength` integer, required
- `periodsToCompare` integer, required
- `startMonth` string: In Codat's data model, dates and times are represented using the <a class="external" href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank">ISO 8601 standard</a>. Date and time fields are formatted as strings; for example: ``` 2020-10-08T22:40:50Z 2021-01-01T00:00:00 ``` When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information: - Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z` - Unqualified local time: `2021-11-15T01:00:00` - UTC time offsets: `2021-11-15T01:00:00-05:00` > Time zones > > Not all dates from Codat will contain information about time zones. > Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced.

## Response `200`

Success

- ProfitAndLossReport: > **Language tip:** Profit and loss statement is also referred to as **income statement** under US GAAP (Generally Accepted Accounting Principles). ## Overview The purpose of a profit and loss report is to present the financial performance of a company over a specified time period. A profit and loss report shows a company's total income and expenses for a specified period of time and whether a profit or loss has been made. > **Profit and loss or balance sheet?** > Profit and loss reports summarise the total revenue, expenses, and profit or loss over a specified time period. A balance sheet report presents all assets, liability, and equity for a given date. **Structure of this report** This report will reflect the structure and line descriptions that the business has set in their own accounting software. **History** By default, Codat pulls (up to) 24 months of profit and loss history for a company. You can adjust this to fetch more history, where available, by updating the `monthsToSync` value for `profitAndLoss` on the [data type settings endpoint](https://docs.codat.io/codat-api#/operations/post-profile-syncSettings). **Want to pull this in a standardised structure?** Our [Enhanced Financials](https://docs.codat.io/lending/features/financial-statements-overview) endpoints provide the same report under standardized headings, allowing you to pull it in the same format for all of your business customers.
  - `reports` ProfitAndLossReport[], required: An array of profit and loss reports.
  - `reportBasis` ReportBasis, required (unresolved $ref)
  - `currency` string: Base currency of the company in which the profit and loss report is presented.
  - `mostRecentAvailableMonth` string: In Codat's data model, dates and times are represented using the <a class="external" href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank">ISO 8601 standard</a>. Date and time fields are formatted as strings; for example: ``` 2020-10-08T22:40:50Z 2021-01-01T00:00:00 ``` When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information: - Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z` - Unqualified local time: `2021-11-15T01:00:00` - UTC time offsets: `2021-11-15T01:00:00-05:00` > Time zones > > Not all dates from Codat will contain information about time zones. > Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced.
  - `earliestAvailableMonth` string: In Codat's data model, dates and times are represented using the <a class="external" href="https://en.wikipedia.org/wiki/ISO_8601" target="_blank">ISO 8601 standard</a>. Date and time fields are formatted as strings; for example: ``` 2020-10-08T22:40:50Z 2021-01-01T00:00:00 ``` When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information: - Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z` - Unqualified local time: `2021-11-15T01:00:00` - UTC time offsets: `2021-11-15T01:00:00-05:00` > Time zones > > Not all dates from Codat will contain information about time zones. > Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced.

## Other responses

- `401`: Your API request was not properly authorized.
- `402`: An account limit has been exceeded. The type of limit is described in the error property: - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io.
- `403`: You are using an outdated API key or a key not associated with that resource.
- `404`: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted.
- `409`: The data type's dataset has not been requested or is still syncing.
- `429`: Too many requests were made in a given amount of time. Wait a short period and then try again.
- `500`: There is a problem with our server. Please try again later.
- `503`: The Codat API is temporarily offline for maintenance. Please try again later.

## Changes

- **2025-01-10** `1cae736ab472`: 2 breaking
  - the response property `currency` became optional for the status `200`
  - the `currency` response property's minLength was decreased from `1` to `0` for the response status `200`
- **2024-02-13** `4bfab0afa6ca`: 8 info
  - added the optional property `validation` to the response with the `401` status
  - added the optional property `validation` to the response with the `402` status
  - added the optional property `validation` to the response with the `403` status
  - added the optional property `validation` to the response with the `404` status
  - …4 more
- **2023-10-23** `948b47a54450`: 4 info
  - added the non-success response with the status `402`
  - added the non-success response with the status `403`
  - added the non-success response with the status `500`
  - added the non-success response with the status `503`

[Operation history](https://skmtc.dev/codatio/apis/accounting-api/changes/companies/:companyId/data/financials/profitAndLoss/get.md)

---

[API](https://skmtc.dev/codatio/apis/accounting-api.md) - [All operations](https://skmtc.dev/codatio/apis/accounting-api/llms.txt) - [OpenAPI document](https://skmtc.dev/codatio/apis/accounting-api/revisions/21d41189c461?raw)
