Heron Positions API

The Positions API from Heron — 2 operation(s) for positions.

Operations 2

GET /api/end_users/{end_user_id_or_heron_id}/positions Get positions summary for end user
GET /api/positions/{position_heron_id}/transactions Get transactions for a specific position #

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/heron-positions-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

heron-positions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@herondata.io
    name: Support
  title: Heron Data Positions API
  version: '2021-07-19'
servers:
- description: Production
  url: https://app.herondata.io
security:
- ApiKeyAuth:
  - key_XXX
tags:
- name: Positions
paths:
  /api/end_users/{end_user_id_or_heron_id}/positions:
    get:
      description: Returns positions with calculated metrics for an end user, optionally filtered by account IDs
      parameters:
      - description: The end user ID or heron ID
        in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      - description: Account IDs to filter positions by
        in: query
        name: account_ids
        schema:
          items:
            type: string
          type: array
      - description: If true, include investment/repayment/reversal transactions on each position
        in: query
        name: include_transactions
        schema:
          default: false
          type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EndUserPositions'
          description: Positions summary retrieved successfully
        '404':
          description: End user not found
      summary: Get positions summary for end user
      tags:
      - Positions
  /api/positions/{position_heron_id}/transactions:
    get:
      description: Returns investment and repayment transactions for a specific position
      operationId: getPositionTransactions
      parameters:
      - description: The position heron ID
        in: path
        name: position_heron_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PositionTransactions'
          description: Position transactions retrieved successfully
        '404':
          description: Position not found
      summary: Get transactions for a specific position
      tags:
      - Positions
