{
  "openapi": "3.1.0",
  "info": {
    "title": "KickTokenGen.com API",
    "version": "2.0.0",
    "description": "Independent Kick OAuth tooling. Never place access tokens or client secrets in URLs."
  },
  "servers": [
    {
      "url": "https://kicktokengen.com"
    }
  ],
  "paths": {
    "/api/v2/scopes": {
      "get": {
        "operationId": "scopes",
        "x-ktg-order": 1,
        "x-ktg-summary-key": "ui.available_token_scopes",
        "x-ktg-description-key": "docs.op.scopes",
        "responses": {
          "200": {
            "description": "Success",
            "x-ktg-description-key": "docs.status.ok",
            "content": {
              "application/json": {
                "example": {
                  "success": true,
                  "scopes": [
                    {
                      "id": 6,
                      "scope": "chat:write",
                      "description": "Send chat messages as the authorized account.",
                      "secret": false
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "x-ktg-description-key": "docs.status.bad_request",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid request"
                }
              }
            }
          },
          "401": {
            "description": "invalid retrieval key",
            "x-ktg-description-key": "docs.status.unauthorized",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid retrieval key"
                }
              }
            }
          },
          "429": {
            "description": "rate limit exceeded",
            "x-ktg-description-key": "docs.status.rate_limit",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "rate limit exceeded"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "x-ktg-description-key": "docs.status.unavailable",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "Service unavailable"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/workflows": {
      "post": {
        "operationId": "create_workflow",
        "x-ktg-order": 2,
        "x-ktg-summary-key": "docs.create_workflow",
        "x-ktg-description-key": "docs.op.create_workflow",
        "responses": {
          "201": {
            "description": "Success",
            "x-ktg-description-key": "docs.status.created",
            "content": {
              "application/json": {
                "example": {
                  "success": true,
                  "id": "EXAMPLE_ID",
                  "authorization_url": "https://kicktokengen.com/authorize/EXAMPLE_ID",
                  "status_url": "https://kicktokengen.com/api/v2/workflows/EXAMPLE_ID",
                  "retrieval_key": "EXAMPLE_PRIVATE_KEY",
                  "expires_at": "2030-01-02T12:00:00Z"
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "x-ktg-description-key": "docs.status.bad_request",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid request"
                }
              }
            }
          },
          "401": {
            "description": "invalid retrieval key",
            "x-ktg-description-key": "docs.status.unauthorized",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid retrieval key"
                }
              }
            }
          },
          "429": {
            "description": "rate limit exceeded",
            "x-ktg-description-key": "docs.status.rate_limit",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "rate limit exceeded"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "x-ktg-description-key": "docs.status.unavailable",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "Service unavailable"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "scope_ids": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "IDs from GET /api/v2/scopes.",
                    "x-ktg-description-key": "docs.param.scope_ids"
                  },
                  "scopes": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "x-ktg-description-key": "docs.param.scopes"
                  },
                  "title": {
                    "type": "string",
                    "maxLength": 500,
                    "x-ktg-description-key": "docs.param.title"
                  },
                  "credentials": {
                    "type": "object",
                    "properties": {
                      "client_id": {
                        "type": "string"
                      },
                      "client_secret": {
                        "type": "string",
                        "format": "password"
                      }
                    },
                    "required": [
                      "client_id",
                      "client_secret"
                    ],
                    "additionalProperties": false,
                    "x-ktg-description-key": "kick.credentials"
                  },
                  "redirect_url": {
                    "type": "string",
                    "format": "uri",
                    "description": "Optional HTTPS destination; never receives tokens.",
                    "x-ktg-description-key": "docs.param.redirect_url"
                  },
                  "is_ai": {
                    "type": "boolean",
                    "x-ktg-description-key": "docs.param.is_ai"
                  },
                  "ai_agent": {
                    "type": "string",
                    "maxLength": 64,
                    "x-ktg-description-key": "docs.param.ai_agent"
                  }
                },
                "required": [],
                "additionalProperties": false
              },
              "example": {
                "scope_ids": [
                  6
                ],
                "title": "Example integration",
                "credentials": {
                  "client_id": "YOUR_CLIENT_ID",
                  "client_secret": "YOUR_CLIENT_SECRET"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/workflows/{id}": {
      "get": {
        "operationId": "get_workflow",
        "x-ktg-order": 3,
        "x-ktg-summary-key": "docs.get_workflow",
        "x-ktg-description-key": "docs.op.get_workflow",
        "responses": {
          "200": {
            "description": "Success",
            "x-ktg-description-key": "docs.status.ok",
            "content": {
              "application/json": {
                "example": {
                  "success": true,
                  "status": "authorized",
                  "access_token": "EXAMPLE_ACCESS_TOKEN",
                  "refresh_token": "EXAMPLE_REFRESH_TOKEN",
                  "client_id": "EXAMPLE_CLIENT_ID",
                  "token_type": "Bearer",
                  "scopes": [
                    "chat:write"
                  ],
                  "expires_in": 3600,
                  "expires_at": "2030-01-01T13:00:00Z"
                }
              }
            }
          },
          "202": {
            "description": "Pending",
            "x-ktg-description-key": "docs.status.pending",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "status": "pending"
                }
              }
            }
          },
          "410": {
            "description": "Expired, denied or consumed",
            "x-ktg-description-key": "docs.status.gone",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "workflow credentials are no longer available"
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "x-ktg-description-key": "docs.status.bad_request",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid request"
                }
              }
            }
          },
          "401": {
            "description": "invalid retrieval key",
            "x-ktg-description-key": "docs.status.unauthorized",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid retrieval key"
                }
              }
            }
          },
          "429": {
            "description": "rate limit exceeded",
            "x-ktg-description-key": "docs.status.rate_limit",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "rate limit exceeded"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "x-ktg-description-key": "docs.status.unavailable",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "Service unavailable"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-ktg-description-key": "docs.param.id"
          }
        ],
        "security": [
          {
            "retrievalKey": []
          }
        ]
      }
    },
    "/api/v2/ai/workflows/create": {
      "get": {
        "operationId": "create_ai",
        "x-ktg-order": 4,
        "x-ktg-summary-key": "docs.create_ai",
        "x-ktg-description-key": "docs.op.create_ai",
        "responses": {
          "201": {
            "description": "Success",
            "x-ktg-description-key": "docs.status.created",
            "content": {
              "application/json": {
                "example": {
                  "success": true,
                  "id": "EXAMPLE_ID",
                  "authorization_url": "https://kicktokengen.com/authorize/EXAMPLE_ID",
                  "retrieval_url": "https://kicktokengen.com/api/v2/ai/workflows/EXAMPLE_ID/EXAMPLE_PRIVATE_KEY"
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "x-ktg-description-key": "docs.status.bad_request",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid request"
                }
              }
            }
          },
          "401": {
            "description": "invalid retrieval key",
            "x-ktg-description-key": "docs.status.unauthorized",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid retrieval key"
                }
              }
            }
          },
          "429": {
            "description": "rate limit exceeded",
            "x-ktg-description-key": "docs.status.rate_limit",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "rate limit exceeded"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "x-ktg-description-key": "docs.status.unavailable",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "Service unavailable"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "title",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "x-ktg-description-key": "docs.param.title"
          },
          {
            "name": "scopes",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "x-ktg-description-key": "docs.param.scopes"
          },
          {
            "name": "scope_ids",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "x-ktg-description-key": "docs.param.scope_ids"
          },
          {
            "name": "ai_agent",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "x-ktg-description-key": "docs.param.ai_agent"
          }
        ]
      }
    },
    "/api/v2/ai/workflows/{id}/{key}": {
      "get": {
        "operationId": "get_ai",
        "x-ktg-order": 5,
        "x-ktg-summary-key": "docs.get_ai",
        "x-ktg-description-key": "docs.op.get_ai",
        "responses": {
          "200": {
            "description": "Success",
            "x-ktg-description-key": "docs.status.ok",
            "content": {
              "application/json": {
                "example": {
                  "success": true,
                  "status": "authorized",
                  "access_token": "EXAMPLE_ACCESS_TOKEN",
                  "refresh_token": "EXAMPLE_REFRESH_TOKEN",
                  "client_id": "EXAMPLE_CLIENT_ID",
                  "token_type": "Bearer",
                  "scopes": [
                    "chat:write"
                  ],
                  "expires_in": 3600,
                  "expires_at": "2030-01-01T13:00:00Z"
                }
              }
            }
          },
          "202": {
            "description": "Pending",
            "x-ktg-description-key": "docs.status.pending",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "status": "pending"
                }
              }
            }
          },
          "410": {
            "description": "Expired, denied or consumed",
            "x-ktg-description-key": "docs.status.gone",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "workflow credentials are no longer available"
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "x-ktg-description-key": "docs.status.bad_request",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid request"
                }
              }
            }
          },
          "401": {
            "description": "invalid retrieval key",
            "x-ktg-description-key": "docs.status.unauthorized",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid retrieval key"
                }
              }
            }
          },
          "429": {
            "description": "rate limit exceeded",
            "x-ktg-description-key": "docs.status.rate_limit",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "rate limit exceeded"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "x-ktg-description-key": "docs.status.unavailable",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "Service unavailable"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-ktg-description-key": "docs.param.id"
          },
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-ktg-description-key": "docs.param.key"
          }
        ]
      }
    },
    "/api/v2/tokens/validate": {
      "post": {
        "operationId": "validate",
        "x-ktg-order": 6,
        "x-ktg-summary-key": "ui.validate_token",
        "x-ktg-description-key": "docs.op.validate",
        "responses": {
          "200": {
            "description": "Success",
            "x-ktg-description-key": "docs.status.ok",
            "content": {
              "application/json": {
                "example": {
                  "success": true,
                  "active": true,
                  "client_id": "EXAMPLE_CLIENT_ID",
                  "token_type": "user",
                  "exp": 1893502800,
                  "expires_in": 3600,
                  "scopes": [
                    "chat:write"
                  ],
                  "scope_details": [
                    {
                      "scope": "chat:write",
                      "description": "Send chat messages."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "x-ktg-description-key": "docs.status.bad_request",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid request"
                }
              }
            }
          },
          "401": {
            "description": "invalid retrieval key",
            "x-ktg-description-key": "docs.status.unauthorized",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid access token"
                }
              }
            }
          },
          "429": {
            "description": "rate limit exceeded",
            "x-ktg-description-key": "docs.status.rate_limit",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "rate limit exceeded"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "x-ktg-description-key": "docs.status.unavailable",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "Service unavailable"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "access_token": {
                    "type": "string",
                    "format": "password",
                    "x-ktg-description-key": "docs.param.access_token"
                  }
                },
                "required": [
                  "access_token"
                ],
                "additionalProperties": false
              },
              "example": {
                "access_token": "EXAMPLE_ACCESS_TOKEN"
              }
            }
          }
        }
      }
    },
    "/api/v2/tokens/refresh": {
      "post": {
        "operationId": "refresh",
        "x-ktg-order": 7,
        "x-ktg-summary-key": "ui.refresh_token",
        "x-ktg-description-key": "docs.op.refresh",
        "responses": {
          "200": {
            "description": "Success",
            "x-ktg-description-key": "docs.status.ok",
            "content": {
              "application/json": {
                "example": {
                  "success": true,
                  "status": "authorized",
                  "access_token": "EXAMPLE_ACCESS_TOKEN",
                  "refresh_token": "EXAMPLE_REFRESH_TOKEN",
                  "client_id": "EXAMPLE_CLIENT_ID",
                  "token_type": "Bearer",
                  "scopes": [
                    "chat:write"
                  ],
                  "expires_in": 3600,
                  "expires_at": "2030-01-01T13:00:00Z"
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "x-ktg-description-key": "docs.status.bad_request",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid refresh token or client credentials"
                }
              }
            }
          },
          "401": {
            "description": "invalid retrieval key",
            "x-ktg-description-key": "docs.status.unauthorized",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid retrieval key"
                }
              }
            }
          },
          "429": {
            "description": "rate limit exceeded",
            "x-ktg-description-key": "docs.status.rate_limit",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "rate limit exceeded"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "x-ktg-description-key": "docs.status.unavailable",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "Service unavailable"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "refresh_token": {
                    "type": "string",
                    "format": "password",
                    "x-ktg-description-key": "docs.param.refresh_token"
                  },
                  "client_id": {
                    "type": "string",
                    "x-ktg-description-key": "docs.param.client_id"
                  },
                  "client_secret": {
                    "type": "string",
                    "format": "password",
                    "x-ktg-description-key": "docs.param.client_secret"
                  }
                },
                "required": [
                  "refresh_token"
                ],
                "additionalProperties": false
              },
              "example": {
                "refresh_token": "EXAMPLE_REFRESH_TOKEN",
                "client_id": "YOUR_CLIENT_ID",
                "client_secret": "YOUR_CLIENT_SECRET"
              }
            }
          }
        }
      }
    },
    "/api/v2/tokens/revoke": {
      "post": {
        "operationId": "revoke",
        "x-ktg-order": 8,
        "x-ktg-summary-key": "ui.revoke_token",
        "x-ktg-description-key": "docs.op.revoke",
        "responses": {
          "200": {
            "description": "Success",
            "x-ktg-description-key": "docs.status.ok",
            "content": {
              "application/json": {
                "example": {
                  "success": true,
                  "revoked": true
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "x-ktg-description-key": "docs.status.bad_request",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid token request"
                }
              }
            }
          },
          "401": {
            "description": "invalid retrieval key",
            "x-ktg-description-key": "docs.status.unauthorized",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid retrieval key"
                }
              }
            }
          },
          "429": {
            "description": "rate limit exceeded",
            "x-ktg-description-key": "docs.status.rate_limit",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "rate limit exceeded"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "x-ktg-description-key": "docs.status.unavailable",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "Service unavailable"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "access_token": {
                    "type": "string",
                    "format": "password",
                    "x-ktg-description-key": "docs.param.access_token"
                  },
                  "refresh_token": {
                    "type": "string",
                    "format": "password",
                    "x-ktg-description-key": "docs.param.refresh_token"
                  }
                },
                "required": [],
                "additionalProperties": false
              },
              "example": {
                "access_token": "EXAMPLE_ACCESS_TOKEN"
              }
            }
          }
        }
      }
    },
    "/api/v2/quick-links": {
      "post": {
        "operationId": "quick_link",
        "x-ktg-order": 9,
        "x-ktg-summary-key": "ui.quick_link",
        "x-ktg-description-key": "docs.op.quick_link",
        "responses": {
          "201": {
            "description": "Success",
            "x-ktg-description-key": "docs.status.created",
            "content": {
              "application/json": {
                "example": {
                  "success": true,
                  "url": "https://kicktokengen.com/quick/Ab3dEf8_"
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "x-ktg-description-key": "docs.status.bad_request",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid request"
                }
              }
            }
          },
          "401": {
            "description": "invalid retrieval key",
            "x-ktg-description-key": "docs.status.unauthorized",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid retrieval key"
                }
              }
            }
          },
          "429": {
            "description": "rate limit exceeded",
            "x-ktg-description-key": "docs.status.rate_limit",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "rate limit exceeded"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "x-ktg-description-key": "docs.status.unavailable",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "Service unavailable"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "scope_ids": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "IDs from GET /api/v2/scopes.",
                    "x-ktg-description-key": "docs.param.scope_ids"
                  },
                  "scopes": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "x-ktg-description-key": "docs.param.scopes"
                  },
                  "auth": {
                    "type": "string",
                    "enum": [
                      "stay",
                      "authorize"
                    ],
                    "x-ktg-description-key": "docs.param.auth"
                  }
                },
                "required": [],
                "additionalProperties": false
              },
              "example": {
                "scope_ids": [
                  6
                ],
                "auth": "stay"
              }
            }
          }
        }
      }
    },
    "/api/v2/token-requests": {
      "post": {
        "operationId": "token_request",
        "x-ktg-order": 10,
        "x-ktg-summary-key": "ui.request_token",
        "x-ktg-description-key": "docs.op.token_request",
        "responses": {
          "201": {
            "description": "Success",
            "x-ktg-description-key": "docs.status.created",
            "content": {
              "application/json": {
                "example": {
                  "success": true,
                  "url": "https://kicktokengen.com/request/EXAMPLE_ID",
                  "expires_at": "2030-01-02T12:00:00Z"
                }
              }
            }
          },
          "400": {
            "description": "invalid request",
            "x-ktg-description-key": "docs.status.bad_request",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid request"
                }
              }
            }
          },
          "401": {
            "description": "invalid retrieval key",
            "x-ktg-description-key": "docs.status.unauthorized",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "invalid retrieval key"
                }
              }
            }
          },
          "429": {
            "description": "rate limit exceeded",
            "x-ktg-description-key": "docs.status.rate_limit",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "rate limit exceeded"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "x-ktg-description-key": "docs.status.unavailable",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "message": "Service unavailable"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "scope_ids": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "description": "IDs from GET /api/v2/scopes.",
                    "x-ktg-description-key": "docs.param.scope_ids"
                  },
                  "scopes": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "x-ktg-description-key": "docs.param.scopes"
                  },
                  "credentials": {
                    "type": "object",
                    "properties": {
                      "client_id": {
                        "type": "string"
                      },
                      "client_secret": {
                        "type": "string",
                        "format": "password"
                      }
                    },
                    "required": [
                      "client_id",
                      "client_secret"
                    ],
                    "additionalProperties": false,
                    "x-ktg-description-key": "kick.credentials"
                  },
                  "my_name": {
                    "type": "string",
                    "maxLength": 128,
                    "x-ktg-description-key": "docs.param.my_name"
                  },
                  "my_email": {
                    "type": "string",
                    "format": "email",
                    "x-ktg-description-key": "docs.param.my_email"
                  }
                },
                "required": [
                  "my_name",
                  "my_email"
                ],
                "additionalProperties": false
              },
              "example": {
                "scope_ids": [
                  6
                ],
                "my_name": "Example developer",
                "my_email": "developer@example.com",
                "credentials": {
                  "client_id": "YOUR_CLIENT_ID",
                  "client_secret": "YOUR_CLIENT_SECRET"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "retrievalKey": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  }
}
