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

# List accounts

> Filtered, paginated list of accounts. By default the same set the app's Accounts list shows: accounts with an open or won deal, a recent loss, or recent activity. `include=all` lists every account. A member key sees only its own book.

Accounts, filtered and sorted. An account's `stage` is the furthest stage any of its people has reached.

```bash theme={"theme":{"light":"github-light-default","dark":"vesper"}}
curl "https://api.opennous.cloud/v2/accounts?has_open_deal=true&sort=win_chance&limit=20" \
  -H "Authorization: Bearer $NOUS_API_KEY"
```


## OpenAPI

````yaml GET /v2/accounts
openapi: 3.1.0
info:
  title: OpenNous REST API
  version: 2.0.0
  description: >-
    Read and write the OpenNous revenue context graph over HTTP. Authenticate
    with a workspace API key.
servers:
  - url: https://api.opennous.cloud
    description: OpenNous Cloud
security:
  - bearerAuth: []
  - apiKeyHeader: []
tags:
  - name: People
  - name: Accounts
  - name: Deals
  - name: Notes
  - name: Attention
  - name: Insights
  - name: Enrich & score
  - name: Organization
  - name: Workflows
  - name: Webhooks
    description: >-
      Subscribe to events and have them pushed to your own stack, with the
      account record attached.
  - name: Usage
