> ## Documentation Index
> Fetch the complete documentation index at: https://developers.staging01.melio.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# List entities

> Returns your entities, newest first. Use the filters below to narrow the list.



## OpenAPI

````yaml /openapi.json get /entities
openapi: 3.0.3
info:
  title: Melio Payouts API
  version: '1.0'
  description: >
    Self-serve payouts API. Partners onboard an Entity, which is the business

    (organization plus owner, with the details required to be payment-eligible),

    then attach accounts (internal accounts and external accounts) and make

    payments.


    ## Resource ids


    Every resource has an opaque, prefixed id that is stable for the life of the
    resource:

    `ent_` (entity), `pay_` (payment), `acct_` (account, internal or external).

    Ids are Melio-issued; treat them as opaque strings and never parse or
    construct them. To

    attach your own identifier to a resource, use `externalId`.


    ## Pagination


    List endpoints are cursor-paginated and always return results newest-first

    (`createdAt` descending). The response envelope is:


    ```json

    { "data": [ /* resources */ ], "hasMore": true }

    ```


    Page through results with `limit` (1 to 50, default 50) plus a cursor:


    - `startingAfter=<id>`: return the page immediately **after** the given
    resource id
      (the next, older page). This is how you walk forward through a list.
    - `endingBefore=<id>`: return the page immediately **before** the given
    resource id
      (the previous, newer page).

    `startingAfter` and `endingBefore` are mutually exclusive. The cursor is a
    resource id

    you already received (e.g. the `id` of the last item on the current page),
    not an index.

    Keep requesting the next page until `hasMore` is `false`.


    ## Filtering & sorting


    Ordering is fixed (newest-first); there is no `sortBy`. To narrow a list,
    filter it.

    Each list endpoint documents its own filter parameters (there is no generic
    query

    language). Date-range filters use bracket suffixes and accept RFC 3339
    timestamps:

    `created[gte]`, `created[lte]`. Filter by your own identifier with
    `externalId`, and

    by metadata with `metadata[<key>]=<value>` (matches resources whose metadata
    contains

    every supplied key/value pair). Filters combine with AND and compose with
    pagination.


    ## External ids


    Every created resource accepts an optional `externalId`, your own unique
    identifier for

    the resource (≤255 chars, letters/digits/`-`/`_`). It is unique per partner
    per resource

    type: reusing one returns `409 DUPLICATE_EXTERNAL_ID`. Use it to correlate
    Melio resources

    with records in your system and to look resources up (`?externalId=`)
    without storing

    Melio ids. `externalId` identifies a *resource*; it is not a
    request-deduplication key

    (that is the `Idempotency-Key` header, below); the two are complementary.


    ## Idempotency


    Send an `Idempotency-Key` header on every create so retries are safe: the
    original response

    is replayed instead of creating a second resource. It is required on `POST
    /payments`.


    ## Metadata


    Most resources accept a `metadata` object: free-form string key/value pairs
    that Melio

    stores and returns verbatim but never interprets. Limits: up to 50 keys, key
    ≤40 chars,

    value ≤100 chars. Use it to stash your own structured context on a resource;
    it is also

    filterable (see above).


    ## Melio Sonar Session Token


    Write endpoints optionally accept a `Melio-Sonar-Token` header: a signed
    session token

    minted by the MelioSonar SDK on the end user's device, carrying device
    signals used for

    risk evaluation. Omit it when no SDK session is available.
  contact:
    name: Melio Platform External API
    email: platform@melio.com
servers:
  - description: Production
    url: https://api.melio.com/v2
  - description: Staging01
    url: https://api.staging01.melio.com/v2
security: []
tags:
  - name: Entities
    description: >-
      A business you onboard and operate on behalf of: its profile, compliance
      details, and per-operation limitations.
  - name: Accounts
    description: Accounts the entity pays from (internal) and payees it pays to (external).
  - name: Payments
    description: >-
      Money moved from an internal account to an external account, and their
      lifecycle.
  - name: Tools
    description: >-
      Pre-flight calculators for fees, fast-payment eligibility, and delivery
      estimates. No resource is created.
  - name: Webhooks
    description: >-
      Your single endpoint for event notifications, and the events you can
      subscribe to.
