Membership Card

Add running xp

post
/entities/{entityId}/add-xp

This endpoint allows add running xp for a user.

Path parameters
entityIdstringRequired
Query parameters
userIdstringRequired

The Id of the user performing the request.

Example: dummy-userid
Header parameters
apikeystringRequired

The API key for authentication

Example: test
apisecretstringOptional

The secret key for authentication

Example: test-secret
tokenstringRequired

The token for user authentication.

Example: dummy-token
Body
xpnumberOptionalExample: 10
forUserIdstringOptionalExample: user-123
Responses
200

Successful response

application/json
post
/entities/{entityId}/add-xp
POST /api/entities/{entityId}/add-xp?userId=dummy-userid HTTP/1.1
Host: https:/.questprotocol.xyz
apikey: test
token: dummy-token
Content-Type: application/json
Accept: */*
Content-Length: 32

{
  "xp": 10,
  "forUserId": "user-123"
}
{
  "success": true
}

Get Membership for user

get
/entities/{entityId}/users/{userId}/xp

This endpoint allows get running xp for a user.

Path parameters
entityIdstringRequired
userIdstringRequired
Query parameters
userIdstringRequired

The Id of the user performing the request.

Example: dummy-userid
Header parameters
apikeystringRequired

The API key for authentication

Example: test
apisecretstringOptional

The secret key for authentication

Example: test-secret
tokenstringRequired

The token for user authentication.

Example: dummy-token
Responses
200

Successful response

application/json
get
/entities/{entityId}/users/{userId}/xp
GET /api/entities/{entityId}/users/{userId}/xp?userId=dummy-userid HTTP/1.1
Host: https:/.questprotocol.xyz
apikey: test
token: dummy-token
Accept: */*
{
  "success": true,
  "data": 1,
  "tier": 1,
  "xpThreshold": 1
}

Get DynamicNft for user

post
/entities/{entityId}/users/xp

This endpoint allows get Multiple DynamicNft for a user.

Path parameters
entityIdstringRequired
Query parameters
userIdstringRequired

The Id of the user performing the request.

Example: dummy-userid
Header parameters
apikeystringRequired

The API key for authentication

Example: test
apisecretstringOptional

The secret key for authentication

Example: test-secret
tokenstringRequired

The token for user authentication.

Example: dummy-token
Body
userIdsstring[]OptionalExample: ["userid-123","userid-456"]
Responses
200

Successful response

application/json
post
/entities/{entityId}/users/xp
POST /api/entities/{entityId}/users/xp?userId=dummy-userid HTTP/1.1
Host: https:/.questprotocol.xyz
apikey: test
token: dummy-token
Content-Type: application/json
Accept: */*
Content-Length: 39

{
  "userIds": [
    "userid-123",
    "userid-456"
  ]
}
{
  "success": true,
  "data": [
    {
      "userId": "text",
      "entityId": "text",
      "type": "text",
      "membershipTier": 1,
      "runningXP": 1,
      "totalXP": 1,
      "nftTokenId": "text",
      "name": "text",
      "title": "text",
      "description": "text",
      "image": "text",
      "animation_url": "text",
      "metadataIPFS": "text",
      "attributes": [
        {
          "display_type": "text",
          "trait_type": "text",
          "value": "text",
          "image": "text",
          "item_type": "text"
        }
      ],
      "createdAt": "2025-10-18T06:38:40.477Z"
    }
  ]
}

Get all membership cards of a user

get
/mynfts

This endpoint retrieves membership cards for a user.

Query parameters
userIdstringRequired

The Id of the user performing the request.

Example: dummy-userid
Header parameters
apikeystringRequired

The API key for authentication

Example: test
apisecretstringOptional

The secret key for authentication

Example: test-secret
useridstringRequired

The Id of the user performing the request.

Example: dummy-userid
tokenstringRequired

The token for user authentication.

Example: dummy-token
Responses
200

Successful response

application/json
get
/mynfts
GET /api/mynfts?userId=dummy-userid HTTP/1.1
Host: https:/.questprotocol.xyz
apikey: test
userid: dummy-userid
token: dummy-token
Accept: */*
{
  "success": true,
  "data": [
    {
      "userId": "user123",
      "entityId": "entity123",
      "type": "STATIC_MEDIA",
      "membershipTier": 2,
      "runningXP": 500,
      "totalXP": 1000,
      "nftTokenId": "token123",
      "name": "NFT Name",
      "title": "NFT Title",
      "description": "NFT Description",
      "image": "https://example.com/nft/image.jpg",
      "animation_url": "https://example.com/nft/animation.mp4",
      "metadataIPFS": "ipfs://metadata123",
      "attributes": [
        {
          "display_type": "boost_percentage",
          "trait_type": "skill",
          "value": {
            "score": 85
          },
          "image": "https://example.com/badge/image.png",
          "item_type": "badge"
        }
      ],
      "createdAt": "2023-06-27T12:45:00Z"
    }
  ]
}

