Elnora AI Account API
The Account API from Elnora AI — 10 operation(s) for account.
Operations 11
POST
/account/MagicLink/CompleteRegistration
Complete registration for new user after magic link verification
#
The Account API from Elnora AI — 10 operation(s) for account.
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/elnora-ai:elnora-ai-account-api"
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.
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: 3.2.0
info:
title: Elnora Account API
version: v1
description: 'The Elnora core REST API. Authenticate with an API key in the `X-API-Key` header (or `Authorization: Bearer`). Base URL: https://platform.elnora.ai/api/v1.'
servers:
- url: https://platform.elnora.ai/api/v1
description: Production
security:
- ApiKey: []
- Bearer: []
tags:
- name: Account
paths:
/account/ConfirmEmail:
post:
tags:
- Account
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConfirmEmail'
responses:
'200':
description: Success
content:
application/json:
schema:
type: string
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseMessage'
summary: Create account confirm email
x-summary-source: derived
operationId: postAccountConfirmEmail
x-operation-id-source: derived
/account/ExternalLogin:
post:
tags:
- Account
summary: Third party login and signup
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
provider:
type: string
returnUrl:
type: string
signup:
type: boolean
default: false
encoding:
provider:
style: form
returnUrl:
style: form
signup:
style: form
responses:
'200':
description: Success
operationId: postAccountExternalLogin
x-operation-id-source: derived
/account/ExternalLoginCallback:
get:
tags:
- Account
summary: For third party login and signup
parameters:
- name: returnUrl
in: query
schema:
type: string
- name: signup
in: query
schema:
type: boolean
responses:
'200':
description: Success
operationId: getAccountExternalLoginCallback
x-operation-id-source: derived
/account/MagicLink/CompleteRegistration:
post:
tags:
- Account
summary: Complete registration for new user after magic link verification
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CompleteMagicLinkRegistration'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/JwtResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseMessage'
operationId: postAccountMagicLinkCompleteRegistration
x-operation-id-source: derived
/account/MagicLink/Request:
post:
tags:
- Account
summary: Request a magic link for passwordless authentication
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MagicLinkRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseMessage'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseMessage'
operationId: postAccountMagicLinkRequest
x-operation-id-source: derived
/account/MagicLink/Verify:
post:
tags:
- Account
summary: Verify a magic link token and authenticate existing user
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MagicLinkVerify'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/MagicLinkVerifyResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseMessage'
operationId: postAccountMagicLinkVerify
x-operation-id-source: derived
/account/me:
delete:
tags:
- Account
responses:
'200':
description: Success
content:
application/json:
schema:
type: string
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseMessage'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseMessage'
summary: Delete account me
x-summary-source: derived
operationId: deleteAccountMe
x-operation-id-source: derived
/account/sso-callback:
get:
tags:
- Account
summary: Cognito redirect target after the IdP round-trip
parameters:
- name: code
in: query
schema:
type: string
- name: state
in: query
schema:
type: string
- name: error
in: query
schema:
type: string
responses:
'200':
description: Success
operationId: getAccountSsoCallback
x-operation-id-source: derived
/account/sso/start:
get:
tags:
- Account
summary: Initiate an enterprise SSO sign-in
parameters:
- name: email
in: query
schema:
type: string
- name: returnUrl
in: query
schema:
type: string
- name: test
in: query
schema:
type: boolean
default: false
responses:
'200':
description: Success
operationId: getAccountSsoStart
x-operation-id-source: derived
/account/user/{appUserId}:
put:
tags:
- Account
summary: For user to update their own information
parameters:
- name: appUserId
in: path
description: ''
required: true
schema:
type: integer
format: int32
requestBody:
description: All properties are optional.
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateUser'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UserSelf'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseMessage'
operationId: putAccountUserByAppUserId
x-operation-id-source: derived
get:
tags:
- Account
summary: For user to get their own aggregated information
parameters:
- name: appUserId
in: path
required: true
schema:
type: integer
format: int32
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UserSelf'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseMessage'
operationId: getAccountUserByAppUserId
x-operation-id-source: derived
components:
schemas:
JwtResponse:
type: object
properties:
id:
type: integer
format: int32
token:
type:
- string
- 'null'
displayName:
type:
- string
- 'null'
expiresAt:
type:
- string
- 'null'
status:
type:
- string
- 'null'
organizationId:
type:
- string
- 'null'
organizationName:
type:
- string
- 'null'
organizationRole:
type:
- string
- 'null'
additionalProperties: false
ResponseMessage:
type: object
properties:
errorCode:
type:
- string
- 'null'
messages:
type:
- array
- 'null'
items:
type: string
additionalProperties: false
ConfirmEmail:
type: object
properties:
email:
type:
- string
- 'null'
token:
type:
- string
- 'null'
additionalProperties: false
MagicLinkVerify:
required:
- code
- email
type: object
properties:
email:
minLength: 1
type: string
format: email
code:
maxLength: 6
minLength: 6
pattern: ^\d{6}$
type: string
additionalProperties: false
UserSelf:
type: object
properties:
id:
type: integer
format: int32
roles:
type:
- array
- 'null'
items:
type: string
email:
type:
- string
- 'null'
status:
type:
- string
- 'null'
displayName:
type:
- string
- 'null'
firstName:
type:
- string
- 'null'
lastName:
type:
- string
- 'null'
currentPosition:
type:
- string
- 'null'
currentEmployer:
type:
- string
- 'null'
hopes:
type:
- string
- 'null'
useCase:
type:
- string
- 'null'
referralCode:
type:
- string
- 'null'
createdAt:
type:
- string
- 'null'
updatedAt:
type:
- string
- 'null'
userAgreements:
$ref: '#/components/schemas/UserAgreements'
marketingConsent:
type:
- boolean
- 'null'
organizationMemberships:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/UserOrgMembership'
additionalProperties: false
MagicLinkRequest:
required:
- email
type: object
properties:
email:
minLength: 1
type: string
format: email
additionalProperties: false
MagicLinkVerifyResponse:
type: object
properties:
success:
type: boolean
error:
type:
- string
- 'null'
email:
type:
- string
- 'null'
userId:
type:
- integer
- 'null'
format: int32
isNewUser:
type: boolean
token:
type:
- string
- 'null'
displayName:
type:
- string
- 'null'
expiresAt:
type:
- string
- 'null'
status:
type:
- string
- 'null'
organizationId:
type:
- string
- 'null'
organizationName:
type:
- string
- 'null'
organizationRole:
type:
- string
- 'null'
additionalProperties: false
UpdateUser:
type: object
properties:
displayName:
type:
- string
- 'null'
firstName:
type:
- string
- 'null'
lastName:
type:
- string
- 'null'
currentPosition:
type:
- string
- 'null'
currentEmployer:
type:
- string
- 'null'
hopes:
type:
- string
- 'null'
useCase:
type:
- string
- 'null'
referralCode:
type:
- string
- 'null'
acceptedTermsAndConditions:
type:
- string
- 'null'
format: uuid
acceptedPrivacyPolicy:
type:
- string
- 'null'
format: uuid
marketingConsent:
type:
- boolean
- 'null'
additionalProperties: false
CompleteMagicLinkRegistration:
required:
- code
- email
- firstName
- lastName
- privacyPolicy
- termsConditions
type: object
properties:
email:
minLength: 1
type: string
format: email
code:
maxLength: 6
minLength: 6
type: string
firstName:
minLength: 1
type: string
lastName:
minLength: 1
type: string
displayName:
type:
- string
- 'null'
termsConditions:
type: boolean
privacyPolicy:
type: boolean
marketingConsent:
type: boolean
invitationToken:
type:
- string
- 'null'
additionalProperties: false
UserAgreement:
type: object
properties:
id:
type: string
format: uuid
documentVersionId:
type: string
format: uuid
userId:
type:
- integer
- 'null'
format: int32
acceptedAt:
type:
- string
- 'null'
createdAt:
type:
- string
- 'null'
updatedAt:
type:
- string
- 'null'
documentType:
type:
- string
- 'null'
versionName:
type:
- string
- 'null'
isHead:
type: boolean
additionalProperties: false
UserAgreements:
type: object
properties:
termsAndConditions:
$ref: '#/components/schemas/UserAgreement'
privacyPolicy:
$ref: '#/components/schemas/UserAgreement'
additionalProperties: false
UserOrgMembership:
type: object
properties:
organizationId:
type: string
format: uuid
organizationName:
type:
- string
- 'null'
role:
type:
- string
- 'null'
additionalProperties: false
securitySchemes:
Bearer:
type: apiKey
description: "JWT Authorization header using the Bearer scheme. \n\n Enter 'Bearer' [space] and then your token in the text input below.\n\nExample: \"Bearer 12345abcdef\""
name: Authorization
in: header
ApiKey:
type: apiKey
in: header
name: X-API-Key
description: Your Elnora API key (prefixed `elnora_live_`). Create one in the dashboard under Settings → API keys.