LearnCard Documentation
GithubStatusSupportLaunch App
  • ๐Ÿš€Introduction
    • What is LearnCard?
    • Use Cases & Possibilities
    • Ecosystem Architecture
  • โšกQuick Start
    • Setup & Prerequisites
    • Your First Integration
  • ๐Ÿ“šTutorials
    • Create a Credential
    • Create a Boost
    • Create a ConsentFlow
    • Create a Connected Website
    • Send xAPI Statements
    • Listen to Webhooks
  • โœ…How-To Guides
    • Verify My Issuer
    • Connect Systems
      • Connect a Website
      • Connect a Game
    • Implement Flows
      • Claim Data after Guardian Consent
      • Connect via CHAPI
        • โญCHAPI Wallet Setup Guide
        • โ†”๏ธTranslating to CHAPI documentation
        • ๐Ÿ–ฅ๏ธDemo Application
        • ๐Ÿ”ฐUsing LearnCard to Interact with a CHAPI Wallet
        • ๐Ÿ“Cheat Sheets
          • Issuers
          • Wallets
    • Deploy Infrastructure
      • Remote Key Management
      • Generate API Tokens
      • Signing Authority
      • Connect to Independent Network
      • Build a Plugin
  • ๐Ÿ› ๏ธSDKs & API Reference
    • LearnCard Wallet SDK
      • Authentication
      • Usage Examples
      • SDK Reference
      • Plugin API Reference
      • Integration Strategies
      • Deployment
      • Troubleshooting
      • Changelog
    • LearnCloud Network API
      • Authentication
      • Usage Examples
      • Architecture
      • Notifications & Webhooks
      • Profiles
      • Profile Managers
      • Credentials
      • Boosts
      • Presentations
      • Storage
      • Contracts
      • DID Metadata
      • Claim Hooks
      • Auth Grants
      • Utilities
      • Models
      • OpenAPI
    • LearnCloud Storage API
      • Authentication
      • Usage Examples
      • Architecture
      • Storage
      • Index
      • User
      • Custom Storage
      • Utilities
      • Models
      • xAPI Reference
    • Plugins
      • Crypto
      • DIDKit
      • DID Key
      • Dynamic Loader
      • VC
        • Expiration Sub-Plugin
      • VC-Templates
      • VC-API
      • Ceramic
      • IDX
      • VPQR
      • Ethereum
      • CHAPI
      • LearnCard Network
      • LearnCloud
      • LearnCard
      • Simple Signing
      • Claimable Boosts
    • LearnCard CLI
  • ๐Ÿง Core Concepts
    • Identities & Keys
      • Decentralized Identifiers (DIDs)
      • Seed Phrases
      • Network Profiles
      • Signing Authorities
      • Trust Registries
    • Credentials & Data
      • Verifiable Credentials (VCs)
      • Credential Lifecycle
      • Schemas, Types, & Categories
      • Building Verifiable Credentials
      • Boost Credentials
      • Getting Started with Boosts
      • Credential URIs
      • xAPI Data
      • General Best Practices & Troubleshooting
    • Consent & Permissions
      • ConsentFlow Overview
      • Consent Contracts
      • User Consent & Terms
      • Consent Transactions
      • Auto-Boosts
      • Writing Consented Data
      • Accessing Consented Data
      • GameFlow Overview
    • Network & Interactions
      • Network Vision & Principles
      • Key Network Procedures
      • Core Interaction Workflows
    • Architecture & Principles
      • Control Planes
      • Plugin System
      • Auth Grants and API Tokens
  • ๐Ÿ”—Development
    • Contributing
Powered by GitBook
On this page

Was this helpful?

  1. SDKs & API Reference
  2. LearnCloud Network API

Profiles

PreviousNotifications & WebhooksNextProfile Managers

Was this helpful?

๐Ÿ› ๏ธ

Get your profile information

get

This route uses the request header to grab the profile of the current user

Authorizations
Responses
200
Successful response
application/json
Responseany of
notOptional
or
default
Error response
application/json
get
GET /api/profile HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Delete your profile

delete