Get membership card details for an entity

get
/entities/{entityId}/mynfts

This endpoint retrieves membership card details for an entity.

Path parameters
entityIdstringRequired
Query parameters
userIdstringRequired

The Id of the user performing the request.

Example: dummy-userid
Header parameters
apikeystringRequired

The API key for authentication

Example: test
apisecretstringOptional

The secret key for authentication

Example: test-secret
useridstringRequired

The Id of the user performing the request.

Example: dummy-userid
tokenstringRequired

The token for user authentication.

Example: dummy-token
Responses
200

Successful response

application/json
get
/entities/{entityId}/mynfts
GET /api/entities/{entityId}/mynfts?userId=dummy-userid HTTP/1.1
Host: https:/.questprotocol.xyz
apikey: test
userid: dummy-userid
token: dummy-token
Accept: */*
{
  "success": true,
  "data": {
    "userId": "user123",
    "entityId": "entity123",
    "type": "STATIC_MEDIA",
    "membershipTier": 2,
    "runningXP": 500,
    "totalXP": 1000,
    "nftTokenId": "token123",
    "name": "NFT Name",
    "title": "NFT Title",
    "description": "NFT Description",
    "image": "https://example.com/nft/image.jpg",
    "animation_url": "https://example.com/nft/animation.mp4",
    "metadataIPFS": "ipfs://metadata123",
    "attributes": [
      {
        "display_type": "boost_percentage",
        "trait_type": "skill",
        "value": {
          "score": 85
        },
        "image": "https://example.com/badge/image.png",
        "item_type": "badge"
      }
    ],
    "createdAt": "2023-06-27T12:45:00Z"
  },
  "entity_data": {
    "id": "entity123",
    "entityURLAlias": "my-entity",
    "entityRecordIds": [
      "record1",
      "record2"
    ],
    "contracts": [
      "contract1",
      "contract2"
    ],
    "badgeContractAddress": "0x123abc",
    "dyNFTContractAddress": "0x456def",
    "themeContractAddress": "0x789ghi",
    "name": "My Entity",
    "openseaSlug": "my-entity-slug",
    "description": "This is my entity description.",
    "twitter": "myentity",
    "discord": "myentity#1234",
    "telegram": "myentity",
    "instagram": "myentity",
    "website": "https://myentity.com",
    "medium": "myentity",
    "imageUrl": "https://example.com/myentity.jpg",
    "bannerUrl": "https://example.com/myentity-banner.jpg",
    "isEnabled": false,
    "isPrivate": false,
    "chainSource": "OFF_CHAIN",
    "defaultDyNftThemeId": "0",
    "discordQuestWebhookURL": "https://example.com/discord-webhook",
    "modifiedAt": "2023-06-27T12:45:00Z",
    "createdAt": "2023-06-25T09:00:00Z",
    "plan": "FREE",
    "theme": {},
    "parentEntityId": "e-0000001"
  }
}

Recalculate users membership card

get
/hidden/entities/{entityId}/recalculate-mynft

This endpoint recalculates a user's membership card.

Path parameters
entityIdstringRequired
Query parameters
userIdstringRequired

The Id of the user performing the request.

Example: dummy-userid
Header parameters
apikeystringRequired

The API key for authentication

Example: test
apisecretstringOptional

The secret key for authentication

Example: test-secret
useridstringRequired

The Id of the user performing the request.

Example: dummy-userid
tokenstringRequired

The token for user authentication.

Example: dummy-token
Responses
200

Successful response

application/json
get
/hidden/entities/{entityId}/recalculate-mynft
GET /api/hidden/entities/{entityId}/recalculate-mynft?userId=dummy-userid HTTP/1.1
Host: https:/.questprotocol.xyz
apikey: test
userid: dummy-userid
token: dummy-token
Accept: */*
{
  "success": true
}