paths:
  /v2/accounts:
    get:
      tags:
        - Accounts
      summary: List accounts
      description: >-
        Filtered, paginated list of accounts. By default the same set the app's
        Accounts list shows: accounts with an open or won deal, a recent loss,
        or recent activity. `include=all` lists every account. A member key sees
        only its own book.
      operationId: listAccounts
      parameters:
        - name: search
          in: query
          required: false
          schema:
            type: string
          description: Substring match on name and domain.
        - name: stage
          in: query
          required: false
          schema:
            type: string
            enum:
              - identified
              - connected
              - interested
              - meeting_booked
              - discovery
              - demo
              - negotiation
              - closed_won
              - closed_lost
              - disqualified
              - churned
          description: Exact account stage.
        - name: icp_fit
          in: query
          required: false
          schema:
            type: boolean
          description: ICP fits (score 70 or higher), or non-fits.
        - name: min_icp_score
          in: query
          required: false
          schema:
            type: number
            minimum: 0
            maximum: 100
          description: Minimum ICP score.
        - name: owner
          in: query
          required: false
          schema:
            type: string
          description: CRM owner. An email or a name.
        - name: country
          in: query
          required: false
          schema:
            type: string
          description: Country.
        - name: has_open_deal
          in: query
          required: false
          schema:
            type: boolean
          description: With, or without, an open deal.
        - name: last_activity_after
          in: query
          required: false
          schema:
            type: string
            pattern: ^\d+[smhd]$
          description: Active within this window, for example `7d`.
        - name: last_activity_before
          in: query
          required: false
          schema:
            type: string
            pattern: ^\d+[smhd]$
          description: Quiet for at least this long, for example `30d`.
        - name: include
          in: query
          required: false
          schema:
            type: string
            enum:
              - all
          description: '`all` lists every account, not just the default set.'
        - name: sort
          in: query
          required: false
          schema:
            type: string
            enum:
              - last_activity
              - icp_score
              - pipeline_value
              - health
              - win_chance
            default: last_activity
          description: >-
            Sort order, highest first. `win_chance` ranks by the chance to win
            within 30 days, adds `win_probability` and `close_within_30d`, and
            caps `limit` at 50.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 200
          description: Page size.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            default: 0
            minimum: 0
          description: Rows to skip.
      responses:
        '200':
          description: A page of accounts.
          content:
            application/json:
              schema:
                type: object
                properties:
                  accounts:
                    type: array
                    items:
                      $ref: '#/components/schemas/AccountSummary'
                  limit:
                    type: integer
                  offset:
                    type: integer
                  has_more:
                    type: boolean
              example:
                accounts:
                  - entity_id: 3e7a1d52-8c4b-4b9e-a0f3-6d2c9e8b7a15
                    name: Acme
                    domain: acme.com
                    industry: Software
                    country: US
                    icp_score: 82
                    icp_tier: tier_1
                    icp_fit: true
                    health: 71
                    stage: discovery
                    people_count: 4
                    open_deals: 1
                    pipeline_value: 48000
                    won_value: null
                    owner:
                      name: Jordan Lee
                      email: jordan@yourco.com
                    last_activity_at: '2026-09-24T15:02:00Z'
                    last_inbound_at: '2026-09-24T15:02:00Z'
                limit: 50
                offset: 0
                has_more: false
        '400':
          description: A bad query parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                unknown_query_param:
                  summary: unknown_query_param
                  value:
                    error: unknown_query_param
                    detail: 'unsupported query param(s): foo'
                    supported:
                      - search
                      - stage
                      - ...
                unknown_sort:
                  summary: unknown_sort
                  value:
                    error: unknown_sort
                    supported:
                      - last_activity
                      - icp_score
                      - pipeline_value
                      - health
                      - win_chance
                invalid_stage:
                  summary: invalid_stage
                  value:
                    error: invalid_stage
                    supported:
                      - identified
                      - connected
                      - interested
                      - meeting_booked
                      - discovery
                      - demo
                      - negotiation
                      - closed_won
                      - closed_lost
                      - disqualified
                      - churned
                invalid_duration:
                  summary: invalid_duration
                  value:
                    error: invalid_duration
                    detail: last_activity_before must look like 30d, 12h or 90m
                filter_unavailable:
                  summary: filter_unavailable
                  value:
                    error: filter_unavailable
                    detail: >-
                      the owner filter needs account ownership, which this
                      workspace does not have yet
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/UpgradeRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          description: '`sort=win_chance` and the win model could not run.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: win_model_unavailable
components:
  schemas:
    AccountSummary:
      type: object
      properties:
        entity_id:
          type: string
          format: uuid
        name:
          type:
            - string
            - 'null'
        domain:
          type:
            - string
            - 'null'
        industry:
          type:
            - string
            - 'null'
        country:
          type:
            - string
            - 'null'
        icp_score:
          type:
            - integer
            - 'null'
        icp_tier:
          type:
            - string
            - 'null'
        icp_fit:
          type:
            - boolean
            - 'null'
        health:
          type:
            - number
            - 'null'
        stage:
          type:
            - string
            - 'null'
          enum:
            - identified
            - connected
            - interested
            - meeting_booked
            - discovery
            - demo
            - negotiation
            - closed_won
            - closed_lost
            - disqualified
            - churned
            - null
          description: The furthest stage among the account's people.
        people_count:
          type: integer
        open_deals:
          type: integer
        pipeline_value:
          type:
            - number
            - 'null'
        won_value:
          type:
            - number
            - 'null'
        owner:
          type:
            - object
            - 'null'
          properties:
            name:
              type:
                - string
                - 'null'
            email:
              type:
                - string
                - 'null'
        last_activity_at:
          type:
            - string
            - 'null'
          format: date-time
        last_inbound_at:
          type:
            - string
            - 'null'
          format: date-time
        win_probability:
          type:
            - number
            - 'null'
          description: Only with `sort=win_chance`.
        close_within_30d:
          type:
            - number
            - 'null'
          description: Only with `sort=win_chance`.
    Error:
      type: object
      description: >-
        Every error response. `error` is a stable machine code. Some errors add
        fields such as `detail`, `supported`, `max`, or `reason`.
      required:
        - error
      properties:
        error:
          type: string
          description: Machine-readable error code.
        detail:
          type: string
          description: Human-readable explanation, when there is one.
      additionalProperties: true
  responses:
    Unauthorized:
      description: Missing, unknown, or expired API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            missing:
              summary: api_key_required
              value:
                error: api_key_required
            invalid:
              summary: invalid_api_key
              value:
                error: invalid_api_key
            expired:
              summary: api_key_expired
              value:
                error: api_key_expired
                detail: >-
                  This API key has expired. Create or rotate a key to get a
                  fresh one.
    UpgradeRequired:
      description: The workspace is past its monthly operations limit and grace window.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: upgrade_required
            reason: ops_limit_reached
            current_plan: starter
            upgrade_url: /settings?section=billing
    RateLimited:
      description: More than 600 requests in a minute on this key.
      headers:
        RateLimit-Limit:
          schema:
            type: integer
          description: Requests allowed per window.
        RateLimit-Remaining:
          schema:
            type: integer
          description: Requests left in the window.
        RateLimit-Reset:
          schema:
            type: integer
          description: Seconds until the window resets.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: rate_limited
    InternalError:
      description: Unexpected server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: internal_error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Workspace API key. Create one in **Settings → API keys**.
    apiKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
      description: The same key, sent as a header.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.