This route deletes the profile of the current user

Authorizations
Responses
200
Successful response
application/json
Responseboolean
default
Error response
application/json
delete
DELETE /api/profile HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
true

Get profile information

get

This route grabs the profile information of any user, using their profileId

Path parameters
profileIdstringRequired
Responses
200
Successful response
application/json
Responseany of
notOptional
or
default
Error response
application/json
get
GET /api/profile/{profileId} HTTP/1.1
Host: ..
Accept: */*

No content

Managed Service Profiles

get

This route gets all of your managed service profiles

Query parameters
limitnumberOptionalDefault: 25
cursorstringOptional
sortstringOptional
idstringOptional
Responses
200
Successful response
application/json
default
Error response
application/json
get
GET /api/profile/managed-services HTTP/1.1
Host: ..
Accept: */*
{
  "cursor": "text",
  "hasMore": true,
  "records": [
    {
      "profileId": "text",
      "displayName": "",
      "shortBio": "",
      "bio": "",
      "did": "text",
      "isPrivate": true,
      "email": "text",
      "image": "text",
      "heroImage": "text",
      "websiteLink": "text",
      "isServiceProfile": false,
      "type": "text",
      "notificationsWebhook": "https://example.com",
      "display": {
        "backgroundColor": "text",
        "backgroundImage": "text",
        "fadeBackgroundImage": true,
        "repeatBackgroundImage": true,
        "fontColor": "text",
        "accentColor": "text",
        "accentFontColor": "text",
        "idBackgroundImage": "text",
        "fadeIdBackgroundImage": true,
        "idBackgroundColor": "text",
        "repeatIdBackgroundImage": true
      },
      "role": "",
      "dob": ""
    }
  ]
}

Search profiles

get

This route searches for profiles based on their profileId