Get all membership card themes for an entity

get
/entities/{entityId}/themes

This endpoint retrieves all the membership card themes for an entity.

Path parameters
entityIdstringRequired
Query parameters
userIdstringRequired

The Id of the user performing the request.

Example: dummy-userid
Header parameters
apikeystringRequired

The API key for authentication

Example: test
apisecretstringOptional

The secret key for authentication

Example: test-secret
useridstringRequired

The Id of the user performing the request.

Example: dummy-userid
tokenstringRequired

The token for user authentication.

Example: dummy-token
Responses
200

Successful response

application/json
get
/entities/{entityId}/themes
GET /api/entities/{entityId}/themes?userId=dummy-userid HTTP/1.1
Host: https:/.questprotocol.xyz
apikey: test
userid: dummy-userid
token: dummy-token
Accept: */*
{
  "success": true,
  "data": [
    {
      "themeId": "theme123",
      "entityId": "entity123",
      "membershipTier": 2,
      "tokenId": "token123",
      "price": "0.1 ETH",
      "title": "Theme Title",
      "backgroundImage": "https://example.com/theme/background.jpg",
      "squareLogoImage": "https://example.com/theme/logo-square.png",
      "horizontalLogoImage": "https://example.com/theme/logo-horizontal.png",
      "backgroundColor": "#FFFFFF",
      "accentColor1": "#FF0000",
      "accentColor2": "#00FF00",
      "metadataIPFS": "ipfs://metadata123",
      "attributes": [
        {
          "display_type": "boost_percentage",
          "trait_type": "skill",
          "value": {
            "score": 85
          }
        }
      ],
      "createdAt": "2023-06-27T12:45:00Z"
    }
  ]
}

Add new theme for an entity

post
/entities/{entityId}/themes

This endpoint allows to add a new theme for an entity.

Path parameters
entityIdstringRequired
Query parameters
userIdstringRequired

The Id of the user performing the request.

Example: dummy-userid
Header parameters
apikeystringRequired

The API key for authentication

Example: test
apisecretstringOptional

The secret key for authentication

Example: test-secret
useridstringRequired

The Id of the user performing the request.

Example: dummy-userid
tokenstringRequired

The token for user authentication.

Example: dummy-token
Body
membershipTiernumberRequiredExample: 10
titlestringRequiredExample: dummy-title
pricestringRequiredExample: 100 $
backgroundImageIPFSstringOptionalExample: image-ipfs
horizontalLogoImageIPFSstringOptionalExample: image-ipfs
squareLogoImageIPFSstringOptionalExample: image-ipfs
backgroundColorstringOptionalExample: red
accentColor1stringOptionalExample: red
accentColor2stringOptionalExample: red
metadataIPFSstringOptionalExample: ipfs
Responses
200

Successful response

application/json
post
/entities/{entityId}/themes
POST /api/entities/{entityId}/themes?userId=dummy-userid HTTP/1.1
Host: https:/.questprotocol.xyz
apikey: test
userid: dummy-userid
token: dummy-token
Content-Type: application/json
Accept: */*
Content-Length: 256

