Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/nestcoin:nestcoin-users-users-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
version: 3.0.2
title: Onboard External API Gateway Users Users API
description: '**Introduction**
API Gateway for Onboard
This specification describes API endpoints that are available to the public internet via the API gateway.'
contact:
name: Nestcoin TechOps
email: techops@nestcoin.com
license:
name: UNLICENSED
servers:
- url: https://external.dev.onboardpay.co
description: Gateway for external API on staging environment.
tags:
- name: users-users
description: User related endpoints
paths:
/users/me/send-otp:
x-original-path: /me/send-otp
get:
tags:
- users-users
summary: Provide otp for user
operationId: sendOtp
parameters:
- name: purpose
in: query
required: true
schema:
$ref: '#/components/schemas/OtpPurpose'
- name: verificationChannel
in: query
required: false
schema:
$ref: '#/components/schemas/PhoneNumberVerificationChannel'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/OtpSendResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessageDto'
'401':
description: Unauthorized request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessageDto'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessageDto'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessageDto'
security:
- authToken: []
x-visibility: external
/users/me:
x-original-path: /me
get:
tags:
- users-users
summary: Get a single user by their authorization token
operationId: getMyProfile
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UserDataDto'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessageDto'
'401':
description: Unauthorized request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessageDto'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessageDto'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessageDto'
security:
- authToken: []
x-visibility: external
/users/me/update-profile:
x-original-path: /me/update-profile
put:
tags:
- users-users
summary: Update partner's personal information
operationId: updateProfile
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateProfileRequestDto'
required: false
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UserProfileDataDto'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessageDto'
'401':
description: Unauthorized request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessageDto'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessageDto'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessageDto'
security:
- authToken: []
x-visibility: external
x-codegen-request-body-name: profileData
components:
schemas:
ProfileTradeDto:
type: object
properties:
hasPreviousTradeHistory:
type: boolean
description: Partner have previous trading experience
proofOfTrade:
type: array
description: Partner's proof of previous trade history
items:
type: string
referee:
type: string
description: Partner's referee
x-source-svc: users
PhoneNumberVerificationChannel:
type: string
enum:
- SMS
- WHATSAPP
x-source-svc: users
UserRoles:
type: string
description: the roles a user can possess on Onboard
enum:
- CUSTOMER
- MERCHANT
- MERCHANT_NETWORK
x-source-svc: users
UserTransactionLimit:
type: object
properties:
dailyTransactionLimit:
type: number
maxSingleTransactionLimit:
type: number
minSingleTransactionLimit:
type: number
maxLifetimeLimit:
type: number
x-source-svc: users
ProfileDataDto:
type: object
properties:
status:
$ref: '#/components/schemas/VerificationStatus'
fullname:
type: string
description: User's full name
country:
type: string
description: User's country
example: NG
dob:
type: string
description: User's date of birth
format: date
example: '2024-04-18T00:00:00.000Z'
displayName:
type: string
description: User's display name
proofOfAddress:
type: string
description: Proof of partner's address
hasBusinessBankAccount:
type: boolean
description: partner has a business account
businessName:
type: string
certificateOfIncorporation:
type: string
hasShareHolderList:
type: boolean
userInShareHolderList:
type: boolean
noShareHolderListEvidence:
type: string
useOfBusinessAccountApprovedByShareholders:
type: boolean
noOfLegalDirectors:
type: number
regulatoryIdsOfDirectors:
type: array
items:
type: string
depositTimeout:
type: number
example: 1200
approvalTimeout:
type: number
example: 1200
tradeHistoryDetails:
$ref: '#/components/schemas/ProfileTradeDto'
x-source-svc: users
UserProfileDataDto:
type: object
properties:
email:
type: string
userType:
$ref: '#/components/schemas/UsersSvcUserType'
profile:
$ref: '#/components/schemas/ProfileDataDto'
x-source-svc: users
KycJobStatus:
type: string
enum:
- VERIFIED
- UNVERIFIED
- IN_PROGRESS
- AWAITING_INPUT
- FAILED_VERIFICATION
- REVIEW_REQUIRED
- VERIFICATION_TIMEOUT
x-source-svc: users
UsersSvcUserType:
type: string
description: the type of the user
enum:
- CUSTOMER
- PARTNER
x-source-svc: users
UserDataDto:
required:
- email
- userId
type: object
properties:
userId:
type: string
description: the user ID
email:
type: string
description: User's email
name:
type: string
description: Name of customer
phoneNumber:
type: string
description: User phone number
example: '2348100000000'
phoneNumberVerified:
type: boolean
description: flag indicating if user has verified their phone number
fullName:
type: string
description: user's kyc fullname
referralLink:
type: string
description: referral link
referralCode:
type: string
description: referral code generated for this user. Also known as onboard pass
userType:
$ref: '#/components/schemas/UsersSvcUserType'
roles:
type: array
items:
$ref: '#/components/schemas/UserRoles'
isCustomer:
type: boolean
isMerchant:
type: boolean
isOnboardWalletUser:
type: boolean
description: flag indicating if user is an Onboard wallet user or not. i.e user has made use of/sign in using Onboard wallet before.
isOpnMerchant:
type: boolean
description: Indicates if the merchant has been provisioned for OPN
isMerchantNetwork:
type: boolean
kycStatus:
$ref: '#/components/schemas/KycJobStatus'
kycRetryCount:
type: number
description: The number of kyc retries
kycRetryLimit:
type: number
description: kyc retry limit
kycNameHistory:
type: array
description: History of name change
items:
$ref: '#/components/schemas/KycNameChangeHistoryDto'
comments:
type: array
items:
type: object
properties:
comment:
type: string
addedBy:
type: string
includes:
type: object
properties: {}
supportedCurrencies:
type: array
items:
type: string
language:
type: string
description: 'Language preference (preferred or detected).
Can be just language (en) or locale (en-GB). See samples
'
example: en, en-US, fr-FR, pt-BR
availability:
type: boolean
active:
type: boolean
country:
type: string
verifiedAddress:
type: string
description: Wallet Address connected to user's account.
example: '0x15b8b00fb8d2bd7d76e90e70294e87fc6ba79e3b'
profile:
$ref: '#/components/schemas/ProfileDataDto'
transactionLimit:
$ref: '#/components/schemas/UserTransactionLimit'
authSource:
type: string
description: specifies the user's wallet source
createdAt:
type: string
description: Timestamp field.
format: date-time
lastActiveAt:
type: string
description: Timestamp field.
format: date-time
isTotpSetup:
type: boolean
totpSetupAt:
type: string
description: Timestamp field.
format: date-time
verifiedPhoneNumberLastUpdatedAt:
type: string
description: Timestamp field.
format: date-time
x-source-svc: users
OtpPurpose:
type: string
description: the purpose of an otp
enum:
- SIGN_IN
- DELETE_ACCOUNT
- ADD_PAYMENT_METHOD
- EDIT_PAYMENT_METHOD
- CEX_ORDER_CONFIRMATION
- PHONE_NUMBER_VERIFICATION
- AUTHENTICATE_ACTION
- WALLET_RECOVERY
- WALLET_RESET
- MFA_SETUP
x-source-svc: users
KycNameChangeHistoryDto:
type: object
properties:
reason:
type: string
description: Name change reason
actor:
type: string
description: Name of admin that initiated the change
previousName:
type: string
description: Previous full name
currentName:
type: string
description: Current full name
evidenceUrl:
type: string
format: url
description: Url link of change request evidence
timestamp:
type: string
format: date-time
required:
- reason
- actor
- previousName
- currentName
- timestamp
x-source-svc: users
ErrorMessageDto:
description: Default error object for services. This gives consistent error object that all services may use.
type: object
required:
- code
- message
properties:
code:
type: string
description: Error code
example: UNKNOWN_ERROR
message:
type: string
description: Descriptive error message
example: Request could not be completed due to an error
data:
type: object
description: Additional data for this error message.
additionalProperties: true
properties: {}
x-common-model: ErrorMessageDto
OtpSendResponse:
type: object
properties:
sent:
type: boolean
authSessionId:
type: string
x-source-svc: users
UpdateProfileRequestDto:
type: object
properties:
fullname:
type: string
description: User's full name
country:
type: string
description: User's country
example: NG
dob:
type: string
description: User's date of birth
format: date
example: '2024-04-18T00:00:00.000Z'
hasBusinessBankAccount:
type: boolean
description: partner has a business account
displayName:
type: string
description: User's display name
proofOfAddress:
type: string
description: Proof of partner's address
x-source-svc: users
VerificationStatus:
type: string
description: user's verification status
enum:
- VERIFIED
- UNVERIFIED
- FAILED_VERIFICATION
- REVIEW_REQUIRED
- IN_PROGRESS
- REJECTED
x-source-svc: users
securitySchemes:
authSignature:
type: apiKey
name: x-signature
in: header
authToken:
type: apiKey
name: x-auth-token
in: header
description: Auth Token header for inter-service communication
x-organization: onboard
x-service-id: external-gateway
x-preserve-refs:
- '#/components/schemas/IntegrationProduct'
- '#/components/schemas/AdAppliedEscrowBalanceDto'
- '#/components/schemas/P2PWalletRecipient'
- '#/components/schemas/BankAccountRecipient'
- '#/components/schemas/MobileMoneyRecipient'
- '#/components/schemas/OrderEvent'
- '#/components/schemas/PaymentMethodEventAction'
- '#/components/schemas/PaymentMethodEventPayload'
- '#/components/schemas/TransactionServiceErrorCode'
- '#/components/schemas/ErrorCodes'