Narmi threads API
The threads API from Narmi — 6 operation(s) for threads.
The threads API from Narmi — 6 operation(s) for threads.
openapi: 3.0.3
info:
title: Narmi Public account balances threads 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: threads
paths:
/v1/thread_files/policies/:
post:
operationId: thread_files_policies_create
description: 'Creates the payload for a signed request to upload a file directly to S3. Further documentation can be found via the AWS documentation: https://aws.amazon.com/blogs/compute/uploading-to-amazon-s3-directly-from-a-web-or-mobile-application/
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: Create a signed request for uploading a file to S3
tags:
- threads
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ThreadUploadPolicyCreateDocRequest'
examples:
CreateThreadUploadPolicy:
value:
type: image/png
name: file.png
summary: Create thread upload policy
ThreadUploadPolicyInvalid:
value:
reason: File destination does not exist or is invalid.
summary: Thread upload policy invalid
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ThreadUploadPolicyCreateDocRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/ThreadUploadPolicyCreateDocRequest'
required: true
security:
- oauth2:
- write
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/ThreadUploadPolicyResponse'
examples:
UploadPolicyCreated:
value:
policy: eyJleHBpcmF0aW9uIjogIjIwMjQtMDYtMThUMTQ6MDA6MDkuMDAwWiIsICJjb25kaXRpb25zIjogW3siYnVja2V0IjogImJ1Y2tldCJ9LCB7ImFjbCI6ICJjkkl2YXRlIn0sIHsia2V5IjogIm9yaWdpsdFsL3N1cHBvcnQvNGQ1ZjQ1NjA2MjhjNDA2YWFiMTVhYjkwMmRhMTI3MDUvZmlsZS5wbmcifSwgeyJzdWNjZXNzX2FjdGlvbl9zdGF0dXMiOiAiMjAxIn0sIHsieC1hbXotY3JlZGVudGlhbCI6ICIvMjAyNDA2MTgvbG9jYWwvczMvYXdzNF9yZXF1ZXN0In0sIHsieC1hbXotYWxnb3JpdGhtIjogIkFXUzQtSE1BQy1TSEEyNTYifSwgeyJ4LWFtei1kYXRlIjogIjIwMjQwNjE4VDEzNTUwOTAwMFoifSwgeyJjb250ZW50LXR5cGUiOiAiaW1hZ2UvcG5nIn0sIHsiQ2FjaGUtQ29udHJvbCI6ICJtYXgtYWdlPTI1OTIwMDAifSwgeyJDb250ZW50LURpc3Bvc2l0aW9uIjogImF0dGFjaG1lbnQifSwgeyJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uIjogIkFFUzI1NiJ9LCBbImNvbnRlbnQtbGVuZ3RoLXJhbmdlIiwgMCwgMjAwMDAwMDBdXX0=
success_action_status: 201
x-amz-credential: /20240618/local/s3/aws4_request
x-amz-date: 20240618T135509000Z
x-amz-signature: a249243213026c97ac80f9b2e4b2ef06c7c491022a8cf8e46f0ddf95a746e6f7
x-amz-algorithm: AWS4-HMAC-SHA256
form_action: http://example.com/__s3_upload__
key: original/support/4d5f8372828c406aab15ab902da12705/file.png
acl: private
content-type: image/png
Cache-Control: max-age=2592000
Content-Disposition: attachment
x-amz-server-side-encryption: AES256
summary: Upload policy created
description: ''
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/UploadFileError'
examples:
ThreadUploadPolicyInvalid:
value:
reason: File destination does not exist or is invalid.
summary: Thread upload policy invalid
description: ''
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/InvalidRequestError'
description: ''
x-stoplight:
id: zrdmgff6lcp7q
/v1/threads/:
get:
operationId: threads_list
description: 'List support message threads for the 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 user's message threads
parameters:
- in: query
name: end_date
schema:
type: string
format: date
- in: query
name: filter
schema:
type: string
description: Parameter filters threads by subject and message body.
- in: query
name: order_by
schema:
type: string
enum:
- created_at
- updated_at
- in: query
name: start_date
schema:
type: string
format: date
tags:
- threads
security:
- oauth2:
- read
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ThreadsResponse'
examples:
Read:
value:
threads:
- id: 1cde160e-592d-4ed6-94de-9460861793ba
subject: Traveling Abroad
state: open
message_preview: Can you please put a travel alert on my card?
created_at: '2018-10-27T12:38:51.369000-04:00'
updated_at: '2018-11-01T23:29:18.317000-04:00'
is_read: true
- id: ef0b1d5f-b65c-4430-9bc4-38e6cfe77467
subject: Debit Pin
state: closed
message_preview: I forgot the PIN number for my debit card.
created_at: '2019-04-21T11:37:35.693000-04:00'
updated_at: '2019-05-01T18:16:14.095000-04:00'
is_read: true
description: ''
x-stoplight:
id: d1q1md8w5b5gl
post:
operationId: threads_create
description: 'Create a support message thread for the 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: Create message thread for a user
tags:
- threads
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ThreadCreateRequest'
examples:
Write:
value:
subject: Traveling Abroad
body: Can you please put a travel alert on my card?
url: https://bucket.s3-local.amazonaws.com/file/structure/123123123/file.txt
team_uuid: eb7111bd-9879-4c0c-a5f5-cc06ab481e04
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ThreadCreateRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/ThreadCreateRequest'
required: true
security:
- oauth2:
- write
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/ThreadResponse'
examples:
Read:
value:
thread:
id: 1cde160e-592d-4ed6-94de-9460861793ba
subject: Traveling Abroad
state: open
message_preview: Can you please put a travel alert on my card?
created_at: '2018-10-27T12:38:51.369000-04:00'
updated_at: '2018-11-01T23:29:18.317000-04:00'
is_read: true
description: ''
'422':
content:
application/json:
schema:
type: object
properties:
id:
type: string
message:
type: string
examples:
ServiceValidationError:
value:
id: invalid_request_error
message: subject
description: ''
x-stoplight:
id: fttfixclnme5y
/v1/threads/{thread_uuids}/messages/:
get:
operationId: threads_messages_list
description: 'List messages for the specified support message threads. The threads are specified in the path parameters as comma-separated UUIDs. If the thread does not exist, this endpoint will return a 404. Response will include both messages and thread files (i.e. attachments).
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 messages in a thread
parameters:
- in: path
name: thread_uuids
schema:
type: string
pattern: ^[,0-9A-Za-z-]+$
required: true
tags:
- threads
security:
- oauth2:
- read
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MessagesResponse'
examples:
ListFromMultipleThreads:
value:
links:
next: null
previous: null
meta:
total: 16
messages:
- body: '0'
internal_note: false
id: 508fce18-3092-48bd-82ae-5df24f768470
thread_id: 70598155-99e0-4080-8124-1dcc36940eee
author:
email: demo@narmitech.com
core_provided_email: null
username: testuser
id: 07231f46-23f1-482e-bdc4-35f2267b60e6
institution_user_identifier: ''
updated_at: '2024-04-30T20:16:46.861043+00:00'
addresses: []
phone_numbers: []
first_name: ''
last_name: ''
paper_statements: null
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: false
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-06-11 15:05:32.862565+00:00'
segment: ''
metadata: {}
has_username: true
has_password: true
has_accepted_latest_terms: true
requires_enrollment_code_verification: false
enabled_estatements_at: '2024-04-29T16:09:32.780547-04:00'
is_converting: false
has_permitted_device: true
has_backup_codes: false
created_at: '2024-05-16T14:31:48.940392-04:00'
updated_at: '2024-05-16T14:31:48.940401-04:00'
- body: '1'
internal_note: false
id: 1718d5bd-54b3-4b4d-af0e-c2b856cf6552
thread_id: 3e788485-2d04-4ed8-ac88-a89b5ca3b104
author:
email: demo@narmitech.com
core_provided_email: null
username: testuser
id: 07231f46-23f1-482e-bdc4-35f2267b60e6
institution_user_identifier: ''
updated_at: '2024-04-30T20:16:46.861043+00:00'
addresses: []
phone_numbers: []
first_name: ''
last_name: ''
paper_statements: null
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: false
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-06-11 15:05:32.862565+00:00'
segment: ''
metadata: {}
has_username: true
has_password: true
has_accepted_latest_terms: true
requires_enrollment_code_verification: false
enabled_estatements_at: '2024-04-29T16:09:32.780547-04:00'
is_converting: false
has_permitted_device: true
has_backup_codes: false
created_at: '2024-05-16T14:31:48.559740-04:00'
updated_at: '2024-05-16T14:31:48.559752-04:00'
- body: '0'
internal_note: false
id: 94f6f42e-b441-4c3f-9227-3b7218c0a032
thread_id: 26ac2bdb-0426-4563-8bfb-cd1d35efbd02
author:
email: demo@narmitech.com
core_provided_email: null
username: testuser
id: 07231f46-23f1-482e-bdc4-35f2267b60e6
institution_user_identifier: ''
updated_at: '2024-04-30T20:16:46.861043+00:00'
addresses: []
phone_numbers: []
first_name: ''
last_name: ''
paper_statements: null
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: false
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-06-11 15:05:32.862565+00:00'
segment: ''
metadata: {}
has_username: true
has_password: true
has_accepted_latest_terms: true
requires_enrollment_code_verification: false
enabled_estatements_at: '2024-04-29T16:09:32.780547-04:00'
is_converting: false
has_permitted_device: true
has_backup_codes: false
created_at: '2024-05-16T14:18:12.700044-04:00'
updated_at: '2024-05-16T14:18:12.700053-04:00'
- body: '1'
internal_note: false
id: 827df9b3-0906-4b62-a017-ac68bfcb8c3d
thread_id: d1c6c02c-eaf2-44ed-961e-dcc5a7ec75bb
author:
email: demo@narmitech.com
core_provided_email: null
username: testuser
id: 07231f46-23f1-482e-bdc4-35f2267b60e6
institution_user_identifier: ''
updated_at: '2024-04-30T20:16:4
# --- truncated at 32 KB (190 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/narmi/refs/heads/main/openapi/narmi-threads-api-openapi.yml