Narmi users API
The users API from Narmi — 3 operation(s) for users.
The users API from Narmi — 3 operation(s) for users.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/narmi-users-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Narmi Public account balances Users API
version: v1
description: To read about Public API access and authentication, go to [API Overview](https://docs.narmi.com/docs/narmi-developer-docs/xl9dvbz84o11l-introduction).
termsOfService: https://www.narmi.com/policies/developer-terms-conditions
contact:
name: Narmi Support
email: support@narmi.com
servers:
- url: https://api.sandbox.narmi.dev/
description: ''
tags:
- name: users
paths:
/v1/users/:
get:
operationId: users_list
description: 'List the authenticated user''s joint access users and self. This endpoint is now deprecated and only returns information about the currently authenticated user.
All monetary values are represented in minor units, or the smallest unit of the currency with no decimal (e.g., cents). For example, $10.00 is represented as 1000.
<i>How can we improve these docs? <a href="mailto:docs+feedback@narmi.com">Share your feedback.</a></i>'
summary: List joint users
tags:
- users
security:
- oauth2:
- banking:users:read
deprecated: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UsersResponse'
examples:
ListUsers:
value:
users:
- email: demo@narmitech.com
core_provided_email: null
username: testuser
id: 07231f46-23f1-482e-bdc4-35f2267b60e6
institution_user_identifier: ''
updated_at: '2018-11-02T03:29:18.317000+00:00'
addresses: []
phone_numbers: []
first_name: ''
last_name: ''
paper_statements: true
user_category: personal
features:
ach: true
allow_olb_device_remembering: true
check_order: true
edit_scheduled_transfers: true
stop_payment_by_range: true
top_menu:
Dashboard:
url: /dashboard
Accounts:
accounts: true
Documents:
url: /statements
Support:
url: /support
Tools:
menu:
Transfer funds:
url: /transfer
Transactions:
url: /transactions
Cards:
url: /cards
Trends:
url: /trends
Automatic savings:
url: /automatic
Manage users:
url: /access_manager
feature_flag: indigo.OrganizationUser_permission
List all NAF options:
naf: true
internal_transfers: true
account_membership: true
address_change: true
alerts: true
allpoint_locator_atm: true
automatic_savings: OPT_IN
bill_pay: ipay
billshark: true
business_account_opening: true
personal_banking: true
business_banking: true
cards: true
coop_locator_atm: true
coop_locator_branch: true
core_based_alerts: false
existing_user_account_opening: true
existing_user_dao: true
instant_account_verification: mx
insurance: lemonade
login_and_enroll_blocked: false
mobile_banking: true
moneypass_locator_atm: true
deposit_sso: true
new_account_opening: true
offers: true
offline_verification: true
online_banking: true
p2p:
- m2m
paperless_statement_enrollment: true
paperless_statement_unenrollment: false
phone_change: true
push_notifications: true
rdc: true
refer_a_member: true
show_transaction_contact_support: true
statements: true
transfers: true
trends: mx
user_message_uploads: true
username: true
wires: true
stop_payment: true
beneficiaries: true
naf_app_management: true
profile_switcher: true
mobile_login_switcher: true
limits:
immediate_rdc:
'3': 7000
immediate_ach_pull:
'1': 1000
ach_pull:
'30': 5500
'1': 500
ach_push:
'3': 5000
indigo.Account_permission: '*'
indigo.AchTransfer_permission: '*'
integrations.base.Card_permission: '*'
indigo.ExternalAccount_permission: '*'
indigo.IntraInstitutionTransfer_permission: '*'
indigo.MemberFriend_permission: '*'
integrations.base.Payee_permission: '*'
integrations.base.Payment_permission: '*'
indigo.Transaction_permission: '*'
indigo.WireTransaction_permission: '*'
integrations.documents_permission: '*'
integrations.rdc_permission: '*'
can_change_username: false
can_change_estatements: true
zelle: false
hold_days:
rdc_hold_days: 4
ach_hold_days: 2
org_uuid: null
org_role: null
org_name: ''
business_permissions: []
dual_approval_required: false
is_staff: false
is_active: true
is_superuser: false
is_narmi: false
date_joined: '2018-03-26T14:43:59.004000+00:00'
last_login: '2024-04-22T21:06:02.006532+00:00'
segment: ''
metadata: {}
has_username: true
has_password: true
has_accepted_latest_terms: false
requires_enrollment_code_verification: false
enabled_estatements_at: null
is_converting: false
has_permitted_device: true
has_backup_codes: false
summary: List joint users
description: ''
x-stoplight:
id: colhfovx5ye9w
/v1/users/{user_uuid}/:
get:
operationId: users_retrieve
description: 'Fetch a user specified by UUID. A user can be retrieved when it is a member of an associated account.
All monetary values are represented in minor units, or the smallest unit of the currency with no decimal (e.g., cents). For example, $10.00 is represented as 1000.
<i>How can we improve these docs? <a href="mailto:docs+feedback@narmi.com">Share your feedback.</a></i>'
summary: Retrieve a user
parameters:
- in: path
name: user_uuid
schema:
type: string
pattern: ^[0-9a-z-]+$
required: true
tags:
- users
security:
- oauth2:
- read
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserResponse'
examples:
RetrieveUser:
value:
user:
email: demo@narmitech.com
core_provided_email: null
username: testuser
id: 07231f46-23f1-482e-bdc4-35f2267b60e6
institution_user_identifier: ''
updated_at: '2018-11-02T03:29:18.317000+00:00'
addresses: []
phone_numbers: []
first_name: ''
last_name: ''
paper_statements: true
user_category: personal
features:
ach: true
allow_olb_device_remembering: true
check_order: true
edit_scheduled_transfers: true
stop_payment_by_range: true
top_menu:
Dashboard:
url: /dashboard
Accounts:
accounts: true
Documents:
url: /statements
Support:
url: /support
Tools:
menu:
Transfer funds:
url: /transfer
Transactions:
url: /transactions
Cards:
url: /cards
Trends:
url: /trends
Automatic savings:
url: /automatic
Manage users:
url: /access_manager
feature_flag: indigo.OrganizationUser_permission
List all NAF options:
naf: true
internal_transfers: true
account_membership: true
address_change: true
alerts: true
allpoint_locator_atm: true
automatic_savings: OPT_IN
bill_pay: ipay
billshark: true
business_account_opening: true
personal_banking: true
business_banking: true
cards: true
coop_locator_atm: true
coop_locator_branch: true
core_based_alerts: false
existing_user_account_opening: true
existing_user_dao: true
instant_account_verification: mx
insurance: lemonade
login_and_enroll_blocked: false
mobile_banking: true
moneypass_locator_atm: true
deposit_sso: true
new_account_opening: true
offers: true
offline_verification: true
online_banking: true
p2p:
- m2m
paperless_statement_enrollment: true
paperless_statement_unenrollment: false
phone_change: true
push_notifications: true
rdc: true
refer_a_member: true
show_transaction_contact_support: true
statements: true
transfers: true
trends: mx
user_message_uploads: true
username: true
wires: true
stop_payment: true
beneficiaries: true
naf_app_management: true
profile_switcher: true
mobile_login_switcher: true
limits:
immediate_rdc:
'3': 7000
immediate_ach_pull:
'1': 1000
ach_pull:
'30': 5500
'1': 500
ach_push:
'3': 5000
indigo.Account_permission: '*'
indigo.AchTransfer_permission: '*'
integrations.base.Card_permission: '*'
indigo.ExternalAccount_permission: '*'
indigo.IntraInstitutionTransfer_permission: '*'
indigo.MemberFriend_permission: '*'
integrations.base.Payee_permission: '*'
integrations.base.Payment_permission: '*'
indigo.Transaction_permission: '*'
indigo.WireTransaction_permission: '*'
integrations.documents_permission: '*'
integrations.rdc_permission: '*'
can_change_username: false
can_change_estatements: true
zelle: false
hold_days:
rdc_hold_days: 4
ach_hold_days: 2
org_uuid: null
org_role: null
org_name: ''
business_permissions: []
dual_approval_required: false
is_staff: false
is_active: true
is_superuser: false
is_narmi: false
date_joined: '2018-03-26T14:43:59.004000+00:00'
last_login: '2024-04-22T21:06:02.006532+00:00'
segment: ''
metadata: {}
has_username: true
has_password: true
has_accepted_latest_terms: false
requires_enrollment_code_verification: false
enabled_estatements_at: null
is_converting: false
has_permitted_device: true
has_backup_codes: false
summary: Successfully retrieve a user
description: ''
'404':
description: No response body
x-stoplight:
id: wkklncnfcftkw
put:
operationId: users_update
description: 'Set a user''s preference to receive paper statements.
All monetary values are represented in minor units, or the smallest unit of the currency with no decimal (e.g., cents). For example, $10.00 is represented as 1000.
<i>How can we improve these docs? <a href="mailto:docs+feedback@narmi.com">Share your feedback.</a></i>'
summary: Update a user
parameters:
- in: path
name: user_uuid
schema:
type: string
pattern: ^[0-9a-z-]+$
required: true
tags:
- users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedProfileUpdateRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedProfileUpdateRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedProfileUpdateRequest'
security:
- oauth2:
- write
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserResponse'
examples:
SuccessfullyUpdatedAUser:
value:
user:
email: demo@narmitech.com
core_provided_email: null
username: testuser
id: 07231f46-23f1-482e-bdc4-35f2267b60e6
institution_user_identifier: ''
updated_at: '2018-11-02T03:29:18.317000+00:00'
addresses: []
phone_numbers: []
first_name: ''
last_name: ''
paper_statements: true
user_category: personal
features:
ach: true
allow_olb_device_remembering: true
check_order: true
edit_scheduled_transfers: true
stop_payment_by_range: true
top_menu:
Dashboard:
url: /dashboard
Accounts:
accounts: true
Documents:
url: /statements
Support:
url: /support
Tools:
menu:
Transfer funds:
url: /transfer
Transactions:
url: /transactions
Cards:
url: /cards
Trends:
url: /trends
Automatic savings:
url: /automatic
Manage users:
url: /access_manager
feature_flag: indigo.OrganizationUser_permission
List all NAF options:
naf: true
internal_transfers: true
account_membership: true
address_change: true
alerts: true
allpoint_locator_atm: true
automatic_savings: OPT_IN
bill_pay: ipay
billshark: true
business_account_opening: true
personal_banking: true
business_banking: true
cards: true
coop_locator_atm: true
coop_locator_branch: true
core_based_alerts: false
existing_user_account_opening: true
existing_user_dao: true
instant_account_verification: mx
insurance: lemonade
login_and_enroll_blocked: false
mobile_banking: true
moneypass_locator_atm: true
deposit_sso: true
new_account_opening: true
offers: true
offline_verification: true
online_banking: true
p2p:
- m2m
paperless_statement_enrollment: true
paperless_statement_unenrollment: false
phone_change: true
push_notifications: true
rdc: true
refer_a_member: true
show_transaction_contact_support: true
statements: true
transfers: true
trends: mx
user_message_uploads: true
username: true
wires: true
stop_payment: true
beneficiaries: true
naf_app_management: true
profile_switcher: true
mobile_login_switcher: true
limits:
immediate_rdc:
'3': 7000
immediate_ach_pull:
'1': 1000
ach_pull:
'30': 5500
'1': 500
ach_push:
'3': 5000
indigo.Account_permission: '*'
indigo.AchTransfer_permission: '*'
integrations.base.Card_permission: '*'
indigo.ExternalAccount_permission: '*'
indigo.IntraInstitutionTransfer_permission: '*'
indigo.MemberFriend_permission: '*'
integrations.base.Payee_permission: '*'
integrations.base.Payment_permission: '*'
indigo.Transaction_permission: '*'
indigo.WireTransaction_permission: '*'
integrations.documents_permission: '*'
integrations.rdc_permission: '*'
can_change_username: false
can_change_estatements: true
zelle: false
hold_days:
rdc_hold_days: 4
ach_hold_days: 2
org_uuid: null
org_role: null
org_name: ''
business_permissions: []
dual_approval_required: false
is_staff: false
is_active: true
is_superuser: false
is_narmi: false
date_joined: '2018-03-26T14:43:59.004000+00:00'
last_login: '2024-04-22T21:06:02.006532+00:00'
segment: ''
metadata: {}
has_username: true
has_password: true
has_accepted_latest_terms: false
requires_enrollment_code_verification: false
enabled_estatements_at: null
is_converting: false
has_permitted_device: true
has_backup_codes: false
summary: Request successfully sets eStatements to `true`.
description: ''
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/PermissionDeniedError'
examples:
PermissionDenied:
value:
id: permission_denied
message: Permission is required to disable eStatements.
summary: Setting eStatements to false fails when setting to `true`.
description: ''
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
examples:
UserNotFound:
value:
id: not_found
message: User not found
summary: Setting user fails when user UUID is invalid.
description: ''
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/InvalidRequestError'
examples:
InvalidInput:
value:
id: invalid_request_error
message: paper_statements
summary: Field `paper_statements` is set with non-boolean data.
description: ''
x-stoplight:
id: wzpzs24yu0zp0
/v1/users/{user_uuid}/estatements/:
post:
operationId: users_estatements_create
description: 'Sets the authenticated user to no longer receive paper statements. Does not affect whether the user can view statements within Digital Banking.
All monetary values are represented in minor units, or the smallest unit of the currency with no decimal (e.g., cents). For example, $10.00 is represented as 1000.
<i>How can we improve these docs? <a href="mailto:docs+feedback@narmi.com">Share your feedback.</a></i>'
summary: Sets user to receive estatements
parameters:
- in: path
name: user_uuid
schema:
type: string
pattern: ^[0-9a-z-]+$
required: true
tags:
- users
security:
- oauth2:
- write
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/EstatementsResponse'
examples:
EnableEStatements:
value:
eStatements: true
summary: Enable eStatements
description: ''
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
examples:
UserNotFound:
value:
not_found: User not found
summary: User not found
MissingPaperlessStatementEnrollment/unenrollment:
value:
not_found: Permission is required to enable eStatements.
summary: Missing paperless statement enrollment/unenrollment
description: ''
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/InvalidRequestError'
examples:
MissingPaperlessStatementEnrollment/unenrollment:
value:
invalid_request_error: We could not enable your paperless statement setting at this time. Please contact Support.
summary: Missing paperless statement enrollment/unenrollment
description: ''
x-stoplight:
id: pi0cpo2fkshw0
delete:
operationId: users_estatements_destroy
description: 'Sets the authenticated user to receive paper statements. Does not affect whether the user can view statements within Digital Banking.
All monetary values are represented in minor units, or the smallest unit of the currency with no decimal (e.g., cents). For example, $10.00 is represented as 1000.
<i>How can we improve these docs? <a href="mailto:docs+feedback@narmi.com">Share your feedback.</a></i>'
summary: Sets user to receive paper statements
parameters:
- in: path
name: user_uuid
schema:
type: string
pattern: ^[0-9a-z-]+$
required: true
tags:
- users
security:
- oauth2:
- write
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/EstatementsResponse'
examples:
EnableEStatements:
value:
eStatements: true
summary: Enable eStatements
description: ''
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
examples:
UserNotFound:
value:
not_found: User not found
summary: User not found
MissingPaperlessStatementEnrollment/unenrollment:
value:
not_found: Permission is required to enable eStatements.
summary: Missing paperless statement enrollment/unenrollment
description: ''
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/InvalidRequestError'
examples:
MissingPaperlessStatementEnrollment/unenrollment:
value:
invalid_request_error: We could not enable your paperless statement setting at this time. Please contact Support.
summary: Missing paperless statement enrollment/unenrollment
description: ''
x-stoplight:
id: goqw4lzxcqqkn
components:
schemas:
EstatementsResponse:
type: object
properties:
eStatements:
type: boolean
required:
- eStatements
x-stoplight:
id: ma1e7klanhtdp
Profile:
type: object
description: ''
properties:
email:
type: string
readOnly: true
description: Email address for the registered user.
example: demo@narmitech.com
core_provided_email:
type:
- string
- 'null'
readOnly: true
description: Email address the user has registered to the core.
example: null
username:
type:
- string
- 'null'
readOnly: true
description: Username for the registered user.
example: testuser
id:
type:
- string
- 'null'
format: uuid
readOnly: true
description: UUID of the registered user. This value is used as the unique identifier for the user in the API.
example: 07231f46-23f1-482e-bdc4-35f2267b60e6
institution_user_identifier:
type: string
readOnly: true
description: Core user ID, may be set to empty string if the requesting user does not have the `core_user_id` scope for the target user.
example: ''
updated_at:
type:
- string
- 'null'
format: date-time
readOnly: true
description: The last date-time that the information for this user was altered or saved.
example: '2018-11-02T03:29:18.317000+00:00'
addresses:
type: array
items:
$ref: '#/components/schemas/Address'
readOnly: true
description: A list of addresses for the registered user. This list contains the primary address and the mailing address of the user, if it exists. This may be set to empty list if the requesting user does not have the `address` scope for the target user.
example: []
phone_numbers:
type: array
items:
$ref: '#/components/schemas/Phone'
readOnly: true
description: A list of phone numbers for the registered user. This list often includes only one phone number. This may be set to empty list if the requesting user does not have the `phone` scope for the target user.
example: []
notifications_enabled:
type:
- boolean
- 'null'
readOnly: true
description: Whether the user has registered a device for notifications. This field will also check to make sure that at least one of the devices is set to active.
first_name:
type: string
readOnly: true
description: First name of the registered user, can also include middle or second names. This may be set to empty string if the requesting user does not have the `name` scope for the target user.
example: ''
last_name:
type: string
# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/narmi/refs/heads/main/openapi/narmi-users-api-openapi.yml