Puzzle Reports API

The Reports API from Puzzle — 7 operation(s) for reports.

Operations 9

GET /company/{id}/vendor-spending-report Get Vendor Spending Report #
POST /company/{id}/financialStatements Get Financial Statements #
GET /company/{id}/statements/profitLoss Get Income Statement #
GET /company/{id}/statements/profitLoss/interop Get Income Statement (Interop Format) #
GET /company/{id}/statements/balanceSheet Get Balance Sheet Statement #
GET /company/{id}/statements/balanceSheet/interop Get Balance Sheet (Interop Format) #
GET /company/{id}/statements/cashActivity Get Cash Activity Statement #
GET /rest/v0/company/{id}/reports/income-statement Get income statement #
GET /rest/v0/company/{id}/reports/balance-sheet Get balance sheet #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/puzzle-reports-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

puzzle-reports-api-openapi.yml Raw ↑
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