Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: QuickBooks Online Accounting Profit And Loss Detail API
version: '2026-11-05'
description: QuickBooks Online Accounting API (v3). Entities, reports, query, batch and change-data-capture operations for a QuickBooks Online company (realmId). Generated from the JSON Intuit's API Explorer renders; Intuit publishes no OpenAPI document.
termsOfService: https://developer.intuit.com/app/developer/qbo/docs/legal-agreements/intuit-terms-of-service-for-intuit-developer-services
contact:
name: Intuit Developer Support
url: https://help.developer.intuit.com/s/
x-generated-from: documentation
x-generator: convert-intuit-api-explorer.py (deterministic conversion of the provider's API Explorer JSON; no model)
x-source:
- https://static.developer.intuit.com/JSONObjects/EntityJsonObject_v1.json
- https://static.developer.intuit.com/JSONObjects/CodesModelsJsonObjects_v2.json
- https://static.developer.intuit.com/JSONObjects/TocJsonObject_v1.json
x-generated: '2026-11-05'
servers:
- url: https://quickbooks.api.intuit.com
description: Production
- url: https://sandbox-quickbooks.api.intuit.com
description: Sandbox
security:
- oauth2:
- com.intuit.quickbooks.accounting
tags:
- name: ProfitAndLossDetail
description: The information below provides a reference on how to access the Profit and Loss Detail report from the QuickBooks Online Report Service.
paths:
/v3/company/{realmID}/reports/ProfitAndLossDetail:
get:
operationId: queryProfitAndLossDetail
summary: Query a report
tags:
- ProfitAndLossDetail
x-source: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/profitandlossdetail
x-intuit-operation: GET /v3/company/<realmID>/reports/ProfitAndLossDetail?<name>=<value>[&...]
x-intuit-parameters-note:
- 'Query Parameters: Customize the information returned in the report by specifying query parameters with the query. Listed below are query parameters available for this report.'
parameters:
- name: realmID
in: path
required: true
schema:
type: string
- name: customer
in: query
schema:
type: string
description: 'Filters report contents to include information for specified customers.
Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id, of the Customer object response code.'
- name: account
in: query
schema:
type: string
description: "(source_account_type) Filters report contents to include information for specified accounts. \nSupported Values: One or more comma separated account IDs as returned in the attribute, Account.Id, of the Account object response code."
- name: accounting_method
in: query
schema:
type: string
description: The accounting method used in the report. Supported Values:Cash, Accrual
- name: end_date
in: query
schema:
type: string
description: The end date of the report, in the format YYYY-MM-DD. start_date must be less than end_date. Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used
- name: date_macro
in: query
schema:
type: string
description: 'Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range.
Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year'
- name: adjusted_gain_loss
in: query
schema:
type: string
description: 'Specifies whether unrealized gain and losses are included in the report.
Supported Values: true, false'
- name: class
in: query
schema:
type: string
description: 'Filters report contents to include information for specified classes if so configured in the company file.
Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id, of the Class entity response code.'
- name: sort_by
in: query
schema:
type: string
description: The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.
- name: payment_method
in: query
schema:
type: string
description: 'Filters report contents based on payment method.
Supported Values: Cash, Check, Dinners Club, American Express, Discover, MasterCard, Visa'
- name: sort_order
in: query
schema:
type: string
description: 'The sort order.
Supported Values: ascend, descend'
- name: employee
in: query
schema:
type: string
description: 'Filters report contents to include information for specified employees.
Supported Values: One or more comma separated account IDs as returned in the attribute, Employee.Id, of the Employee entity response code.'
- name: department
in: query
schema:
type: string
description: 'Filters report contents to include information for specified departments if so configured in the company file.
Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.'
- name: vendor
in: query
schema:
type: string
description: 'Filters report contents to include information for specified vendors.
Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id, of the Vendor object response code.'
- name: account_type
in: query
schema:
type: string
description: 'Account type from which transactions are included in the report.
Supported Values: AccountsPayable, AccountsReceivable, Bank, CostOfGoodsSold, CreditCard, Equity, Expense, FixedAsset, Income, LongTermLiability, NonPosting, OtherAsset, OtherCurrentAsset, OtherCurrentLiability, OtherExpense, OtherIncome'
- name: start_date
in: query
schema:
type: string
description: The start date of the report, in the format YYYY-MM-DD. start_date must be less than end_date. Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used
- name: columns
in: query
schema:
type: string
description: "Column types to be shown in the report.\nSupported Values: create_by, create_date, doc_num*, last_mod_by, last_mod_date, memo*, name*, pmt_mthd, split_acc*, tx_date*, txn_type* \n Additional columns with tax enabled: tax_code \n Additional columns with class tracking enabled: klass_name* \n Additional columns with location tracking enabled: dept_name* Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true. Read more about multicurrency support here. \nNonTracking status is enabled for the company if CompanyInfo.NameValue.Name.NonTracking is set to true. Currently enabled for Canadian company, other locales can be added in the future."
responses:
'200':
description: Returns the report object.
content:
application/json:
schema:
$ref: '#/components/schemas/profitandlossdetailquery'
'400':
$ref: '#/components/responses/Fault'
'401':
$ref: '#/components/responses/Fault'
'429':
$ref: '#/components/responses/Throttled'
security:
- oauth2:
- com.intuit.quickbooks.accounting
components:
responses:
Fault:
description: Error. The body carries a Fault element (type ValidationFault, SystemFault, AuthenticationFault or AuthorizationFault) with one or more Error entries (code, element, Message, Detail).
content:
application/json:
schema:
$ref: '#/components/schemas/IntuitFault'
Throttled:
description: 'HTTP 429: the request was throttled. Wait 60 seconds before retrying.'
content:
application/json:
schema:
$ref: '#/components/schemas/IntuitFault'
schemas:
IntuitFault:
type: object
properties:
Fault:
type: object
properties:
type:
type: string
enum:
- ValidationFault
- SystemFault
- AuthenticationFault
- AuthorizationFault
Error:
type: array
items:
type: object
properties:
code:
type: string
element:
type: string
Message:
type: string
Detail:
type: string
time:
type: string
format: date-time
profitandlossdetailquery:
type: object
title: profitandlossdetailquery
properties:
customer:
type: string
description: 'Filters report contents to include information for specified customers.
Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id, of the Customer object response code.'
x-intuit-required: Optional
x-intuit-default: Include data for all customers
account:
type: string
description: "(source_account_type) Filters report contents to include information for specified accounts. \nSupported Values: One or more comma separated account IDs as returned in the attribute, Account.Id, of the Account object response code."
x-intuit-required: Optional
x-intuit-default: Data for all account types
accounting_method:
type: string
description: The accounting method used in the report. Supported Values:Cash, Accrual
x-intuit-required: Optional
x-intuit-default: Method defined in prefrences by the <span class="literal">Preferences.ReportPrefs.ReportBasis</span> attribute
end_date:
type: string
description: The end date of the report, in the format YYYY-MM-DD. start_date must be less than end_date. Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used
x-intuit-required: Optional
date_macro:
type: string
description: 'Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range.
Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year'
x-intuit-required: Optional
x-intuit-default: This Fiscal Year-to-date
adjusted_gain_loss:
type: string
description: 'Specifies whether unrealized gain and losses are included in the report.
Supported Values: true, false'
x-intuit-required: Optional
x-intuit-default: <span class="literal">false</span>
class:
type: string
description: 'Filters report contents to include information for specified classes if so configured in the company file.
Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id, of the Class entity response code.'
x-intuit-required: Optional
x-intuit-default: Include data for all classes
sort_by:
type: string
description: The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.
x-intuit-required: Optional
x-intuit-default: <span class="literal">txn_type</span>
payment_method:
type: string
description: 'Filters report contents based on payment method.
Supported Values: Cash, Check, Dinners Club, American Express, Discover, MasterCard, Visa'
x-intuit-required: Optional
x-intuit-default: Default includes information for all payment methods
sort_order:
type: string
description: 'The sort order.
Supported Values: ascend, descend'
x-intuit-required: Optional
x-intuit-default: <span class="literal">ascend</span>
employee:
type: string
description: 'Filters report contents to include information for specified employees.
Supported Values: One or more comma separated account IDs as returned in the attribute, Employee.Id, of the Employee entity response code.'
x-intuit-required: Optional
x-intuit-default: Include data for all employees
department:
type: string
description: 'Filters report contents to include information for specified departments if so configured in the company file.
Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.'
x-intuit-required: Optional
x-intuit-default: Include data for all departments
vendor:
type: string
description: 'Filters report contents to include information for specified vendors.
Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id, of the Vendor object response code.'
x-intuit-required: Optional
x-intuit-default: Return data for all vendors
account_type:
type: string
description: 'Account type from which transactions are included in the report.
Supported Values: AccountsPayable, AccountsReceivable, Bank, CostOfGoodsSold, CreditCard, Equity, Expense, FixedAsset, Income, LongTermLiability, NonPosting, OtherAsset, OtherCurrentAsset, OtherCurrentLiability, OtherExpense, OtherIncome'
x-intuit-required: Optional
x-intuit-default: All account types
start_date:
type: string
description: The start date of the report, in the format YYYY-MM-DD. start_date must be less than end_date. Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used
x-intuit-required: Optional
columns:
type: string
description: "Column types to be shown in the report.\nSupported Values: create_by, create_date, doc_num*, last_mod_by, last_mod_date, memo*, name*, pmt_mthd, split_acc*, tx_date*, txn_type* \n Additional columns with tax enabled: tax_code \n Additional columns with class tracking enabled: klass_name* \n Additional columns with location tracking enabled: dept_name* Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true. Read more about multicurrency support here. \nNonTracking status is enabled for the company if CompanyInfo.NameValue.Name.NonTracking is set to true. Currently enabled for Canadian company, other locales can be added in the future."
x-intuit-required: Optional
x-intuit-default: columns denoted with *
securitySchemes:
oauth2:
type: oauth2
description: 'Intuit OAuth 2.0 (authorization code). Discovery: https://developer.api.intuit.com/.well-known/openid_configuration'
flows:
authorizationCode:
authorizationUrl: https://appcenter.intuit.com/connect/oauth2
tokenUrl: https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer
refreshUrl: https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer
scopes:
com.intuit.quickbooks.accounting: Grants access to the QuickBooks Online Accounting API, which focuses on accounting data.
com.intuit.quickbooks.payment: Grants access to the QuickBooks Payments API, which focuses on payments processing.
openid: Grants access to OpenID Connect features.
profile: User's given and family names info
email: User's email address
phone: User's phone number
address: User's physical address
x-generated-from: documentation
x-provenance:
method: generated
generated: '2026-11-05'
source: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/account
note: Converted from the JSON the developer.intuit.com API Explorer loads (static.developer.intuit.com/JSONObjects). Intuit publishes no OpenAPI document; this is a faithful machine transformation of its own reference data, graded as generated.