---
title: "Lookup users to add as contacts"
method: GET
path: "/contacts/lookup"
tags: ["contacts"]
---

# Lookup users to add as contacts

`GET /contacts/lookup`

## Request

- Base URL: `https://api.instruxi.dev/api/v1/enforcer`
- URL: `https://api.instruxi.dev/api/v1/enforcer/contacts/lookup`
- Auth: one of:
  - API key in header `Authorization`
  - API key in header `X-API-Key`

## Query parameters

- `q` string
- `first_name` string
- `last_name` string
- `username` string
- `email` string
- `phone` string
- `wallet_address` string
- `user_id` string
- `sort` string
- `limit` integer
- `offset` integer

## Response `200`

OK

- InternalDeliveryHttpHandlerDiscoveryPageResponse
  - `data` InternalDeliveryHttpHandlerDiscoveryView[]
    - `email_verified` boolean: Verification badges — the flags, never the underlying identifiers.
    - `first_name` string
    - `id` string
    - `last_name` string
    - `name` string: Name is the person's display name when set, which is what the picker shows in preference to the account's first/last pair.
    - `phone_verified` boolean
    - `profile_image_url` string
    - `tenant_id` string
    - `username` string
    - `wallet_address` string: WalletAddress is the primary address. Kept because discovery feeds the send-destination picker; the VALUE is already public on-chain, unlike everything dropped above.
  - `limit` integer
  - `offset` integer
  - `success` boolean
  - `total` integer

## Other responses

- `401`: Unauthorized
- `500`: Internal Server Error

---

[API](https://skmtc.dev/instruxi/apis/enforcer-api.md) · [All operations](https://skmtc.dev/instruxi/apis/enforcer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/instruxi/apis/enforcer-api/revisions/fa82bc1becc0?raw)