Path parameters
inputstringRequired
Query parameters
limitinteger ยท max: 100OptionalDefault: 25
includeSelfbooleanOptionalDefault: false
includeConnectionStatusbooleanOptionalDefault: false
includeServiceProfilesbooleanOptionalDefault: false
Responses
200
Successful response
application/json
default
Error response
application/json
get
GET /api/search/profiles/{input} HTTP/1.1
Host: ..
Accept: */*
[
  {
    "profileId": "text",
    "displayName": "",
    "shortBio": "",
    "bio": "",
    "did": "text",
    "isPrivate": true,
    "email": "text",
    "image": "text",
    "heroImage": "text",
    "websiteLink": "text",
    "isServiceProfile": false,
    "type": "text",
    "notificationsWebhook": "https://example.com",
    "display": {
      "backgroundColor": "text",
      "backgroundImage": "text",
      "fadeBackgroundImage": true,
      "repeatBackgroundImage": true,
      "fontColor": "text",
      "accentColor": "text",
      "accentFontColor": "text",
      "idBackgroundImage": "text",
      "fadeIdBackgroundImage": true,
      "idBackgroundColor": "text",
      "repeatIdBackgroundImage": true
    },
    "role": "",
    "dob": "",
    "connectionStatus": "CONNECTED"
  }
]

Connect with another profile

post

This route uses the request header to send a connection request to another user based on their profileId

Authorizations
Path parameters
profileIdstringRequired
Responses
200
Successful response
application/json
Responseboolean
default
Error response
application/json
post
POST /api/profile/{profileId}/connect HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
true

Cancel Connection Request

post

Cancels connection request with another profile

Authorizations
Path parameters
profileIdstringRequired
Responses
200
Successful response
application/json
Responseboolean
default
Error response
application/json
post
POST /api/profile/{profileId}/cancel-connection-request HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
true

Connect using an invitation

post

Connects with another profile using an invitation challenge

Authorizations
Path parameters
profileIdstringRequired
challengestringRequired
Responses
200
Successful response
application/json
Responseboolean
default
Error response
application/json
post
POST /api/profile/{profileId}/connect/{challenge} HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
true

Disconnect with another profile

post

This route uses the request header to disconnect with another user based on their profileId

Authorizations
Path parameters
profileIdstringRequired
Responses
200
Successful response
application/json
Responseboolean
default
Error response
application/json
post
POST /api/profile/{profileId}/disconnect HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
true

Accept Connection Request

post

This route uses the request header to accept a connection request from another user based on their profileId

Authorizations
Path parameters
profileIdstringRequired
Responses
200
Successful response
application/json
Responseboolean
default
Error response
application/json
post
POST /api/profile/{profileId}/accept-connection HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
true
Deprecated

View connections

get

This route shows the current user's connections. Warning! This route is deprecated and currently has a hard limit of returning only the first 50 connections. Please use paginatedConnections instead!

Authorizations
Responses
200
Successful response
application/json
default
Error response
application/json
get
GET /api/profile/connections HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "profileId": "text",
    "displayName": "",
    "shortBio": "",
    "bio": "",
    "did": "text",
    "isPrivate": true,
    "email": "text",
    "image": "text",
    "heroImage": "text",
    "websiteLink": "text",
    "isServiceProfile": false,
    "type": "text",
    "notificationsWebhook": "https://example.com",
    "display": {
      "backgroundColor": "text",
      "backgroundImage": "text",
      "fadeBackgroundImage": true,
      "repeatBackgroundImage": true,
      "fontColor": "text",
      "accentColor": "text",
      "accentFontColor": "text",
      "idBackgroundImage": "text",
      "fadeIdBackgroundImage": true,
      "idBackgroundColor": "text",
      "repeatIdBackgroundImage": true
    },
    "role": "",
    "dob": ""
  }
]

View connections

get

This route shows the current user's connections

Authorizations
Query parameters
limitnumberOptionalDefault: 25
cursorstringOptional
sortstringOptional
Responses
200
Successful response
application/json
default
Error response
application/json
get
GET /api/profile/connections/paginated HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "cursor": "text",
  "hasMore": true,
  "records": [
    {
      "profileId": "text",
      "displayName": "",
      "shortBio": "",
      "bio": "",
      "did": "text",
      "isPrivate": true,
      "email": "text",
      "image": "text",
      "heroImage": "text",
      "websiteLink": "text",
      "isServiceProfile": false,
      "type": "text",
      "notificationsWebhook": "https://example.com",
      "display": {
        "backgroundColor": "text",
        "backgroundImage": "text",
        "fadeBackgroundImage": true,
        "repeatBackgroundImage": true,
        "fontColor": "text",
        "accentColor": "text",
        "accentFontColor": "text",
        "idBackgroundImage": "text",
        "fadeIdBackgroundImage": true,
        "idBackgroundColor": "text",
        "repeatIdBackgroundImage": true
      },
      "role": "",
      "dob": ""
    }
  ]
}
Deprecated

View pending connections

get

This route shows the current user's pending connections. Warning! This route is deprecated and currently has a hard limit of returning only the first 50 connections. Please use paginatedPendingConnections instead

Authorizations
Responses
200
Successful response
application/json
default
Error response
application/json
get
GET /api/profile/pending-connections HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "profileId": "text",
    "displayName": "",
    "shortBio": "",
    "bio": "",
    "did": "text",
    "isPrivate": true,
    "email": "text",
    "image": "text",
    "heroImage": "text",
    "websiteLink": "text",
    "isServiceProfile": false,
    "type": "text",
    "notificationsWebhook": "https://example.com",
    "display": {
      "backgroundColor": "text",
      "backgroundImage": "text",
      "fadeBackgroundImage": true,
      "repeatBackgroundImage": true,
      "fontColor": "text",
      "accentColor": "text",
      "accentFontColor": "text",
      "idBackgroundImage": "text",
      "fadeIdBackgroundImage": true,
      "idBackgroundColor": "text",
      "repeatIdBackgroundImage": true
    },
    "role": "",
    "dob": ""
  }
]

View pending connections

get

This route shows the current user's pending connections

Authorizations
Query parameters
limitnumberOptionalDefault: 25
cursorstringOptional
sortstringOptional
Responses
200
Successful response
application/json
default
Error response
application/json
get
GET /api/profile/pending-connections/paginated HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "cursor": "text",
  "hasMore": true,
  "records": [
    {
      "profileId": "text",
      "displayName": "",
      "shortBio": "",
      "bio": "",
      "did": "text",
      "isPrivate": true,
      "email": "text",
      "image": "text",
      "heroImage": "text",
      "websiteLink": "text",
      "isServiceProfile": false,
      "type": "text",
      "notificationsWebhook": "https://example.com",
      "display": {
        "backgroundColor": "text",
        "backgroundImage": "text",
        "fadeBackgroundImage": true,
        "repeatBackgroundImage": true,
        "fontColor": "text",
        "accentColor": "text",
        "accentFontColor": "text",
        "idBackgroundImage": "text",
        "fadeIdBackgroundImage": true,
        "idBackgroundColor": "text",
        "repeatIdBackgroundImage": true
      },
      "role": "",
      "dob": ""
    }
  ]
}
Deprecated

View connection requests

get

This route shows the current user's connection requests. Warning! This route is deprecated and currently has a hard limit of returning only the first 50 connections. Please use paginatedConnectionRequests instead

Authorizations
Responses
200
Successful response
application/json
default
Error response
application/json
get
GET /api/profile/connection-requests HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "profileId": "text",
    "displayName": "",
    "shortBio": "",
    "bio": "",
    "did": "text",
    "isPrivate": true,
    "email": "text",
    "image": "text",
    "heroImage": "text",
    "websiteLink": "text",
    "isServiceProfile": false,
    "type": "text",
    "notificationsWebhook": "https://example.com",
    "display": {
      "backgroundColor": "text",
      "backgroundImage": "text",
      "fadeBackgroundImage": true,
      "repeatBackgroundImage": true,
      "fontColor": "text",
      "accentColor": "text",
      "accentFontColor": "text",
      "idBackgroundImage": "text",
      "fadeIdBackgroundImage": true,
      "idBackgroundColor": "text",
      "repeatIdBackgroundImage": true
    },
    "role": "",
    "dob": ""
  }
]

View connection requests

get

This route shows the current user's connection requests

Authorizations
Query parameters
limitnumberOptionalDefault: 25
cursorstringOptional
sortstringOptional
Responses
200
Successful response
application/json
default
Error response
application/json
get
GET /api/profile/connection-requests/paginated HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "cursor": "text",
  "hasMore": true,
  "records": [
    {
      "profileId": "text",
      "displayName": "",
      "shortBio": "",
      "bio": "",
      "did": "text",
      "isPrivate": true,
      "email": "text",
      "image": "text",
      "heroImage": "text",
      "websiteLink": "text",
      "isServiceProfile": false,
      "type": "text",
      "notificationsWebhook": "https://example.com",
      "display": {
        "backgroundColor": "text",
        "backgroundImage": "text",
        "fadeBackgroundImage": true,
        "repeatBackgroundImage": true,
        "fontColor": "text",
        "accentColor": "text",
        "accentFontColor": "text",
        "idBackgroundImage": "text",
        "fadeIdBackgroundImage": true,
        "idBackgroundColor": "text",
        "repeatIdBackgroundImage": true
      },
      "role": "",
      "dob": ""
    }
  ]
}

Block another profile

post

Block another user based on their profileId

Authorizations
Path parameters
profileIdstringRequired
Responses
200
Successful response
application/json
Responseboolean
default
Error response
application/json
post
POST /api/profile/{profileId}/block HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
true

Unblock another profile

post

Unblock another user based on their profileId

Authorizations
Path parameters
profileIdstringRequired
Responses
200
Successful response
application/json
Responseboolean
default
Error response
application/json
post
POST /api/profile/{profileId}/unblock HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
true

View blocked profiles

get

This route shows the current user's blocked profiles

Authorizations
Responses
200
Successful response
application/json
default
Error response
application/json
get
GET /api/profile/blocked HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "profileId": "text",
    "displayName": "",
    "shortBio": "",
    "bio": "",
    "did": "text",
    "isPrivate": true,
    "email": "text",
    "image": "text",
    "heroImage": "text",
    "websiteLink": "text",
    "isServiceProfile": false,
    "type": "text",
    "notificationsWebhook": "https://example.com",
    "display": {
      "backgroundColor": "text",
      "backgroundImage": "text",
      "fadeBackgroundImage": true,
      "repeatBackgroundImage": true,
      "fontColor": "text",
      "accentColor": "text",
      "accentFontColor": "text",
      "idBackgroundImage": "text",
      "fadeIdBackgroundImage": true,
      "idBackgroundColor": "text",
      "repeatIdBackgroundImage": true
    },
    "role": "",
    "dob": ""
  }
]

Get Signing Authorities for user

get

This route is used to get registered signing authorities that can sign credentials on the current user's behalf

Authorizations
Responses
200
Successful response
application/json
default
Error response
application/json
get
GET /api/profile/signing-authority/get/all HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "signingAuthority": {
      "endpoint": "text"
    },
    "relationship": {
      "name": "text",
      "did": "text"
    }
  }
]

Get Signing Authority for user

get

This route is used to get a named signing authority that can sign credentials on the current user's behalf

Authorizations
Query parameters
endpointstringRequired
namestringRequired
Responses
200
Successful response
application/json
Responseany of
or
notOptional
default
Error response
application/json
get
GET /api/profile/signing-authority/get?endpoint=text&name=text HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "signingAuthority": {
    "endpoint": "text"
  },
  "relationship": {
    "name": "text",
    "did": "text"
  }
}
  • POSTCreate a profile
  • POSTCreate a service profile
  • POSTCreate a managed service profile
  • GETGet your profile information
  • POSTUpdate your profile
  • DELETEDelete your profile
  • GETGet profile information
  • POSTAvailable Profiles
  • GETManaged Service Profiles
  • GETSearch profiles
  • POSTConnect with another profile
  • POSTCancel Connection Request
  • POSTConnect using an invitation
  • POSTDisconnect with another profile
  • POSTAccept Connection Request
  • GETView connections
  • GETView connections
  • GETView pending connections
  • GETView pending connections
  • GETView connection requests
  • GETView connection requests
  • POSTGenerate a connection invitation
  • POSTBlock another profile
  • POSTUnblock another profile
  • GETView blocked profiles
  • POSTRegister a Signing Authority
  • GETGet Signing Authorities for user
  • GETGet Signing Authority for user
  • POSTCreate a managed profile
  • POSTManaged Profiles

Create a profile

post

Creates a profile for a user

Authorizations
Body
profileIdstring ยท min: 3 ยท max: 40Required

Unique, URL-safe identifier for the profile.

displayNamestringOptional

Human-readable display name for the profile.

Default: ""
shortBiostringOptional

Short bio for the profile.

Default: ""
biostringOptional

Longer bio for the profile.

Default: ""
isPrivatebooleanOptional

Whether the profile is private or not and shows up in search results.

emailstringOptional

Contact email address for the profile.

imagestringOptional

Profile image URL for the profile.

heroImagestringOptional

Hero image URL for the profile.

websiteLinkstringOptional

Website link for the profile.

typestringOptional

Profile type: e.g. "person", "organization", "service".

notificationsWebhookstring ยท uriOptional

URL to send notifications to.

Pattern: ^http
rolestringOptional

Role of the profile: e.g. "teacher", "student".

Default: ""
dobstringOptional

Date of birth of the profile: e.g. "1990-01-01".

Default: ""
Responses
200
Successful response
application/json
Responsestring
default
Error response
application/json
post
POST /api/profile/create HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 522

{
  "profileId": "text",
  "displayName": "",
  "shortBio": "",
  "bio": "",
  "isPrivate": true,
  "email": "text",
  "image": "text",
  "heroImage": "text",
  "websiteLink": "text",
  "type": "text",
  "notificationsWebhook": "https://example.com",
  "display": {
    "backgroundColor": "text",
    "backgroundImage": "text",
    "fadeBackgroundImage": true,
    "repeatBackgroundImage": true,
    "fontColor": "text",
    "accentColor": "text",
    "accentFontColor": "text",
    "idBackgroundImage": "text",
    "fadeIdBackgroundImage": true,
    "idBackgroundColor": "text",
    "repeatIdBackgroundImage": true
  },
  "role": "",
  "dob": ""
}
text

Create a service profile

post

Creates a service profile

Authorizations
Body
profileIdstring ยท min: 3 ยท max: 40Required

Unique, URL-safe identifier for the profile.

displayNamestringOptional

Human-readable display name for the profile.

Default: ""
shortBiostringOptional

Short bio for the profile.

Default: ""
biostringOptional

Longer bio for the profile.

Default: ""
isPrivatebooleanOptional

Whether the profile is private or not and shows up in search results.

emailstringOptional

Contact email address for the profile.

imagestringOptional

Profile image URL for the profile.

heroImagestringOptional

Hero image URL for the profile.

websiteLinkstringOptional

Website link for the profile.

typestringOptional

Profile type: e.g. "person", "organization", "service".

notificationsWebhookstring ยท uriOptional

URL to send notifications to.

Pattern: ^http
rolestringOptional

Role of the profile: e.g. "teacher", "student".

Default: ""
dobstringOptional

Date of birth of the profile: e.g. "1990-01-01".

Default: ""
Responses
200
Successful response
application/json
Responsestring
default
Error response
application/json
post
POST /api/profile/create-service HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 522

{
  "profileId": "text",
  "displayName": "",
  "shortBio": "",
  "bio": "",
  "isPrivate": true,
  "email": "text",
  "image": "text",
  "heroImage": "text",
  "websiteLink": "text",
  "type": "text",
  "notificationsWebhook": "https://example.com",
  "display": {
    "backgroundColor": "text",
    "backgroundImage": "text",
    "fadeBackgroundImage": true,
    "repeatBackgroundImage": true,
    "fontColor": "text",
    "accentColor": "text",
    "accentFontColor": "text",
    "idBackgroundImage": "text",
    "fadeIdBackgroundImage": true,
    "idBackgroundColor": "text",
    "repeatIdBackgroundImage": true
  },
  "role": "",
  "dob": ""
}
text

Create a managed service profile

post

Creates a managed service profile

Authorizations
Body
profileIdstring ยท min: 3 ยท max: 40Required

Unique, URL-safe identifier for the profile.

displayNamestringOptional

Human-readable display name for the profile.

Default: ""
shortBiostringOptional

Short bio for the profile.

Default: ""
biostringOptional

Longer bio for the profile.

Default: ""
isPrivatebooleanOptional

Whether the profile is private or not and shows up in search results.

emailstringOptional

Contact email address for the profile.

imagestringOptional

Profile image URL for the profile.

heroImagestringOptional

Hero image URL for the profile.

websiteLinkstringOptional

Website link for the profile.

typestringOptional

Profile type: e.g. "person", "organization", "service".

notificationsWebhookstring ยท uriOptional

URL to send notifications to.

Pattern: ^http
rolestringOptional

Role of the profile: e.g. "teacher", "student".

Default: ""
dobstringOptional

Date of birth of the profile: e.g. "1990-01-01".

Default: ""
Responses
200
Successful response
application/json
Responsestring
default
Error response
application/json
post
POST /api/profile/create-managed-service HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 522

{
  "profileId": "text",
  "displayName": "",
  "shortBio": "",
  "bio": "",
  "isPrivate": true,
  "email": "text",
  "image": "text",
  "heroImage": "text",
  "websiteLink": "text",
  "type": "text",
  "notificationsWebhook": "https://example.com",
  "display": {
    "backgroundColor": "text",
    "backgroundImage": "text",
    "fadeBackgroundImage": true,
    "repeatBackgroundImage": true,
    "fontColor": "text",
    "accentColor": "text",
    "accentFontColor": "text",
    "idBackgroundImage": "text",
    "fadeIdBackgroundImage": true,
    "idBackgroundColor": "text",
    "repeatIdBackgroundImage": true
  },
  "role": "",
  "dob": ""
}
text

Update your profile

post

This route updates the profile of the current user

Authorizations
Body
profileIdstring ยท min: 3 ยท max: 40Optional

Unique, URL-safe identifier for the profile.

displayNamestringOptional

Human-readable display name for the profile.

Default: ""
shortBiostringOptional

Short bio for the profile.

Default: ""
biostringOptional

Longer bio for the profile.

Default: ""
isPrivatebooleanOptional

Whether the profile is private or not and shows up in search results.

emailstringOptional

Contact email address for the profile.

imagestringOptional

Profile image URL for the profile.

heroImagestringOptional

Hero image URL for the profile.

websiteLinkstringOptional

Website link for the profile.

typestringOptional

Profile type: e.g. "person", "organization", "service".

notificationsWebhookstring ยท uriOptional

URL to send notifications to.

Pattern: ^http
rolestringOptional

Role of the profile: e.g. "teacher", "student".

Default: ""
dobstringOptional

Date of birth of the profile: e.g. "1990-01-01".

Default: ""
Responses
200
Successful response
application/json
Responseboolean
default
Error response
application/json
post
POST /api/profile HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 522

{
  "profileId": "text",
  "displayName": "",
  "shortBio": "",
  "bio": "",
  "isPrivate": true,
  "email": "text",
  "image": "text",
  "heroImage": "text",
  "websiteLink": "text",
  "type": "text",
  "notificationsWebhook": "https://example.com",
  "display": {
    "backgroundColor": "text",
    "backgroundImage": "text",
    "fadeBackgroundImage": true,
    "repeatBackgroundImage": true,
    "fontColor": "text",
    "accentColor": "text",
    "accentFontColor": "text",
    "idBackgroundImage": "text",
    "fadeIdBackgroundImage": true,
    "idBackgroundColor": "text",
    "repeatIdBackgroundImage": true
  },
  "role": "",
  "dob": ""
}
true

Available Profiles

post

This route gets all of your available profiles. That is, profiles you directly or indirectly manage

Body
limitnumberOptionalDefault: 25
cursorstringOptional
sortstringOptional
Responses
200
Successful response
application/json
default
Error response
application/json
post
POST /api/profile/available-profiles HTTP/1.1
Host: ..
Content-Type: application/json
Accept: */*
Content-Length: 197

