PrivateApplication

Get Private Application

get
Authorizations
Path parameters
idinteger · int64Required

Private Application Id

Responses
200

Private Application found

application/json
get
GET /api/v1/private-application/{id} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "data": {
    "name": "text",
    "description": "text",
    "defaultTokenLifetimeDays": 1,
    "customTokenClaims": {},
    "tags": [
      "text"
    ],
    "id": 1,
    "modifier": "text",
    "modifiedUtc": "2025-09-07T10:06:26.608Z",
    "hasTokens": true,
    "hasActiveTokens": true,
    "nextTokenExpiry": "2025-09-07T10:06:26.608Z"
  }
}

Update Private Application

put
Authorizations
Path parameters
idinteger · int64Required

Private Application Id

Body
namestringOptional

Name of the application

descriptionstring | nullableOptional

Description of the application

defaultTokenLifetimeDaysinteger · int32 · min: 1 · max: 730Optional

Default token lifetime in days

customTokenClaimsobjectOptional

Custom token claims

tagsstring[]Optional

Tags for the application

Responses
200

Private Application updated

application/json
put
PUT /api/v1/private-application/{id} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 186

{
  "name": "",
  "description": "",
  "defaultTokenLifetimeDays": 730,
  "customTokenClaims": {
    "iss": "https://hopea-apinat.frendsapp.com",
    "aud": "https://hopea-apinat.frendsapp.com",
    "sub": ""
  },
  "tags": []
}
{
  "data": 1
}

Delete Private Application

delete
Authorizations
Path parameters
idinteger · int64Required

Private Application Id

Responses
204

Private Application deleted

No content

delete
DELETE /api/v1/private-application/{id} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*

No content

List Private Applications

get

If response data is empty there were no Private Applications found with the chosen filters

Authorizations
Query parameters
NameFilterstringOptional

Filter by name of the application

DescriptionFilterstringOptional

Filter by description of the application

TokenContentFilterstringOptional

Filter by token content

FilterModestring · enumOptionalPossible values:
TokenExpiringWithinDaysinteger · int32Optional

Filter by tokens expiring within X days

Responses
200

Success

application/json
get
GET /api/v1/private-application HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
200

Success

{
  "data": [
    {
      "name": "text",
      "description": "text",
      "defaultTokenLifetimeDays": 1,
      "customTokenClaims": {},
      "tags": [
        "text"
      ],
      "id": 1,
      "modifier": "text",
      "modifiedUtc": "2025-09-07T10:06:26.608Z",
      "hasTokens": true,
      "hasActiveTokens": true,
      "nextTokenExpiry": "2025-09-07T10:06:26.608Z"
    }
  ]
}

Create Private Application

post
Authorizations
Body
namestringOptional

Name of the application

descriptionstring | nullableOptional

Description of the application

defaultTokenLifetimeDaysinteger · int32 · min: 1 · max: 730Optional

Default token lifetime in days

customTokenClaimsobjectOptional

Custom token claims

tagsstring[]Optional

Tags for the application

Responses
201

Private Application created

application/json
post
POST /api/v1/private-application HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 186

{
  "name": "",
  "description": "",
  "defaultTokenLifetimeDays": 730,
  "customTokenClaims": {
    "iss": "https://hopea-apinat.frendsapp.com",
    "aud": "https://hopea-apinat.frendsapp.com",
    "sub": ""
  },
  "tags": []
}
{
  "data": 1
}

List Private Application Tokens

get

If response data is empty there were no tokens found for the Private Application

Authorizations
Path parameters
idinteger · int64Required

Private Application Id

Query parameters
PageNumberinteger · int32Optional
PageSizeinteger · int32Optional
NameFilterstringOptional

Filter by name of the token

IsExpiredFilterbooleanOptional

Filter by token expiry status

IsRevokedFilterbooleanOptional

Filter by token revocation status

ClaimKeyFilterstringOptional

Filter by token claim key

FilterModestring · enumOptionalPossible values:
Responses
200

Success

application/json
get
GET /api/v1/private-application/{id}/tokens HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "data": {
    "tokenCount": 1,
    "tokens": [
      {
        "id": 1,
        "name": "text",
        "expiryTimeUtc": "2025-09-07T10:06:26.608Z",
        "createTimeUtc": "2025-09-07T10:06:26.608Z",
        "tokenClaims": {},
        "creator": "text",
        "revoker": "text",
        "revokeTimeUtc": "2025-09-07T10:06:26.608Z",
        "revokeReason": "text",
        "fullToken": "text",
        "payloadOnly": "text"
      }
    ]
  }
}

Create Private Application Token

post
Authorizations
Path parameters
idinteger · int64Required

Private Application Id

Body
namestringOptional

Name of the token

tokenLifetimeDaysinteger · int32 | nullableOptional

Token lifetime in days

tokenClaimsobjectOptional

Token claims

Responses
201

Private Application token created

application/json
post
POST /api/v1/private-application/{id}/tokens HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 146

{
  "name": "",
  "tokenLifetimeDays": 730,
  "tokenClaims": {
    "iss": "https://hopea-apinat.frendsapp.com",
    "aud": "https://hopea-apinat.frendsapp.com",
    "sub": ""
  }
}
{
  "data": 1
}

Get Private Application Token

get
Authorizations
Path parameters
idinteger · int64Required

Private Application Id

tokenIdinteger · int64Required

Private Application Token Id

Responses
200

Private Application token found

application/json
get
GET /api/v1/private-application/{id}/tokens/{tokenId} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "data": {
    "id": 1,
    "name": "text",
    "expiryTimeUtc": "2025-09-07T10:06:26.608Z",
    "createTimeUtc": "2025-09-07T10:06:26.608Z",
    "tokenClaims": {},
    "creator": "text",
    "revoker": "text",
    "revokeTimeUtc": "2025-09-07T10:06:26.608Z",
    "revokeReason": "text",
    "fullToken": "text",
    "payloadOnly": "text"
  }
}

Regenerate Private Application Token

post
Authorizations
Path parameters
idinteger · int64Required

Private Application Id

tokenIdinteger · int64Required

Private Application Token Id

Responses
201

Private Application token regenerated

application/json
post
POST /api/v1/private-application/{id}/tokens/{tokenId} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "data": 1
}

Revoke all tokens of Private Application

post
Authorizations
Path parameters
idinteger · int64Required

Private Application Id

Body
stringOptional
Responses
200

Number of Private Application Tokens revoked

application/json
post
POST /api/v1/private-application/{id}/tokens/revocation HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 6

"text"
{
  "data": 1
}

Revoke token of Private Application

post
Authorizations
Path parameters
idinteger · int64Required

Private Application Id

tokenIdinteger · int64Required

Private Application Token Id

Body
stringOptional
Responses
200

Private Application token revoked

No content

post
POST /api/v1/private-application/{id}/tokens/{tokenId}/revocation HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 6

"text"

No content

Was this helpful?