One trial summary
GET
/trial-cards/{clientKey}
const url = 'https://api.harperharbor.com/open/v1/trial-cards/example';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.harperharbor.com/open/v1/trial-cards/example \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”clientKey
required
string
Names the trial; re-sending the same key updates it.
Responses
Section titled “Responses”Summary.
Media typeapplication/json
object
clientKey
string
roleId
string
created
boolean
expiresAt
Earliest expiry time. Cleanup may run a few minutes later.
string format: date-time
slots
object
used
integer
max
integer
sections
Sha256 per section
object
key
additional properties
string
changed
Array<string>
worldbook
object
worldbookId
string
entries
integer
created
integer
deleted
integer
Examplegenerated
{ "clientKey": "example", "roleId": "example", "created": true, "expiresAt": "2026-04-15T12:00:00Z", "slots": { "used": 1, "max": 1 }, "sections": { "additionalProperty": "example" }, "changed": [ "example" ], "worldbook": { "worldbookId": "example", "entries": 1, "created": 1, "deleted": 1 }}trial_not_found after expiry.
Media typeapplication/json
object
error
required
Machine-readable code. unauthorized means authentication failed. Refresh the token; if refresh fails, request authorization again.
string
message
required
One English sentence a client may show verbatim.
string
retryable
boolean
detail
Present on some 4xx errors with the offending part.
object
key
additional properties
any
Example
{ "error": "unauthorized"}