{
  "limit": 25,
  "cursor": "text",
  "sort": "text",
  "query": {
    "profileId": "text",
    "displayName": "text",
    "shortBio": "text",
    "bio": "text",
    "email": "text",
    "websiteLink": "text",
    "isServiceProfile": true,
    "type": "text"
  }
}
{
  "cursor": "text",
  "hasMore": true,
  "records": [
    {
      "profile": {
        "profileId": "text",
        "displayName": "",
        "shortBio": "",
        "bio": "",
        "did": "text",
        "isPrivate": true,
        "email": "text",
        "image": "text",
        "heroImage": "text",
        "websiteLink": "text",
        "isServiceProfile": false,
        "type": "text",
        "notificationsWebhook": "https://example.com",
        "display": {
          "backgroundColor": "text",
          "backgroundImage": "text",
          "fadeBackgroundImage": true,
          "repeatBackgroundImage": true,
          "fontColor": "text",
          "accentColor": "text",
          "accentFontColor": "text",
          "idBackgroundImage": "text",
          "fadeIdBackgroundImage": true,
          "idBackgroundColor": "text",
          "repeatIdBackgroundImage": true
        },
        "role": "",
        "dob": ""
      },
      "manager": {
        "id": "text",
        "created": "text",
        "displayName": "",
        "shortBio": "",
        "bio": "",
        "email": "text",
        "image": "text",
        "heroImage": "text",
        "did": "text"
      }
    }
  ]
}

