Skip to content

Every product

GET
/api/products
curl --request GET \
--url https://app.dycrypt.com/o/acme/api/products \
--header 'Authorization: Bearer <token>'

The organisation’s products.

Media typeapplication/json
Array<object>

A product carries the signing key and the licence shape.

object
id
required
integer format: int64
productKey
required

Signed into every licence as prd.

string
name
required
string
description
string | null
active
required
boolean
algorithm
required
string
Allowed values: ED25519 RSA_2048 RSA_3072 RSA_4096 EC_P256 EC_P384
algorithmLabel
string
signatureAlgorithm

The JDK name: Ed25519, SHA256withRSA, SHA256withECDSA.

string
certificateType
string
keyOrigin

Where the private key lives — managed

string
keyFingerprint
string | null
certificateExpiresAt
string | null format: date-time
certificateExpired
boolean
paramCount
integer
licenseCount
integer format: int64
licenceType
required

See the licence-mode guides — Offline verifies alone, Online must check in, Hybrid does both.

string
Allowed values: OFFLINE ONLINE HYBRID
allowedLicenceTypes
Array<string>
Allowed values: OFFLINE ONLINE HYBRID
checkId

Public — it is in the URL every installed application calls.

string | null
checkTokenSet

Whether a check token exists. Never the token itself.

boolean
checkRotatedAt
string | null format: date-time
licenceFetchEnabled

Whether /fetch is available for this product. Off by default.

boolean
checkIntervalSeconds
integer | null
maxOfflineSeconds
integer | null
fingerprintNeed

How many of the five fingerprint components must match.

integer | null
maxMachines

How many machines a licence for this product binds at once. The default for new licences only.

integer
defaultValidityMonths
integer | null
defaultGraceDays
integer | null
createdAt
string format: date-time
Example
[
{
"algorithm": "ED25519",
"licenceType": "OFFLINE",
"allowedLicenceTypes": [
"OFFLINE"
]
}
]

No credential, or one that no longer resolves — revoked, expired, deleted. Replace it.

Media typeapplication/json

Every failure in this API has this shape and no other.

object
error
required
string
Example
{
"error": "this token does not have licenses:write"
}

Authenticated, but not allowed: a missing scope, a read-only role, a plan limit reached, or a credential used under another organisation’s slug. The right credential doing something it may not do.

Media typeapplication/json

Every failure in this API has this shape and no other.

object
error
required
string
Example
{
"error": "this token does not have licenses:write"
}