Fund That Flip Project Expenses: Line Items API

The Project Expenses: Line Items API from Fund That Flip — 2 operation(s) for project expenses: line items.

Operations 4

GET /project/{projectV1}/expense-line-items/list List #
GET /project/{projectV1}/expense-line-items/{expenseUuid} Show #
PATCH /project/{projectV1}/expense-line-items/{expenseUuid} Update #
DELETE /project/{projectV1}/expense-line-items/{expenseUuid} Delete #

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/fund-that-flip-project-expenses-line-items-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

fund-that-flip-project-expenses-line-items-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 'FlipperForce Public Project Expenses: Line Items API'
  version: 0.0.10
  description: '# FlipperForce Public API • Version 1


    ## How do I request an API key?'
servers:
- url: https://tools.flipperforce.com/api/v1
security:
- PublicApiBearerAuth: []
tags:
- name: 'Project Expenses: Line Items'
paths:
  /project/{projectV1}/expense-line-items/list:
    get:
      operationId: v1.project.expense-line-items.list
      description: List Expense line items within a Project.
      summary: List
      tags:
      - 'Project Expenses: Line Items'
      parameters:
      - name: per_page
        in: query
        description: Number of records to return at a time.
        schema:
          type: integer
          default: 20
          minimum: 1
          maximum: 100
      - name: date
        in: query
        description: Expense date in `YYYY-MM-DD` format for exact matching. Supports date ranges via by using operators like `date[gt]` (greater than), `date[gte]` (greater than or equal to), `date[lt]` (less than), and `date[lte]` (less than or equal to).
        schema:
          type: string
      - name: company_uuids[]
        in: query
        description: Company UUID assigned to Expenses. Pass repeated values like `company_uuids[]=uuid-a&company_uuids[]=uuid-b`.
        schema:
          type: array
          items:
            type: string
      - name: expense_account_uuids[]
        in: query
        description: Expense Account UUID assigned to Expenses. Pass repeated values like `expense_account_uuids[]=uuid-a&expense_account_uuids[]=uuid-b`.
        schema:
          type: array
          items:
            type: string
      - name: expense_category_uuids[]
        in: query
        description: Expense Category UUID assigned to Expenses. Pass repeated values like `expense_category_uuids[]=uuid-a&expense_category_uuids[]=uuid-b`.
        schema:
          type: array
          items:
            type: string
      - name: classes[]
        in: query
        description: 'Expense Class. Allowed values: `labor`, `material`, `labor-and-material`, `other`.'
        schema:
          type: array
          items:
            type: string
      - name: has_company
        in: query
        description: Whether to return only Expenses with or without an assigned Company.
        schema:
          type: boolean
      - name: has_expense_account
        in: query
        description: Whether to return only Expenses with or without an assigned Expense Account.
        schema:
          type: boolean
      - name: has_expense_category
        in: query
        description: Whether to return only Expenses with or without an assigned Expense Category.
        schema:
          type: boolean
      - name: has_class
        in: query
        description: Whether to return only Expenses with or without an assigned Class.
        schema:
          type: boolean
      - name: cursor
        in: query
        schema:
          type: string
      - name: projectV1
        in: path
        required: true
        description: Project UUID
        schema:
          type: string
          format: uuid
      - name: date[gt]
        in: query
        description: 'Return Expense Line Items after this date, excluding the given date. Format: `YYYY-MM-DD`.'
        schema:
          type: string
          format: YYYY-MM-DD
      - name: date[gte]
        in: query
        description: 'Return Expense Line Items on or after this date. Format: `YYYY-MM-DD`.'
        schema:
          type: string
          format: YYYY-MM-DD
      - name: date[lt]
        in: query
        description: 'Return Expense Line Items before this date, excluding the given date. Format: `YYYY-MM-DD`.'
        schema:
          type: string
          format: YYYY-MM-DD
      - name: date[lte]
        in: query
        description: 'Return Expense Line Items on or before this date. Format: `YYYY-MM-DD`.'
        schema:
          type: string
          format: YYYY-MM-DD
      responses:
        '200':
          description: Paginated set of `Expense Line Item`
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Expense_Line_Item_List'
                  links:
                    type: object
                    properties:
                      first:
                        type:
                        - string
                        - 'null'
                      last:
                        type:
                        - string
                        - 'null'
                      prev:
                        type:
                        - string
                        - 'null'
                      next:
                        type:
                        - string
                        - 'null'
                    required:
                    - first
                    - last
                    - prev
                    - next
                  meta:
                    type: object
                    properties:
                      path:
                        type:
                        - string
                        - 'null'
                        description: Base path for paginator generated URLs.
                      per_page:
                        type: integer
                        description: Number of items shown per page.
                        minimum: 0
                      next_cursor:
                        type:
                        - string
                        - 'null'
                        description: The "cursor" that points to the next set of items.
                      prev_cursor:
                        type:
                        - string
                        - 'null'
                        description: The "cursor" that points to the previous set of items.
                      total_count:
                        type: integer
                        description: Number of records matching the request filters before pagination.
                    required:
                    - path
                    - per_page
                    - next_cursor
                    - prev_cursor
                    - total_count
                required:
                - data
                - links
                - meta
        '401':
          $ref: '#/components/responses/AuthenticationException'
        '422':
          $ref: '#/components/responses/ValidationException'
        '403':
          description: When the authenticated User Account is forbidden from accessing the content or software features
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable description of why access was not allowed
                  reason:
                    type:
                    - string
                    - 'null'
                    description: 'Machine-readable code for why access was not allowed. Possible values:

                      * `UNKNOWN` - Access Forbidden

                      * `UNSUPPORTED_CLIENT` - Unsupported client.

                      * `SUBSCRIPTION_MISSING` - A Subscription is required. Visit the application website to manage the Subscription.

                      * `SUBSCRIPTION_PAYMENT_DUE` - A paid Subscription is required. Visit the application website to manage the Subscription.

                      * `SUBSCRIPTION_PLAN_UNSUPPORTED_FEATURE` - The Subscription Plan does not support using this Software Feature.

                      * `FEATURE_ACCESS_DENIED` - Your account within this Workspace is not allowed to use this Software Feature. Contact the Workspace Owner to request access.

                      * `PROJECT_ACCESS_DENIED` - Your account is not allowed to access this Project. Contact the Workspace Owner to request access.

                      * `PROJECT_ARCHIVED` - This Project is Archived and cannot be accessed. You must restore this Project to Active Status to use it.

                      * `WORKSPACE_ACCESS_DENIED` - You do not have an account within this Workspace.

                      * `WORKSPACE_SELECTION_MISSING` - You must select a Workspace before making this request.

                      '
                    enum:
                    - UNKNOWN
                    - UNSUPPORTED_CLIENT
                    - SUBSCRIPTION_MISSING
                    - SUBSCRIPTION_PAYMENT_DUE
                    - SUBSCRIPTION_PLAN_UNSUPPORTED_FEATURE
                    - FEATURE_ACCESS_DENIED
                    - PROJECT_ACCESS_DENIED
                    - PROJECT_ARCHIVED
                    - WORKSPACE_ACCESS_DENIED
                    - WORKSPACE_SELECTION_MISSING
                    - null
  /project/{projectV1}/expense-line-items/{expenseUuid}:
    get:
      operationId: v1.project.expense-line-items.show
      description: Retrieve a single Expense line item.
      summary: Show
      tags:
      - 'Project Expenses: Line Items'
      parameters:
      - name: projectV1
        in: path
        required: true
        description: Project UUID
        schema:
          type: string
          format: uuid
      - name: expenseUuid
        in: path
        required: true
        description: Expense UUID
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: '`Expense Line Item`'
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Expense_Line_Item'
                required:
                - data
        '401':
          $ref: '#/components/responses/AuthenticationException'
        '403':
          description: When the authenticated User Account is forbidden from accessing the content or software features
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable description of why access was not allowed
                  reason:
                    type:
                    - string
                    - 'null'
                    description: 'Machine-readable code for why access was not allowed. Possible values:

                      * `UNKNOWN` - Access Forbidden

                      * `UNSUPPORTED_CLIENT` - Unsupported client.

                      * `SUBSCRIPTION_MISSING` - A Subscription is required. Visit the application website to manage the Subscription.

                      * `SUBSCRIPTION_PAYMENT_DUE` - A paid Subscription is required. Visit the application website to manage the Subscription.

                      * `SUBSCRIPTION_PLAN_UNSUPPORTED_FEATURE` - The Subscription Plan does not support using this Software Feature.

                      * `FEATURE_ACCESS_DENIED` - Your account within this Workspace is not allowed to use this Software Feature. Contact the Workspace Owner to request access.

                      * `PROJECT_ACCESS_DENIED` - Your account is not allowed to access this Project. Contact the Workspace Owner to request access.

                      * `PROJECT_ARCHIVED` - This Project is Archived and cannot be accessed. You must restore this Project to Active Status to use it.

                      * `WORKSPACE_ACCESS_DENIED` - You do not have an account within this Workspace.

                      * `WORKSPACE_SELECTION_MISSING` - You must select a Workspace before making this request.

                      '
                    enum:
                    - UNKNOWN
                    - UNSUPPORTED_CLIENT
                    - SUBSCRIPTION_MISSING
                    - SUBSCRIPTION_PAYMENT_DUE
                    - SUBSCRIPTION_PLAN_UNSUPPORTED_FEATURE
                    - FEATURE_ACCESS_DENIED
                    - PROJECT_ACCESS_DENIED
                    - PROJECT_ARCHIVED
                    - WORKSPACE_ACCESS_DENIED
                    - WORKSPACE_SELECTION_MISSING
                    - null
    patch:
      operationId: v1.project.expense-line-items.update
      description: Update a single Expense line item and return the parent Expense Transaction.
      summary: Update
      tags:
      - 'Project Expenses: Line Items'
      parameters:
      - name: projectV1
        in: path
        required: true
        description: Project UUID
        schema:
          type: string
          format: uuid
      - name: expenseUuid
        in: path
        required: true
        description: Expense UUID
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Update_Expense_Line_Item_Request'
      responses:
        '200':
          description: '`Expense Transaction`'
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Expense_Transaction'
                required:
                - data
        '401':
          $ref: '#/components/responses/AuthenticationException'
        '422':
          $ref: '#/components/responses/ValidationException'
        '403':
          description: When the authenticated User Account is forbidden from accessing the content or software features
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable description of why access was not allowed
                  reason:
                    type:
                    - string
                    - 'null'
                    description: 'Machine-readable code for why access was not allowed. Possible values:

                      * `UNKNOWN` - Access Forbidden

                      * `UNSUPPORTED_CLIENT` - Unsupported client.

                      * `SUBSCRIPTION_MISSING` - A Subscription is required. Visit the application website to manage the Subscription.

                      * `SUBSCRIPTION_PAYMENT_DUE` - A paid Subscription is required. Visit the application website to manage the Subscription.

                      * `SUBSCRIPTION_PLAN_UNSUPPORTED_FEATURE` - The Subscription Plan does not support using this Software Feature.

                      * `FEATURE_ACCESS_DENIED` - Your account within this Workspace is not allowed to use this Software Feature. Contact the Workspace Owner to request access.

                      * `PROJECT_ACCESS_DENIED` - Your account is not allowed to access this Project. Contact the Workspace Owner to request access.

                      * `PROJECT_ARCHIVED` - This Project is Archived and cannot be accessed. You must restore this Project to Active Status to use it.

                      * `WORKSPACE_ACCESS_DENIED` - You do not have an account within this Workspace.

                      * `WORKSPACE_SELECTION_MISSING` - You must select a Workspace before making this request.

                      '
                    enum:
                    - UNKNOWN
                    - UNSUPPORTED_CLIENT
                    - SUBSCRIPTION_MISSING
                    - SUBSCRIPTION_PAYMENT_DUE
                    - SUBSCRIPTION_PLAN_UNSUPPORTED_FEATURE
                    - FEATURE_ACCESS_DENIED
                    - PROJECT_ACCESS_DENIED
                    - PROJECT_ARCHIVED
                    - WORKSPACE_ACCESS_DENIED
                    - WORKSPACE_SELECTION_MISSING
                    - null
    delete:
      operationId: v1.project.expense-line-items.delete
      description: 'Delete a single Expense line item and return the parent Expense Transaction.

        If the deleted Expense was the Expense Transaction''s final line item and the

        Expense Transaction has no Receipt, the Expense Transaction is also deleted and a

        tombstone response is returned.'
      summary: Delete
      tags:
      - 'Project Expenses: Line Items'
      parameters:
      - name: projectV1
        in: path
        required: true
        description: Project UUID
        schema:
          type: string
          format: uuid
      - name: expenseUuid
        in: path
        required: true
        description: Expense UUID
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: '`Expense Transaction`


            `Expense Line Item Delete Tombstone`'
          content:
            application/json:
              schema:
                anyOf:
                - type: object
                  properties:
                    data:
                      $ref: '#/components/schemas/Expense_Transaction'
                  required:
                  - data
                - type: object
                  properties:
                    data:
                      $ref: '#/components/schemas/Expense_Line_Item_Delete_Tombstone'
                  required:
                  - data
        '401':
          $ref: '#/components/responses/AuthenticationException'
        '403':
          description: When the authenticated User Account is forbidden from accessing the content or software features
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Human-readable description of why access was not allowed
                  reason:
                    type:
                    - string
                    - 'null'
                    description: 'Machine-readable code for why access was not allowed. Possible values:

                      * `UNKNOWN` - Access Forbidden

                      * `UNSUPPORTED_CLIENT` - Unsupported client.

                      * `SUBSCRIPTION_MISSING` - A Subscription is required. Visit the application website to manage the Subscription.

                      * `SUBSCRIPTION_PAYMENT_DUE` - A paid Subscription is required. Visit the application website to manage the Subscription.

                      * `SUBSCRIPTION_PLAN_UNSUPPORTED_FEATURE` - The Subscription Plan does not support using this Software Feature.

                      * `FEATURE_ACCESS_DENIED` - Your account within this Workspace is not allowed to use this Software Feature. Contact the Workspace Owner to request access.

                      * `PROJECT_ACCESS_DENIED` - Your account is not allowed to access this Project. Contact the Workspace Owner to request access.

                      * `PROJECT_ARCHIVED` - This Project is Archived and cannot be accessed. You must restore this Project to Active Status to use it.

                      * `WORKSPACE_ACCESS_DENIED` - You do not have an account within this Workspace.

                      * `WORKSPACE_SELECTION_MISSING` - You must select a Workspace before making this request.

                      '
                    enum:
                    - UNKNOWN
                    - UNSUPPORTED_CLIENT
                    - SUBSCRIPTION_MISSING
                    - SUBSCRIPTION_PAYMENT_DUE
                    - SUBSCRIPTION_PLAN_UNSUPPORTED_FEATURE
                    - FEATURE_ACCESS_DENIED
                    - PROJECT_ACCESS_DENIED
                    - PROJECT_ARCHIVED
                    - WORKSPACE_ACCESS_DENIED
                    - WORKSPACE_SELECTION_MISSING
                    - null