Generate a connection invitation

post

This route creates a one-time challenge that an unknown profile can use to connect with this account

Authorizations
Body
expirationnumberOptionalDefault: 2592000
challengestringOptional
Responses
200
Successful response
application/json
default
Error response
application/json
post
POST /api/profile/generate-invite HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 41

{
  "expiration": 2592000,
  "challenge": "text"
}
{
  "profileId": "text",
  "challenge": "text",
  "expiresIn": 1
}

Register a Signing Authority

post

This route is used to register a signing authority that can sign credentials on the current user's behalf

Authorizations
Body
endpointstringRequired
namestringRequired
didstringRequired
Responses
200
Successful response
application/json
Responseboolean
default
Error response
application/json
post
POST /api/profile/signing-authority/register HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 46

{
  "endpoint": "text",
  "name": "text",
  "did": "text"
}
true

Create a managed profile

post

Creates a managed profile

Authorizations
Body
profileIdstring ยท min: 3 ยท max: 40Required

Unique, URL-safe identifier for the profile.

displayNamestringOptional

Human-readable display name for the profile.

Default: ""
shortBiostringOptional

Short bio for the profile.

Default: ""
biostringOptional

Longer bio for the profile.

Default: ""
isPrivatebooleanOptional

Whether the profile is private or not and shows up in search results.