paths:
  /entities:
    get:
      tags:
        - Entities
      summary: List entities
      description: >-
        Returns your entities, newest first. Use the filters below to narrow the
        list.
      parameters:
        - name: externalId
          in: query
          required: false
          description: Return only the entity whose `externalId` matches (your own id).
          schema:
            type: string
        - name: metadata
          in: query
          required: false
          style: deepObject
          explode: true
          description: >
            Filter by metadata key/value pairs, e.g. `metadata[crmId]=C-1`.
            Matches entities whose metadata contains every supplied pair.
          schema:
            type: object
            additionalProperties:
              type: string
      responses:
        '200':
          description: >-
            Entities (limitations omitted; fetch an entity's limitations
            separately).
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Entity'
              example:
                data:
                  - id: ent_7c9e6679-7425-40de-944b-e07fc1f90ae7
                    type: business
                    externalId: partner-biz-1234
                    createdAt: '2026-07-08T15:00:00Z'
                    updatedAt: '2026-07-08T15:00:00Z'
                    name: Acme Supplies
                    legalName: Acme Supplies LLC
                    businessType: llc
                    taxInfo:
                      type: ein
                      identifierLast4: '6789'
                    phoneNumber: '+12125551234'
                    contact:
                      firstName: Jane
                      lastName: Doe
                    website: https://acmesupplies.com
                    address:
                      line1: 350 5th Ave
                      city: New York
                      state: NY
                      postalCode: '10118'
                      countryCode: US
                    legalAddress:
                      line1: 350 5th Ave
                      city: New York
                      state: NY
                      postalCode: '10118'
                      countryCode: US
                    industry:
                      naicsCode: '424410'
                    owner:
                      firstName: Jane
                      lastName: Doe
                      email: jane.doe@acmesupplies.com
      security:
        - ApiKey: []
components:
  schemas:
    Entity:
      oneOf:
        - $ref: '#/components/schemas/BusinessEntity'
      discriminator:
        propertyName: type
        mapping:
          business:
            $ref: '#/components/schemas/BusinessEntity'
    BusinessEntity:
      type: object
      required:
        - id
        - type
      properties:
        id:
          type: string
          description: Opaque entity id (ent_<uuid>)
        type:
          type: string
          enum:
            - business
        externalId:
          type: string
        metadata:
          $ref: '#/components/schemas/Metadata'
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        name:
          type: string
        legalName:
          type: string
        businessType:
          type: string
        taxInfo:
          type: object
          properties:
            type:
              type: string
              enum:
                - ein
                - ssn
                - itin
            identifierLast4:
              type: string
        phoneNumber:
          type: string
        contact:
          $ref: '#/components/schemas/ContactResponse'
        website:
          type: string
        description:
          type: string
        address:
          $ref: '#/components/schemas/AddressResponse'
        legalAddress:
          $ref: '#/components/schemas/AddressResponse'
        industry:
          $ref: '#/components/schemas/Industry'
        owner:
          type: object
          properties:
            firstName:
              type: string
            lastName:
              type: string
            email:
              type: string
    Metadata:
      type: object
      description: >
        Free-form string key/value pairs stored and returned verbatim, never
        interpreted by Melio. Up to 50 keys; each key 1 to 40 chars and may not
        contain square brackets (`[` `]`, reserved for the `metadata[key]`
        filter); value ≤100 chars. Filterable via `metadata[key]`.
      additionalProperties:
        type: string
        maxLength: 100
      maxProperties: 50
    ContactResponse:
      type: object
      description: >-
        Contact as returned in responses; fields may be absent when the stored
        record is incomplete.
      properties:
        firstName:
          type: string
        lastName:
          type: string
    AddressResponse:
      type: object
      description: >-
        Address as returned in responses; fields may be absent when the stored
        record is incomplete.
      properties:
        line1:
          type: string
        line2:
          type: string
        city:
          type: string
        state:
          type: string
        postalCode:
          type: string
        aptNumber:
          type: string
        countryCode:
          type: string
    Industry:
      type: object
      required:
        - naicsCode
      properties:
        naicsCode:
          type: string
          description: NAICS industry classification code (digits).
          pattern: ^[0-9]+$
        name:
          type: string
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: api-key

````