Puzzle Reports API
The Reports API from Puzzle — 7 operation(s) for reports.
The Reports API from Puzzle — 7 operation(s) for 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/puzzle-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: Puzzle Reports API
version: '1.0'
description: 'Operations tagged Reports across 2 of this provider''s published API definitions: puzzle-openapi-original.json, puzzle-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://staging.southparkdata.com/rest/v0
- url: https://staging.southparkdata.com
description: Documented Puzzle API server (Puzzle's underlying data platform is named South Park Data). Confirmed from the public API reference.
tags:
- name: Reports
paths:
/company/{id}/vendor-spending-report:
get:
operationId: vendorSpendingReportApi
summary: Get Vendor Spending Report
description: 'Retrieves a report of the company''s vendor spending.
Required scope: read:company'
tags:
- Reports
parameters:
- name: id
in: path
required: true
description: The company ID
schema:
type: string
minLength: 1
description: Partner-facing external identifier
- name: startDate
in: query
required: true
schema:
type: string
pattern: ^\d{4}-\d{2}$
description: Calendar month, YYYY-MM
- name: endDate
in: query
required: true
schema:
type: string
pattern: ^\d{4}-\d{2}$
description: Calendar month, YYYY-MM
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
title:
type: string
columns:
type: array
items:
type: string
rows:
type: array
items:
type: array
items:
type: string
required:
- title
- columns
- rows
servers:
- url: https://staging.southparkdata.com/rest/v0
/company/{id}/financialStatements:
post:
operationId: financialStatements
summary: Get Financial Statements
description: 'Retrieve the financial statements of a company. Currently supports the Cash Activity Report, Income Statement, and Balance Sheet.
Required scope: read:company'
tags:
- Reports
parameters:
- name: id
in: path
required: true
description: The company ID
schema:
type: string
minLength: 1
description: Partner-facing external identifier
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
basis:
type: string
enum:
- cash
- accrual
key:
type: string
enum:
- income_statement
- cash_activity_report
- trial_balance
- balance_sheet
intervals:
type: array
items:
type: object
properties:
key:
type: string
periods:
type: array
items:
type: string
required:
- key
- periods
required:
- key
- intervals
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
lines:
type: array
items:
type: object
properties:
id:
type: string
minLength: 1
description: Partner-facing external identifier
parentId:
type:
- string
- 'null'
childIds:
type: array
items:
type: string
depth:
type:
- integer
- 'null'
name:
type: string
type:
type: string
enum:
- account
- rollup
- parent_account_group
- counterparty
- accrualRevenueSource
- department
- event
- revenueSource
amountType:
type:
- string
- 'null'
enum:
- credit
- debit
accountNumber:
type:
- string
- 'null'
accountId:
type:
- string
- 'null'
minLength: 1
description: Partner-facing external identifier
intervals:
type: array
items:
type: object
properties:
amount:
type: string
minLength: 1
description: Arbitrary-precision decimal, serialized as a string
required:
- amount
required:
- id
- parentId
- childIds
- depth
- name
- type
- amountType
- accountNumber
- accountId
- intervals
properties:
type: object
properties:
basis:
type: string
enum:
- cash
- accrual
currency:
type: string
minLength: 3
maxLength: 3
description: ISO 4217 currency code
key:
type: string
enum:
- income_statement
- cash_activity_report
- trial_balance
- balance_sheet
name:
type: string
intervals:
type: array
items:
type: object
properties:
key:
type: string
periods:
type: array
items:
type: string
required:
- key
- periods
required:
- basis
- currency
- key
- name
- intervals
required:
- lines
- properties
servers:
- url: https://staging.southparkdata.com/rest/v0
/company/{id}/statements/profitLoss:
get:
operationId: incomeStatementApi
summary: Get Income Statement
description: 'Retrieves the income statement for a company with flexible filtering options.
This endpoint returns income statement data broken down by the specified time interval (month, quarter, or year). You can filter results by departments and locations.
Required scope: read:company'
tags:
- Reports
parameters:
- name: id
in: path
required: true
description: The company ID
schema:
type: string
minLength: 1
description: Partner-facing external identifier
- name: basis
in: query
required: false
schema:
type: string
enum:
- cash
- accrual
description: The value is normalized before matching, so any casing that maps onto a listed value is accepted.
- name: viewBy
in: query
required: false
schema:
type: string
enum:
- month
- quarter
- year
- totals
- departments
description: The value is normalized before matching, so any casing that maps onto a listed value is accepted.
- name: startPeriod
in: query
required: false
schema:
type: string
minLength: 1
- name: endPeriod
in: query
required: false
schema:
type: string
minLength: 1
- name: dateMacro
in: query
required: false
schema:
type: string
enum:
- CurrentMonth
- LastFullMonth
- LastThreeMonths
- LastThreeFullMonths
- CurrentYear
- LastYear
- QuarterToDate
- YearToDate
- name: departments
in: query
required: false
schema:
anyOf:
- type: string
- type: array
items:
type: string
- name: locations
in: query
required: false
schema:
anyOf:
- type: string
- type: array
items:
type: string
- name: expandCounterparties
in: query
required: false
schema:
type: string
description: Boolean flag; "true" enables, any other value disables
- name: expandRevenueSources
in: query
required: false
schema:
type: string
description: Boolean flag; "true" enables, any other value disables
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
columns:
type: array
items:
type: object
properties:
key:
type: string
label:
type: string
dateRange:
type:
- object
- 'null'
properties:
start:
type: string
minLength: 1
description: Calendar date, YYYY-MM-DD
end:
type: string
minLength: 1
description: Calendar date, YYYY-MM-DD
required:
- start
- end
required:
- key
- label
lines:
type: array
items:
type: object
properties:
id:
type: string
minLength: 1
description: Partner-facing external identifier
title:
type: string
values:
type: array
items:
type: object
properties:
balance:
type: string
minLength: 1
description: Arbitrary-precision decimal, serialized as a string
columnKey:
type: string
required:
- balance
- columnKey
accountId:
type:
- string
- 'null'
minLength: 1
description: Partner-facing external identifier
accountNumber:
type:
- string
- 'null'
parentId:
type:
- string
- 'null'
minLength: 1
description: Partner-facing external identifier
childIds:
type: array
items:
type: string
minLength: 1
description: Partner-facing external identifier
lineType:
type: string
enum:
- account
- rollup
- parent_account_group
- counterparty
- accrualRevenueSource
- department
- event
- revenueSource
metadata:
type:
- object
- 'null'
properties:
counterpartyName:
type:
- string
- 'null'
counterpartyType:
type:
- string
- 'null'
enum:
- customer
- vendor
- employee
- contractor
revenueSourceType:
type:
- string
- 'null'
enum:
- transaction
- invoice
- schedule
- mje
- other
- subledger
required:
- counterpartyName
- counterpartyType
- revenueSourceType
required:
- id
- title
- values
- childIds
- lineType
required:
- columns
- lines
servers:
- url: https://staging.southparkdata.com/rest/v0
/company/{id}/statements/profitLoss/interop:
get:
operationId: incomeStatementInteropFormatApi
summary: Get Income Statement (Interop Format)
description: 'Retrieves the income statement in QuickBooks-compatible format with hierarchical row structure.
This endpoint returns income statement data in the same format as QuickBooks Online API, with nested sections and summary rows. Supports filtering by accounting method, and department.
Required scope: read:company'
tags:
- Reports
parameters:
- name: id
in: path
required: true
description: The company ID
schema:
type: string
minLength: 1
description: Partner-facing external identifier
- name: startPeriod
in: query
required: true
schema:
type: string
minLength: 1
- name: endPeriod
in: query
required: true
schema:
type: string
minLength: 1
- name: basis
in: query
required: false
schema:
type: string
enum:
- cash
- accrual
- name: departments
in: query
required: false
schema:
anyOf:
- type: string
- type: array
items:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
Header:
type: object
properties:
Time:
type: string
ReportName:
type: string
StartPeriod:
type: string
EndPeriod:
type: string
Currency:
type: string
ReportBasis:
type: string
required:
- Time
- ReportName
- StartPeriod
- EndPeriod
- Currency
- ReportBasis
Columns:
type: array
items:
type: object
properties:
ColTitle:
type: string
ColType:
type: string
required:
- ColTitle
- ColType
Rows:
type: object
properties:
Row:
type: array
items:
$ref: '#/components/schemas/InteropReportRow'
required:
- Row
required:
- Header
- Columns
- Rows
servers:
- url: https://staging.southparkdata.com/rest/v0
/company/{id}/statements/balanceSheet:
get:
operationId: balanceSheetStatementApi
summary: Get Balance Sheet Statement
description: 'Retrieves the balance sheet statement for a company with flexible filtering options.
This endpoint returns balance sheet statement data broken down by the specified time interval (month, quarter, or year).
Required scope: read:company'
tags:
- Reports
parameters:
- name: id
in: path
required: true
description: The company ID
schema:
type: string
minLength: 1
description: Partner-facing external identifier
- name: basis
in: query
required: false
schema:
type: string
enum:
- cash
- accrual
description: The value is normalized before matching, so any casing that maps onto a listed value is accepted.
- name: viewBy
in: query
required: false
schema:
type: string
enum:
- month
- quarter
- year
- totals
- departments
description: The value is normalized before matching, so any casing that maps onto a listed value is accepted.
- name: startPeriod
in: query
required: false
schema:
type: string
minLength: 1
- name: endPeriod
in: query
required: false
schema:
type: string
minLength: 1
- name: dateMacro
in: query
required: false
schema:
type: string
enum:
- CurrentMonth
- LastFullMonth
- LastThreeMonths
- LastThreeFullMonths
- CurrentYear
- LastYear
- QuarterToDate
- YearToDate
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
columns:
type: array
items:
type: object
properties:
key:
type: string
label:
type: string
dateRange:
type:
- object
- 'null'
properties:
start:
type: string
minLength: 1
description: Calendar date, YYYY-MM-DD
end:
type: string
minLength: 1
description: Calendar date, YYYY-MM-DD
required:
- start
- end
required:
- key
- label
lines:
type: array
items:
type: object
properties:
id:
type: string
minLength: 1
description: Partner-facing external identifier
title:
type: string
values:
type: array
items:
type: object
properties:
balance:
type: string
minLength: 1
description: Arbitrary-precision decimal, serialized as a string
columnKey:
type: string
required:
- balance
- columnKey
accountId:
type:
- string
- 'null'
minLength: 1
description: Partner-facing external identifier
accountNumber:
type:
- string
- 'null'
parentId:
type:
- string
- 'null'
minLength: 1
description: Partner-facing external identifier
childIds:
type: array
items:
type: string
minLength: 1
description: Partner-facing external identifier
lineType:
type: string
enum:
- account
- rollup
- parent_account_group
- counterparty
- accrualRevenueSource
- department
- event
- revenueSource
metadata:
type:
- object
- 'null'
properties:
counterpartyName:
type:
- string
- 'null'
counterpartyType:
type:
- string
- 'null'
enum:
- customer
- vendor
- employee
- contractor
revenueSourceType:
type:
- string
- 'null'
enum:
- transaction
- invoice
- schedule
- mje
- other
- subledger
required:
- counterpartyName
- counterpartyType
- revenueSourceType
required:
- id
- title
- values
- childIds
- lineType
required:
- columns
- lines
servers:
- url: https://staging.southparkdata.com/rest/v0
/company/{id}/statements/balanceSheet/interop:
get:
operationId: balanceSheetInteropFormatApi
summary: Get Balance Sheet (Interop Format)
description: 'Retrieves the balance sheet in QuickBooks-compatible format with hierarchical row structure.
This endpoint returns balance sheet data in the same format as QuickBooks Online API, with nested sections and summary rows. Supports filtering by accounting method, and department.
Required scope: read:company'
tags:
- Reports
parameters:
- name: id
in: path
required: true
description: The company ID
schema:
type: string
minLength: 1
description: Partner-facing external identifier
- name: startPeriod
in: query
required: true
schema:
type: string
minLength: 1
- name: endPeriod
in: query
required: true
schema:
type: string
minLength: 1
- name: basis
in: query
required: false
schema:
type: string
enum:
- cash
- accrual
- name: departments
in: query
required: false
schema:
anyOf:
- type: string
- type: array
items:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
Header:
type: object
properties:
Time:
type: string
ReportName:
type: string
StartPeriod:
type: string
EndPeriod:
type: string
Currency:
type: string
ReportBasis:
type: string
required:
- Time
- ReportName
- StartPeriod
- EndPeriod
- Currency
- ReportBasis
Columns:
type: array
items:
type: object
properties:
ColTitle:
type: string
ColType:
type: string
required:
- ColTitle
- ColType
Rows:
type: object
properties:
Row:
type: array
items:
$ref: '#/components/schemas/InteropReportRow'
required:
- Row
required:
- Header
- Columns
- Rows
servers:
- url: https://staging.southparkdata.com/rest/v0
/company/{id}/statements/cashActivity:
get:
operationId: cashActivityStatementApi
summary: Get Cash Activity Statement
description: "Retrieves the cash activity statement for a company with flexible filtering options.\n\nThis endpoint returns cash activity statement data broken down by the specified time interval (month, quarter, or year). \n\nRequired scope: read:company"
tags:
- Reports
parameters:
- name: id
in: path
required: true
description: The company ID
schema:
type: string
minLength: 1
description: Partner-facing external identifier
- name: viewBy
in: query
required: false
schema:
type: string
enum:
- month
- quarter
- year
- totals
- departments
description: The value is normalized before matching, so any casing that maps onto a listed value is accepted.
- name: startPeriod
in: query
required: false
schema:
type: string
minLength: 1
- name: endPeriod
in: query
required: false
schema:
type: string
minLength: 1
- name: dateMacro
in: query
required: false
schema:
type: string
enum:
- CurrentMonth
- LastFullMonth
- LastThreeMonths
- LastThreeFullMonths
- CurrentYear
- LastYear
- QuarterToDate
- YearToDate
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
columns:
type: array
items:
type: object
properties:
key:
type: string
label:
type: string
dateRange:
type:
- object
- 'null'
properties:
start:
type: string
minLength: 1
description: Calendar date, YYYY-MM-DD
end:
type: string
minLength: 1
description: Calendar date, YYYY-MM-DD
required:
- start
- end
required:
- key
- label
lines:
type: array
items:
type: object
properties:
id:
type: string
minLength: 1
description: Partner-facing external identifier
title:
type: string
valu
# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/puzzle/refs/heads/main/openapi/puzzle-reports-api-openapi.yml