Skip to content
Back to Steward

List applications

GET
/api/v1/applications
status
Array<string>
Allowed values: PENDING SUBMITTED APPROVED REJECTED

Filter by application status

types
Array<string>
Allowed values: live manual hidden

Filter by application view type (Live = all non-manual/hidden, Manual = manual applications, Hidden = hidden applications)

entityTypes
Array<string>
Allowed values: BUSINESS INDIVIDUAL

Filter by multiple entity types (BUSINESS or INDIVIDUAL)

accountId
string
Example
507f1f77bcf86cd799439011

Filter by account ID

manual
boolean
Example
false

Filter by manual flag

hidden
boolean
Example
false

Filter by hidden flag

includeHidden
boolean
Example
false

Include client-hidden applications. Steward-hidden applications are never returned.

withSteward
boolean
Example
false

Limit to applications Steward is reviewing, or include them alongside a status selection. Not an application status.

archived
string
Allowed values: exclude include

Whether archived investors are included. Omitted means excluded: archived investors are out of active lists by default.

createdFrom
string
Example
2024-01-01T00:00:00.000Z

Filter by creation date (from)

createdTo
string
Example
2024-12-31T23:59:59.999Z

Filter by creation date (to)

riskScoreMin
number
Example
0

Filter by minimum risk score

riskScoreMax
number
Example
100

Filter by maximum risk score

riskLevels
Array<string>
Allowed values: PROHIBITED HIGH MEDIUM LOW

Filter by risk levels (LOW, MEDIUM, HIGH, PROHIBITED). Takes precedence over riskScoreMin/riskScoreMax if provided.

assignees
Array<string>

Filter by assignee user IDs

search
string
Example
john

Search keyword across the application: investor, submitter and account names, application ID, countries and cities, registration/VAT/tax numbers, industry and legal entity type, key people names and roles, status, risk band, entity type and label names. Country queries are alias-aware (Turkey matches TR, TUR and Türkiye).

labelIds
Array<string>

Filter by label IDs

reviewStatuses
Array<string>
Allowed values: UPCOMING OVERDUE IN_PROGRESS REVIEWED

Filter by periodic-review state. Multi-select, matching the shipped filter pattern. An application with no review is excluded whenever this is set.

cursor
string
Example
ZGVzY3x1cGRhdGVkQXR8MjAyNi0wNS0xM1QxNjowOToxMi4wMDBafDUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMQ

Opaque cursor from a previous response’s nextCursor. Omit on the first page. Cursors are tied to a sort direction: changing order mid-pagination is rejected.

limit
number
default: 50 >= 1 <= 100

Items per page (1-100). Default 50.

order
string
default: desc
Allowed values: asc desc

Sort direction (with id as tiebreaker). Default desc (newest first). The column being sorted is endpoint-specific. See the individual endpoint docs.

orderBy
string
default: updatedAt
Allowed values: createdAt updatedAt name

Sort field. createdAt orders by when the application was created; updatedAt orders by most recent activity; name orders alphabetically by investor name. Default updatedAt.

Returns paginated applications response

Media type application/json
object
items
required
Array<object>
object
name
required
string
id
required
string
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
manual
required

Whether this is a manual application

boolean
customerType
required
string
Allowed values: BUSINESS INDIVIDUAL
status
string
reviewers
required
Array<object>
object
id
required
string
externalId
required
string
firstName
required
string
lastName
required
string
email
required
string
title
required
string
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
risk
object
score
required

Overall numeric risk score for the application. The accompanying band is derived from this number using the account risk scoring strategy; it is not persisted separately. See the Risk Scoring guide for the strategy-specific bands.

number
band
required

Authoritative overall risk band derived from score using the owning account’s risk scoring strategy.

string
Allowed values: LOW MEDIUM HIGH PROHIBITED
data

Per-factor breakdown. Each entry is one risk factor and its contribution to the overall score.

Array<object>
object
category
required

Identifier for this risk factor. The available factors depend on the account risk scoring strategy, so this is an open string (e.g. “Jurisdiction”, “Country Risk”, “PEP”), not a fixed enum.

string
score
required

This factor’s contribution to the overall risk score.

number
level
required

Qualitative level for this factor: low, medium, high, prohibited, or bonus (a risk-reducing factor, e.g. a regulated entity). Lowercase, distinct from the uppercase overall risk band derived from RiskData.score.

string
title
required

Human-readable title for this risk factor.

string
keyPeople
Array<object>
object
id
required
string
joinId

Join row id (business_individuals.id or business_companies.id), used for unlink/edit operations

