Contacts
List Contacts
Retrieve a paginated list of contacts, optionally filtered by name, status, or external ID.
Request example
{
"query": {
"limit": 20,
"cursor": null,
"status": "PENDING"
}
}
# Sample only. Generate a new signed token for each request
# (see Authentication). Tokens expire after 120 seconds.
curl --request GET \
--url "https://api.primevault.com/api/external/contacts/?limit=20&status=PENDING" \
--header "Authorization: Bearer <signed JWT>" \
--header "Api-Key: <API key>" \
--header "Accept: application/json"
getContacts(
params?: Record<string, string>,
limit?: number,
cursor?: string | null,
): Promise<ContactListResponse>
const firstPage = await apiClient.getContacts(
{ status: "PENDING" },
20,
null,
);
Response example
{
"results": [
{
"id": "contact_123",
"orgId": "org_456",
"subOrgId": "sub_org_123",
"name": "Operations Wallet",
"blockChain": "ETHEREUM",
"address": "0xAbC1234567890abcdef1234567890abcdef1234",
"status": "PENDING",
"tags": [
"vendor",
"priority"
],
"createdById": "api_user_123",
"externalId": "vendor-1001",
"assetList": [
"USDC",
"ETH"
],
"createdAt": "2026-08-04T10:30:00Z",
"updatedAt": "2026-08-04T10:30:00Z",
"isDeleted": false
}
],
"nextCursor": "eyJpZCI6ImNvbnRhY3RfMTIzIn0=",
"hasNext": true
}
interface ContactListResponse {
results: Contact[];
nextCursor?: string | null;
hasNext?: boolean;
}
GET
/api/external/contacts/?limit={limit}&cursor={cursor}&{filters}
Query parameters
number
Requested page size. SDK default: 20.
string | null
Cursor for the next page.
Record<string, string>
Contact filters, for example
name, status, or externalId when supported.Response
Returns a page of Contact objects. See Cursor response.Contact[]
Contacts on this page. Each item is a Contact.
Show Properties
Show Properties
string
Contact ID.
string
Organization that owns the contact.
string
Contact display name.
string
Chain of the address.
string
Blockchain address.
ContactStatus
PENDING, APPROVED, or DECLINED. A new contact stays PENDING until it’s approved. See ContactStatus.boolean
Whether the address is a smart contract.
string[]
Searchable contact tags.
string
User or API user that created the contact.
boolean
Whether the address is flagged by sanctions screening.
string
Your own reference, if you set one.
string[]
Assets permitted for the contact.
string
Creation timestamp (ISO 8601).
string
Last update timestamp (ISO 8601).
boolean
Whether the contact is deleted.
string | null
Cursor for the next page.
null on the last page.boolean
Whether another page exists.
Request example
{
"query": {
"limit": 20,
"cursor": null,
"status": "PENDING"
}
}
# Sample only. Generate a new signed token for each request
# (see Authentication). Tokens expire after 120 seconds.
curl --request GET \
--url "https://api.primevault.com/api/external/contacts/?limit=20&status=PENDING" \
--header "Authorization: Bearer <signed JWT>" \
--header "Api-Key: <API key>" \
--header "Accept: application/json"
getContacts(
params?: Record<string, string>,
limit?: number,
cursor?: string | null,
): Promise<ContactListResponse>
const firstPage = await apiClient.getContacts(
{ status: "PENDING" },
20,
null,
);
Response example
{
"results": [
{
"id": "contact_123",
"orgId": "org_456",
"subOrgId": "sub_org_123",
"name": "Operations Wallet",
"blockChain": "ETHEREUM",
"address": "0xAbC1234567890abcdef1234567890abcdef1234",
"status": "PENDING",
"tags": [
"vendor",
"priority"
],
"createdById": "api_user_123",
"externalId": "vendor-1001",
"assetList": [
"USDC",
"ETH"
],
"createdAt": "2026-08-04T10:30:00Z",
"updatedAt": "2026-08-04T10:30:00Z",
"isDeleted": false
}
],
"nextCursor": "eyJpZCI6ImNvbnRhY3RfMTIzIn0=",
"hasNext": true
}
interface ContactListResponse {
results: Contact[];
nextCursor?: string | null;
hasNext?: boolean;
}
⌘I
Request example
{
"query": {
"limit": 20,
"cursor": null,
"status": "PENDING"
}
}
# Sample only. Generate a new signed token for each request
# (see Authentication). Tokens expire after 120 seconds.
curl --request GET \
--url "https://api.primevault.com/api/external/contacts/?limit=20&status=PENDING" \
--header "Authorization: Bearer <signed JWT>" \
--header "Api-Key: <API key>" \
--header "Accept: application/json"
getContacts(
params?: Record<string, string>,
limit?: number,
cursor?: string | null,
): Promise<ContactListResponse>
const firstPage = await apiClient.getContacts(
{ status: "PENDING" },
20,
null,
);
Response example
{
"results": [
{
"id": "contact_123",
"orgId": "org_456",
"subOrgId": "sub_org_123",
"name": "Operations Wallet",
"blockChain": "ETHEREUM",
"address": "0xAbC1234567890abcdef1234567890abcdef1234",
"status": "PENDING",
"tags": [
"vendor",
"priority"
],
"createdById": "api_user_123",
"externalId": "vendor-1001",
"assetList": [
"USDC",
"ETH"
],
"createdAt": "2026-08-04T10:30:00Z",
"updatedAt": "2026-08-04T10:30:00Z",
"isDeleted": false
}
],
"nextCursor": "eyJpZCI6ImNvbnRhY3RfMTIzIn0=",
"hasNext": true
}
interface ContactListResponse {
results: Contact[];
nextCursor?: string | null;
hasNext?: boolean;
}