{
  "membershipTier": 10,
  "title": "dummy-title",
  "price": "100 $",
  "backgroundImageIPFS": "image-ipfs",
  "horizontalLogoImageIPFS": "image-ipfs",
  "squareLogoImageIPFS": "image-ipfs",
  "backgroundColor": "red",
  "accentColor1": "red",
  "accentColor2": "red",
  "metadataIPFS": "ipfs"
}
{
  "success": true,
  "themeId": "theme-101"
}

Get membership card themes details for an entity

get
/entities/{entityId}/themes/{themeId}

This endpoint retrieves the membership card themes details for an entity.

Path parameters
entityIdstringRequired
themeIdstringRequired
Header parameters
apikeystringRequired

The API key for authentication

Example: test
apisecretstringOptional

The secret key for authentication

Example: test-secret
useridstringRequired

The Id of the user performing the request.

Example: dummy-userid
tokenstringRequired

The token for user authentication.

Example: dummy-token
Responses
200

Successful response

application/json
get
/entities/{entityId}/themes/{themeId}
GET /api/entities/{entityId}/themes/{themeId} HTTP/1.1
Host: https:/.questprotocol.xyz
apikey: test
userid: dummy-userid
token: dummy-token
Accept: */*
{
  "success": true,
  "data": {
    "themeId": "theme123",
    "entityId": "entity123",
    "membershipTier": 2,
    "tokenId": "token123",
    "price": "0.1 ETH",
    "title": "Theme Title",
    "backgroundImage": "https://example.com/theme/background.jpg",
    "squareLogoImage": "https://example.com/theme/logo-square.png",
    "horizontalLogoImage": "https://example.com/theme/logo-horizontal.png",
    "backgroundColor": "#FFFFFF",
    "accentColor1": "#FF0000",
    "accentColor2": "#00FF00",
    "metadataIPFS": "ipfs://metadata123",
    "attributes": [
      {
        "display_type": "boost_percentage",
        "trait_type": "skill",
        "value": {
          "score": 85
        }
      }
    ],
    "createdAt": "2023-06-27T12:45:00Z"
  }
}

Update theme for an entity

post
/entities/{entityId}/themes/{themeId}/update

This endpoint allows to update a new theme for an entity.

Path parameters
entityIdstringRequired
themeIdstringRequired
Query parameters
userIdstringRequired

The Id of the user performing the request.

Example: dummy-userid
Header parameters
apikeystringRequired

The API key for authentication

Example: test
apisecretstringOptional

The secret key for authentication

Example: test-secret
tokenstringRequired

The token for user authentication.

Example: dummy-token
Body
membershipTiernumberRequiredExample: 10
titlestringRequiredExample: dummy-title
pricestringRequiredExample: 100 $
backgroundImageIPFSstringRequiredExample: image-ipfs
horizontalLogoImageIPFSstringRequiredExample: image-ipfs
squareLogoImageIPFSstringRequiredExample: image-ipfs
backgroundColorstringOptionalExample: red
accentColor1stringOptionalExample: red
accentColor2stringOptionalExample: red
metadataIPFSstringOptionalExample: ipfs
Responses
200

Successful response

application/json
post
/entities/{entityId}/themes/{themeId}/update
POST /api/entities/{entityId}/themes/{themeId}/update?userId=dummy-userid HTTP/1.1
Host: https:/.questprotocol.xyz
apikey: test
token: dummy-token
Content-Type: application/json
Accept: */*
Content-Length: 256

{
  "membershipTier": 10,
  "title": "dummy-title",
  "price": "100 $",
  "backgroundImageIPFS": "image-ipfs",
  "horizontalLogoImageIPFS": "image-ipfs",
  "squareLogoImageIPFS": "image-ipfs",
  "backgroundColor": "red",
  "accentColor1": "red",
  "accentColor2": "red",
  "metadataIPFS": "ipfs"
}
{
  "success": true
}

Delete theme for an entity

post
/entities/{entityId}/themes/{themeId}/delete

This endpoint allows to delete a theme for an entity.