emailstringOptional

Contact email address for the profile.

imagestringOptional

Profile image URL for the profile.

heroImagestringOptional

Hero image URL for the profile.

websiteLinkstringOptional

Website link for the profile.

isServiceProfilebooleanOptional

Whether the profile is a service profile or not.

Default: false
typestringOptional

Profile type: e.g. "person", "organization", "service".

notificationsWebhookstring ยท uriOptional

URL to send notifications to.

Pattern: ^http
rolestringOptional

Role of the profile: e.g. "teacher", "student".

Default: ""
dobstringOptional

Date of birth of the profile: e.g. "1990-01-01".

Default: ""
Responses
200
Successful response
application/json
Responsestring
default
Error response
application/json
post
POST /api/profile/create-managed-profile HTTP/1.1
Host: ..
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 547

{
  "profileId": "text",
  "displayName": "",
  "shortBio": "",
  "bio": "",
  "isPrivate": true,
  "email": "text",
  "image": "text",
  "heroImage": "text",
  "websiteLink": "text",
  "isServiceProfile": false,
  "type": "text",
  "notificationsWebhook": "https://example.com",
  "display": {
    "backgroundColor": "text",
    "backgroundImage": "text",
    "fadeBackgroundImage": true,
    "repeatBackgroundImage": true,
    "fontColor": "text",
    "accentColor": "text",
    "accentFontColor": "text",
    "idBackgroundImage": "text",
    "fadeIdBackgroundImage": true,
    "idBackgroundColor": "text",
    "repeatIdBackgroundImage": true
  },
  "role": "",
  "dob": ""
}
text