string
type
required
string
Allowed values: individual business
applicationId
required
string
status
required
string
stewardProfile
boolean
address
object
street
string
apartment
string
city
string
state
string
country
string
postalCode
string
firstName
required
string
middleName
string
lastName
required
string
roles
required
Array<string>
Allowed values: DIRECTOR SHAREHOLDER UBO GENERAL_PARTNER LIMITED_PARTNER INVESTMENT_MANAGER FOUNDER COUNCIL_MEMBER TRUSTEE SETTLOR BENEFICIARY PROTECTOR ENFORCER GUARDIAN INTERMEDIARY CONTROLLING_PERSON INTERESTED_PARTY AUTHORIZED_SIGNATORY RELATED_PARTY PARENT PLAN_SPONSOR SENIOR_MANAGING_OFFICIAL EXECUTOR_ADMINISTRATOR DECEASED_PERSON JOINT_ACCOUNT MANAGER SIGNER MEMBER OFFICER
riskScore
number
riskBand

Risk band published for this score under the owning account’s strategy. Null when there is no score.

string
nullable
Allowed values: LOW MEDIUM HIGH PROHIBITED
screeningSummary
required

Which screening types to include

Array<string>
Allowed values: ADVERSE_MEDIA SANCTIONS WARNING PEP
openTasksCount

Count of PENDING tasks on this key person’s own application; 0 when they have none of their own

number
explanation

WHY this person is a beneficial owner of the applicant, with the chain the holding runs through: projected from the persisted ownership graph, the SAME projection the onboarding drawer and the export read. Null for a business party (a company is never a beneficial owner), and on an application with no persisted graph.

object
bases
required

Every basis, in graph order. Never empty: a party who is not a beneficial owner carries no explanation object at all (the field above is null), rather than an explanation with nothing in it.

Array<object>
object
reason
required
string
Allowed values: direct_ownership indirect_ownership settlor beneficiary trustee protector_control enforcer_control controls_corporate_trustee ultimate_control
label
required

The plain label for the reason, from UBO_BASIS_REASON_LABELS in @steward/core.

string
percent

The stake in the applicant. Present ONLY on the two ownership reasons: a role-based basis carries no computable stake.

number
viaEntityName

The chain entity this basis runs through, by name. Absent on a direct holding.

string
summary
required

Every basis in one sentence: the string a chip, a card or an export column shows.

string
ownershipPercentage
required

The stake in the applicant. NULL (not 0) for a role-based beneficial owner, who holds no computable stake.

number
nullable
paths
required
Array<Array<object>>
pathAmbiguous
required

More than one chain reaches the same entity; the path shown is the first one found.

boolean
sourceLabel
required

The document the basis rests on, named as a reviewer reads it: Shareholder register, Structure chart, Trust Deed. Null only where the graph recorded no evidence document for any basis. Where two documents disagreed, surfaces show the GOVERNING one instead, in the same place and the same shape.

string
nullable
discrepancies

Evidence that disagrees about the entities this party’s ownership runs through: both sources’ holders, which one governs and why, and what is outstanding. Empty when nothing disagrees.

Array<object>
object
kind
required
string
Allowed values: chart_vs_register pending_membership
entityKey
required

The ownership-graph key of the entity the sources disagree about.

string
entityName
required
string
sources
required
Array<object>
object
role
required
string
Allowed values: chart register committed later_evidence
documentIds
required
Array<string>
label
required

The source in words, from OWNERSHIP_DISCREPANCY_COPY in @steward/core.

string
certified
boolean
date

The document’s own date, where it states one.

string format: date
nullable
holders
required
Array<object>
object
name
required
string
percent
required

The percentage THIS source states. Null where it states none.

number
nullable
governing
required

Null for later evidence, which decides nothing until the ownership step is re-committed.

object
source
required
string
Allowed values: chart register committed later_evidence
label
required
string
rule
required

Why this source governs, in one sentence: e.g. “uncertified chart, so the register governs”.

string
resolved
required

Whether the graph has already acted on the disagreement.

boolean
outstandingAction
required

What is outstanding, in words. Null when nothing is.

string
nullable
recordedAt

When the disagreement was recorded. Present for pending_membership, the kind that stays open: a reviewer asks “since when is this outstanding”. Absent for chart_vs_register, which is settled and whose sources carry their own document dates.

string format: date-time
ownershipPath

For a BUSINESS party: applicant → … → this entity. A company has a position in the chain rather than a basis.

Array<object>
object
entityKey
required
string
name
required
string
tier
required

Where the walk placed this entity. Null when it never tiered it: ‘not known to be indirect’, never a tier to infer.