Path parameters
entityIdstringRequired
themeIdstringRequired
Query parameters
userIdstringRequired

The Id of the user performing the request.

Example: dummy-userid
Header parameters
apikeystringRequired

The API key for authentication

Example: test
apisecretstringOptional

The secret key for authentication

Example: test-secret
tokenstringRequired

The token for user authentication.

Example: dummy-token
Body
objectOptional
Responses
200

Successful response

application/json
post
/entities/{entityId}/themes/{themeId}/delete
POST /api/entities/{entityId}/themes/{themeId}/delete?userId=dummy-userid HTTP/1.1
Host: https:/.questprotocol.xyz
apikey: test
token: dummy-token
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
{
  "success": true
}

set default theme for an entity

post
/entities/{entityId}/themes/default

This endpoint allows to set a default theme for an entity.

Path parameters
entityIdstringRequired
Query parameters
userIdstringRequired

The Id of the user performing the request.

Example: dummy-userid
Header parameters
apikeystringRequired

The API key for authentication

Example: test
apisecretstringOptional

The secret key for authentication

Example: test-secret
tokenstringRequired

The token for user authentication.

Example: dummy-token
Body
themeIdstringRequiredExample: theme-101
Responses
200

Successful response

application/json
post
/entities/{entityId}/themes/default
POST /api/entities/{entityId}/themes/default?userId=dummy-userid HTTP/1.1
Host: https:/.questprotocol.xyz
apikey: test
token: dummy-token
Content-Type: application/json
Accept: */*
Content-Length: 23

{
  "themeId": "theme-101"
}
{
  "success": true
}

Get XP for a specific entity

get
/entities/{entityId}/xp

Retrieve the XP (experience points) for a specific entity.

Path parameters
entityIdstringRequired

ID of the entity to get XP for

Query parameters
userIdstringRequired

The Id of the user performing the request.

Example: dummy-userid
Header parameters
apikeystringRequired

The API key for authentication

Example: test
apisecretstringOptional

The secret key for authentication

Example: test-secret
tokenstringRequired

The token for user authentication.

Example: dummy-token
Responses
200

Successful response

application/json
get
/entities/{entityId}/xp
GET /api/entities/{entityId}/xp?userId=dummy-userid HTTP/1.1
Host: https:/.questprotocol.xyz
apikey: test
token: dummy-token
Accept: */*
{
  "success": true,
  "data": 500
}

Get XP for multiple entities

post
/entities/xp

Retrieve the XP (experience points) for multiple entities.

Query parameters
userIdstringRequired

The Id of the user performing the request.

Example: dummy-userid
Header parameters
apikeystringRequired

The API key for authentication

Example: test
apisecretstringOptional

The secret key for authentication

Example: test-secret
tokenstringRequired

The token for user authentication.

Example: dummy-token
Body
entityIdsstring[]Required
Responses
200

Successful response

application/json
post
/entities/xp
POST /api/entities/xp?userId=dummy-userid HTTP/1.1
Host: https:/.questprotocol.xyz
apikey: test
token: dummy-token
Content-Type: application/json
Accept: */*
Content-Length: 22

{
  "entityIds": [
    "text"
  ]
}
{
  "success": true,
  "data": [
    {
      "entityId": "entity123",
      "runningXP": 500
    }
  ]
}

Get XP history for a user in a specific entity

get
/entities/{entityId}/users/{userId}/xp-history

Retrieve the XP history for a specific user in a specific entity.

Path parameters
entityIdstringRequired

The ID of the entity.

userIdstringRequired

The ID of the user.

Query parameters
userIdstringRequired

The Id of the user performing the request.

Example: dummy-userid
pageintegerOptional

The page number for pagination (default: 1).

Default: 1
limitintegerOptional

The number of items per page (default: 20).

Default: 20
Header parameters
apikeystringRequired

The API key for authentication

Example: test
apisecretstringOptional

The secret key for authentication

Example: test-secret
tokenstringRequired

The token for user authentication.

Example: dummy-token
Responses
200

Successful response

application/json
get
/entities/{entityId}/users/{userId}/xp-history
GET /api/entities/{entityId}/users/{userId}/xp-history?userId=dummy-userid HTTP/1.1
Host: https:/.questprotocol.xyz
apikey: test
token: dummy-token
Accept: */*
{
  "success": true,
  "data": [
    {
      "userId": "user123",
      "entityId": "entity456",
      "xp": 500,
      "title": "XP Gain",
      "createdAt": "2023-01-01T12:00:00Z"
    }
  ],
  "page": 1,
  "totalCount": 50,
  "totalPages": 3
}