Managed Profiles

post

This route gets all of your managed profiles

Body
limitnumberOptionalDefault: 25
cursorstringOptional
sortstringOptional
Responses
200
Successful response
application/json
default
Error response
application/json
post
POST /api/profile/managed-profiles HTTP/1.1
Host: ..
Content-Type: application/json
Accept: */*
Content-Length: 197

{
  "limit": 25,
  "cursor": "text",
  "sort": "text",
  "query": {
    "profileId": "text",
    "displayName": "text",
    "shortBio": "text",
    "bio": "text",
    "email": "text",
    "websiteLink": "text",
    "isServiceProfile": true,
    "type": "text"
  }
}
{
  "cursor": "text",
  "hasMore": true,
  "records": [
    {
      "profileId": "text",
      "displayName": "",
      "shortBio": "",
      "bio": "",
      "did": "text",
      "isPrivate": true,
      "email": "text",
      "image": "text",
      "heroImage": "text",
      "websiteLink": "text",
      "isServiceProfile": false,
      "type": "text",
      "notificationsWebhook": "https://example.com",
      "display": {
        "backgroundColor": "text",
        "backgroundImage": "text",
        "fadeBackgroundImage": true,
        "repeatBackgroundImage": true,
        "fontColor": "text",
        "accentColor": "text",
        "accentFontColor": "text",
        "idBackgroundImage": "text",
        "fadeIdBackgroundImage": true,
        "idBackgroundColor": "text",
        "repeatIdBackgroundImage": true
      },
      "role": "",
      "dob": ""
    }
  ]
}