string
nullable
Allowed values: applicant parent intermediary
edgeKind

How the previous hop holds this one. Absent on the applicant, which nothing holds.

string
Allowed values: ownership trustee_of foundation_of
percent

The stake on the edge into this hop, where one is known. A fiduciary edge never has one.

number
labelIds

Label IDs assigned to this application

Array<string>
periodicReview

This application’s periodic review, or null when it has none. Null is load-bearing: an application that was never approved has no review, and every review surface (the list cell, the tab, the header badge) hides itself on it rather than rendering an empty badge.

object
status
required

Four states, or null while the review is SCHEDULED but still beyond the appears window. Null is its own unlisted state: the review exists, the list simply does not carry it yet, so the cell says “Scheduled” with the date while the tab and the initial approval date stay reachable.

string
Allowed values: UPCOMING OVERDUE IN_PROGRESS REVIEWED
reviewDate
required

When the next review is due. Rendered as RELATIVE time (“in 4d”, “21d ago”) while the review is inside the appears window, and as an absolute date beyond it, where a relative distance of years reads as noise.

string format: date-time
nullable
remainingSteps

Client steps still outstanding on the open cycle. 0 means ready to review. Null when no cycle is open.

number
nullable
open
required

Whether a review cycle is open. Not readable off the status: an open review past its date reads Overdue.

boolean
automated
required

Whether automated outreach is on for this application.

boolean
missingEmail
required

No email on file, so automation is forced off and the row carries a warning chip.

boolean
hidden
required

Whether this application is hidden

boolean
hiddenSource
string
Allowed values: CLIENT STEWARD
canSetPriorApproval
required

Whether trusted approval evidence allows setting an initial approval date.

boolean
canStartReview
required

Whether Start periodic review would open a cycle: a Steward approval, a carried-over approval date or a stated next-review date exists. False is the row the bulk dialog marks “No approval date”, because the service refuses it.

boolean
missingEmail
required

No outreach email on file, so starting a review opens the cycle and contacts nobody. Carried at the TOP level as well as inside periodicReview because that block is null whenever the row has neither a review status nor a review date. That includes a just-approved application whose review date has not been stamped yet, and the bulk dialog must not read such a null as “has an email”.

boolean
withSteward
required

True while Steward is reviewing this application and its contents are withheld from the client.

boolean
childApplications
Array<object> recursive
openTasksCount

Count of open tasks for this application

number
archivedAt

When this investor was archived. Null means active.

string format: date-time
nullable
archivedViaApplicationId

The application whose archive cascaded to this one. Null when it was archived on its own terms or is active. Carried on child applications, where it decides whether a parent’s restore reaches them.

string
nullable
roles

Raw junction roles linking this child application to its parent; the client formats them with its own role labels. Carried on child applications.

Array<string>
relatedPartyCount

Screened parties attached to this investor: what the archive confirm dialog totals across a selection

number
nextCursor
required
string
nullable
total

How many applications the search returns, across every page. Present only on the first page of a request with search (no cursor); absent otherwise.

number
nullable
Examples
{
"items": [
{
"name": "Acme Corporation",
"id": "507f1f77bcf86cd799439011",
"createdAt": "2026-03-01T10:00:00.000Z",
"updatedAt": "2026-03-30T12:00:00.000Z",
"manual": false,
"customerType": "BUSINESS",
"status": "SUBMITTED",
"reviewers": [
{
"id": "60d5ecb54b24003a7c8e92b2",
"externalId": "auth0|507f1f77bcf86cd799439011",
"firstName": "John",
"lastName": "Smith",
"email": "john.smith@example.com",
"title": "Compliance Officer",
"createdAt": "2026-03-30T12:00:00.000Z",
"updatedAt": "2026-03-30T12:00:00.000Z"
}
],
"risk": {
"score": 10,
"band": "LOW",
"data": [
{
"category": "Jurisdiction",
"score": 10,
"level": "low",
"title": "Incorporated in United Kingdom"
}
]
},
"keyPeople": [],
"labelIds": [
"507f1f77bcf86cd799439011"
],
"periodicReview": null,
"hidden": false,
"hiddenSource": null,
"canSetPriorApproval": false,
"canStartReview": false,
"missingEmail": false,
"withSteward": false,
"childApplications": [],
"openTasksCount": 3,
"archivedAt": null,
"relatedPartyCount": 4
}
],
"nextCursor": "ZGVzY3x1cGRhdGVkQXR8MjAyNi0wNS0xM1QxNjowOToxMi4wMDBafDUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMQ",
"total": 42
}