components:
  schemas:
    EndUserPositions:
      properties:
        llm_summary:
          type:
          - string
          - 'null'
        positions:
          items:
            $ref: '#/components/schemas/PositionSummary'
          type: array
        total_holdback_percentage:
          description: Current positions' expected monthly repayments divided by average monthly true revenue, as a percentage
          type:
          - number
          - 'null'
      type: object
    PositionTransaction:
      properties:
        amount:
          $ref: '#/components/schemas/Money'
        description:
          type: string
        heron_id:
          type: string
        timestamp:
          format: date-time
          type: string
      type: object
    PositionSummary:
      properties:
        funder_holdback_percentage:
          description: Funder expected monthly repayments divided by average monthly true revenue, as a percentage
          type:
          - number
          - 'null'
        group:
          type:
          - string
          - 'null'
        heron_id:
          type: string
        holdback_percentage:
          description: Position expected monthly repayment divided by average monthly true revenue, as a percentage
          type:
          - number
          - 'null'
        inflow_metrics:
          allOf:
          - $ref: '#/components/schemas/PositionInflowMetrics'
        investment_transactions:
          description: Only populated when include_transactions=true is passed on the request
          items:
            $ref: '#/components/schemas/PositionTransaction'
          type:
          - array
          - 'null'
        is_active:
          type: boolean
        is_renewal:
          type:
          - boolean
          - 'null'
        llm_summary:
          type:
          - string
          - 'null'
        merchant:
          type:
          - string
          - 'null'
        missed_payments:
          items:
            format: date
            type: string
          type:
          - array
          - 'null'
        nsf_fees:
          items:
            $ref: '#/components/schemas/RelatedPayment'
          type:
          - array
          - 'null'
        outflow_metrics:
          allOf:
          - $ref: '#/components/schemas/PositionOutflowMetrics'
        parent_position_heron_id:
          type:
          - string
          - 'null'
        product_type:
          enum:
          - mca
          - line_of_credit
          - reverse_consolidation
          - revenue_share
          - null
          type:
          - string
          - 'null'
        repayment_transactions:
          description: Only populated when include_transactions=true is passed on the request
          items:
            $ref: '#/components/schemas/PositionTransaction'
          type:
          - array
          - 'null'
        reversal_transactions:
          description: Only populated when include_transactions=true is passed on the request
          items:
            $ref: '#/components/schemas/PositionTransaction'
          type:
          - array
          - 'null'
        reversals:
          items:
            $ref: '#/components/schemas/RelatedPayment'
          type:
          - array
          - 'null'
        servicing_fees:
          items:
            $ref: '#/components/schemas/RelatedPayment'
          type:
          - array
          - 'null'
        status:
          enum:
          - none
          - active
          - inactive
          - defaulted
          - potential_default
          - renewal_active
          - renewal_inactive
          - new_position
          - likely_paid_off
          type: string
        stop_payments:
          items:
            $ref: '#/components/schemas/RelatedPayment'
          type:
          - array
          - 'null'
      type: object
    PositionInflowMetrics:
      properties:
        count:
          type: integer
        max_amount:
          allOf:
          - $ref: '#/components/schemas/Money'
        max_timestamp:
          format: date-time
          type:
          - string
          - 'null'
        min_amount:
          allOf:
          - $ref: '#/components/schemas/Money'
        min_timestamp:
          format: date-time
          type:
          - string
          - 'null'
        total_amount:
          allOf:
          - $ref: '#/components/schemas/Money'
      type: object
    PositionOutflowMetrics:
      properties:
        changed_in_last_90_days:
          type: boolean
        confidence_reasons:
          description: Machine-readable reasons for the estimated confidence band
          items:
            type: string
          type: array
        count:
          type: integer
        duration_days:
          type:
          - integer
          - 'null'
        estimated_confidence:
          description: 'Confidence band for outflow estimates: high, medium, low, or none'
          enum:
          - high
          - medium
          - low
          - none
          - null
          type:
          - string
          - 'null'
        estimated_monthly_amount:
          allOf:
          - $ref: '#/components/schemas/Money'
        estimated_remaining_balance:
          allOf:
          - $ref: '#/components/schemas/Money'
        estimated_right_to_receive_amount:
          allOf:
          - $ref: '#/components/schemas/Money'
        fallback_estimated_monthly_amount:
          allOf:
          - $ref: '#/components/schemas/Money'
          description: Monthly fallback amount using the latest repayment for low and medium confidence estimates
        frequency:
          enum:
          - not_enough_data
          - same_day
          - irregular
          - daily
          - weekly
          - biweekly
          - monthly
          - quarterly
          - annually
          - weekday
          - twice_weekly
          - null
          type:
          - string
          - 'null'
        has_repayment_modifications:
          type: boolean
        latest_estimated_monthly_amount:
          allOf:
          - $ref: '#/components/schemas/Money'
        latest_repayment_amount:
          allOf:
          - $ref: '#/components/schemas/Money'
        latest_repayment_frequency:
          enum:
          - not_enough_data
          - same_day
          - irregular
          - daily
          - weekly
          - biweekly
          - monthly
          - quarterly
          - annually
          - weekday
          - twice_weekly
          - null
          type:
          - string
          - 'null'
        max_amount:
          allOf:
          - $ref: '#/components/schemas/Money'
        max_timestamp:
          format: date-time
          type:
          - string
          - 'null'
        mean_amount:
          allOf:
          - $ref: '#/components/schemas/Money'
        mean_interval_days:
          type:
          - number
          - 'null'
        min_amount:
          allOf:
          - $ref: '#/components/schemas/Money'
        min_timestamp:
          format: date-time
          type:
          - string
          - 'null'
        mode_interval_days:
          type:
          - integer
          - 'null'
        payments_per_month:
          type:
          - number
          - 'null'
        remaining_repayment_duration_days:
          type:
          - integer
          - 'null'
        std_dev_amount:
          allOf:
          - $ref: '#/components/schemas/Money'
        total_amount:
          allOf:
          - $ref: '#/components/schemas/Money'
        total_expected_duration_days:
          type:
          - integer
          - 'null'
        total_expected_payments_to_date:
          type:
          - integer
          - 'null'
      type: object
    RelatedPayment:
      properties:
        amount:
          type: number
        date:
          format: date
          type: string
        merchant:
          type:
          - string
          - 'null'
      type: object
    Money:
      properties:
        amount:
          description: The amount of money
          example: '1234.56'
          type: number
        currency:
          description: The currency of the money
          example: USD
          type: string
      type: object
    PositionTransactions:
      properties:
        investment_transactions:
          items:
            $ref: '#/components/schemas/PositionTransaction'
          type: array
        position_heron_id:
          type: string
        repayment_transactions:
          items:
            $ref: '#/components/schemas/PositionTransaction'
          type: array
        reversal_transactions:
          items:
            $ref: '#/components/schemas/PositionTransaction'
          type: array
      type: object
  securitySchemes:
    ApiKeyAuth:
      in: header
      name: x-api-key
      type: apiKey
externalDocs:
  description: Read Tutorial
  url: https://docs.herondata.io/