Skip to main content

API Endpoints

Updated over a week ago

This API allows Kinktree partners to manage and organize their kinktags. Each partner operates within a separate namespace, and authentication is handled via a unique API secret.

Authentication

Each partner receives a static API secret.

This secret must be included in every request as an HTTP header:

Header name: Authorization
Header value: your assigned secret string

Do not use Bearer tokens or OAuth – simply pass the raw secret string.

Base URL

https://api.kinktr.ee/v1

All endpoints below are relative to this base URL.


Endpoints

1. GET /partners/tags

Returns a list of all kinktags in your namespace.

Response format:

  {
"id": "string",
"namespace": "string",
"activationCode": "string",
"name": "string or null",
"locked": true or false
}


2. POST /partners/tags

Creates a new kinktag.

Request body (JSON):

{
"identifier": "optional string",
"activationCode": "optional string"
}

If identifier is omitted, a unique one will be generated.

If activationCode is omitted, a secure code will be generated automatically.

Response:

{
"identifier": "string",
"namespace": "string",
"activationCode": "string"
}


3. PATCH /partners/tags/<tagId>

Updates the activation code of a specific tag.

Request body (JSON):

{
"activationCode": "optional string"
}

If omitted, a new code will be generated by the backend.

Response:

{
"identifier": "string",
"namespace": "string",
"activationCode": "string"
}


4. DELETE /partners/tags/<tagId>

Deletes the specified kinktag from the system.

Response:

{
"identifier": "string",
"namespace": "string",
"deleted": true
}


Integration Notes

  • Every request must include the Authorization header with your secret.

  • For POST and PATCH, make sure to set Content-Type: application/json.

  • All responses are in JSON format.

  • Identifier values must be unique per namespace and are case-sensitive.

Support

Need access to your API credentials or technical help?

Please contact your Kinktree partner representative.

Did this answer your question?