components:
  schemas:
    Expense_Transaction:
      type: object
      properties:
        uuid:
          type: string
          description: Public identifier.
        created_at:
          type:
          - string
          - 'null'
          description: 'Timestamp when Expense Transaction was created in ISO 8601 Zulu format with microseconds.

            Example: `2026-06-07T16:20:00.123456Z`'
        updated_at:
          type:
          - string
          - 'null'
          description: 'Timestamp when Expense Transaction was last changed in ISO 8601 Zulu format with microseconds.

            Example: `2026-06-07T16:20:00.123456Z`'
        sequence_number:
          type:
          - integer
          - 'null'
          description: Project-scoped sequence number shown in the web app as `T#`.
        receipt_uuid:
          type:
          - string
          - 'null'
          description: Receipt UUID associated with this Expense Transaction.
        subtotal:
          type: number
          description: Sum of Expense amounts before tax, in dollars. Such as `1234.56`
        total_tax:
          type: number
          description: Sum of tax values from all Expenses, in dollars. Such as `1234.56`
        grand_total:
          type: number
          description: Sum of Expense totals including tax, in dollars. Such as `1234.56`
        expenses:
          type: array
          description: Expense line items belonging to this Expense Transaction.
          items:
            $ref: '#/components/schemas/Expense_Line_Item'
      required:
      - uuid
      - created_at
      - updated_at
      - sequence_number
      - receipt_uuid
      - subtotal
      - total_tax
      - grand_total
      - expenses
      title: Expense Transaction
    Expense_Line_Item_Delete_Tombstone:
      type: object
      properties:
        deleted_transaction_uuid:
          type: string
          description: UUID of the Expense Transaction deleted because its final Expense was deleted.
        deleted_expense_uuid:
          type: string
          description: UUID of the final Expense deleted from the Transaction.
        message:
          type: string
          description: Human-readable explanation for why the parent Expense Transaction was deleted.
      required:
      - deleted_transaction_uuid
      - deleted_expense_uuid
      - message
      title: Expense Line Item Delete Tombstone
    Expense_Line_Item:
      type: object
      properties:
        uuid:
          type: string
          description: Public identifier.
        created_at:
          type:
          - string
          - 'null'
          description: 'Timestamp when Expense was created in ISO 8601 Zulu format with microseconds.

            Example: `2026-06-07T16:20:00.123456Z`'
        updated_at:
          type:
          - string
          - 'null'
          description: 'Timestamp when Expense was last changed in ISO 8601 Zulu format with microseconds.

            Example: `2026-06-07T16:20:00.123456Z`'
        transaction_uuid:
          type:
          - string
          - 'null'
          description: Parent Expense Transaction public identifier.
        date:
          type:
          - string
          - 'null'
          description: Date this Expense was incurred in `YYYY-MM-DD` format.
        invoice_number:
          type:
          - string
          - 'null'
          description: Invoice number entered for this Expense.
        name:
          type: string
          description: Description of the purchased item or service.
        class:
          type:
          - string
          - 'null'
          description: 'Expense classification. One of: `labor`, `material`, `labor-and-material`, `other`.'
        amount:
          type:
          - number
          - 'null'
          description: Expense amount BEFORE tax, in dollars. Such as `1234.56`
        tax:
          type:
          - number
          - 'null'
          description: Tax allocated to this Expense, in dollars. Such as `1234.56`. This field is read-only and can only be written via the parent Transaction's `tax_total` field.
        total:
          type:
          - number
          - 'null'
          description: Calculated automatically as amount plus tax, in dollars. Such as `1234.56`. This field is read-only and automatically calculated.
        expense_account:
          type:
          - object
          - 'null'
          description: Expense Account assigned to this Expense.
          properties:
            uuid:
              type: string
            name:
              type: string
          required:
          - uuid
          - name
        company:
          type:
          - object
          - 'null'
          description: Company/vendor assigned to this Expense.
          properties:
            uuid:
              type: string
            name:
              type: string
          required:
          - uuid
          - name
        expense_category:
          type:
          - object
          - 'null'
          description: Expense Category assigned to this Expense.
          properties:
            uuid:
              type: string
            name:
              type: string
          required:
          - uuid
          - name
      required:
      - uuid
      - created_at
      - updated_at
      - transaction_uuid
      - date
      - invoice_number
      - name
      - class
      - amount
      - tax
      - total
      - expense_account
      - company
      - expense_category
      title: Expense Line Item
    Update_Expense_Line_Item_Request:
      type: object
      properties:
        total_tax:
          type:
          - number
          - 'null'
          description: Total tax for the parent Transaction. When omitted, current Transaction tax is preserved and redistributed.
        date:
          type:
          - string
          - 'null'
          description: Date this Expense was incurred in `YYYY-MM-DD` format.
        invoice_number:
          type:
          - string
          - 'null'
          description: Invoice number entered for this Expense.
        expense_account_uuid:
          type:
          - string
          - 'null'
          description: Expense Account UUID assigned to this Expense.
        company_uuid:
          type:
          - string
          - 'null'
          description: Company/vendor UUID assigned to this Expense.
        expense_category_uuid:
          type:
          - string
          - 'null'
          description: Expense Category UUID assigned to this Expense.
        name:
          type: string
          description: Description of the purchased item or service. Omit the field to leave the name unchanged, but when present must contain a name.
        class:
          type:
          - string
          - 'null'
          description: Expense classification.
        amount:
          type:
          - number
          - 'null'
          description: Expense amount BEFORE tax, in dollars. Such as `1234.56`
      title: Update Expense Line Item Request
    Expense_Line_Item_List:
      type: object
      properties:
        totals:
          type: object
          description: Sums across all Expense Line Items matching the request filters, before pagination.
          properties:
            amount:
              type: number
            tax:
              type: number
            total:
              type: number
          required:
          - amount
          - tax
          - total
        expenses:
          type: array
          description: Current page of Expense Line Items.
          items:
            $ref: '#/components/schemas/Expense_Line_Item'
      required:
      - totals
      - expenses
      title: Expense Line Item List
  responses:
    AuthenticationException:
      description: Unauthenticated
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Error overview.
            required:
            - message
    ValidationException:
      description: Validation error
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Errors overview.
              errors:
                type: object
                description: A detailed description of each field that failed validation.
                additionalProperties:
                  type: array
                  items:
                    type: string
            required:
            - message
            - errors
  securitySchemes:
    PublicApiBearerAuth:
      type: http
      description: 'Use the Public API key provided by FlipperForce as a Bearer token. Send the key exactly as provided in the Authorization header: `Authorization: Bearer <api-key>`.'
      scheme: bearer
      bearerFormat: FlipperForce Public API key