Get XP leaderboard for a specific entity

get
/entities/{entityId}/xp-leaderboard

Retrieve the XP leaderboard for a specific entity, showing users with the highest XP.

Path parameters
entityIdstringRequired

The ID of the entity.

Query parameters
userIdstringRequired

The Id of the user performing the request.

Example: dummy-userid
pageintegerOptional

The page number for pagination (default: 1).

Default: 1
limitintegerOptional

The number of items per page (default: 20).

Default: 20
Header parameters
apikeystringRequired

The API key for authentication

Example: test
apisecretstringOptional

The secret key for authentication

Example: test-secret
tokenstringRequired

The token for user authentication.

Example: dummy-token
Responses
200

Successful response

application/json
get
/entities/{entityId}/xp-leaderboard
GET /api/entities/{entityId}/xp-leaderboard?userId=dummy-userid HTTP/1.1
Host: https:/.questprotocol.xyz
apikey: test
token: dummy-token
Accept: */*
{
  "success": true,
  "data": [
    {
      "userId": "user123",
      "imageUrl": "https://example.com/user123.jpg",
      "name": "John Doe",
      "runningXP": 500
    }
  ],
  "page": 1,
  "totalCount": 50,
  "totalPages": 3
}

Get user XP leaderboard rank

get
/entities/{entityId}/users/{userId}/xp-leaderboard-rank

Retrieve the XP leaderboard rank for a specific user in a given entity. The response includes the user's position, threshold information, and whether the user is within the specified threshold.

Path parameters
entityIdstringRequired

The ID of the entity

userIdstringRequired

The ID of the user

Query parameters
userIdstringRequired

The Id of the user performing the request.

Example: dummy-userid
thresholdinteger · max: 100Optional

The percentage threshold for XP

Header parameters
apikeystringRequired

The API key for authentication

Example: test
apisecretstringOptional

The secret key for authentication

Example: test-secret
tokenstringRequired

The token for user authentication.

Example: dummy-token
Responses
200

Successful response

application/json
get
/entities/{entityId}/users/{userId}/xp-leaderboard-rank
GET /api/entities/{entityId}/users/{userId}/xp-leaderboard-rank?userId=dummy-userid HTTP/1.1
Host: https:/.questprotocol.xyz
apikey: test
token: dummy-token
Accept: */*
{
  "success": true,
  "data": {
    "position": 1,
    "threshold": "5%",
    "isUserInThreshold": true
  }
}

Get all tags an entity

get
/entities/{entityId}/tags

This endpoint retrieves all the tags of an entity.

Path parameters
entityIdstringRequired
Query parameters
userIdstringRequired

The Id of the user performing the request.

Example: dummy-userid
Header parameters
apikeystringRequired

The API key for authentication

Example: test
apisecretstringOptional

The secret key for authentication

Example: test-secret
tokenstringRequired

The token for user authentication.

Example: dummy-token
Responses
200

Successful response

application/json
get
/entities/{entityId}/tags
GET /api/entities/{entityId}/tags?userId=dummy-userid HTTP/1.1
Host: https:/.questprotocol.xyz
apikey: test
token: dummy-token
Accept: */*
{
  "success": true,
  "data": {
    "tagId": "tag-121",
    "tagName": "super-tag",
    "description": "This is our tag",
    "tagUsers": [
      "user-11",
      "user-33"
    ],
    "isPrivate": false
  }
}

Last updated