openapi: 3.1.0 info: title: Dev Portal API version: '1.0' summary: Kong Dev Portal (On-Prem) API contact: name: Michael Heap description: Welcome to the documentation for the Dev Portal API, self-managed edition.

Disclaimer: This document is currently in beta. It might not contain all possible endpoints and requests, and request descriptions are not complete.
If you find a missing request or run into an error in the documentation, please file an issue in our Github repository, or submit a PR to update the Dev Portal API spec. paths: /auth: get: summary: Create Session tags: - authentication operationId: create-session description: |- Log in to a Dev Portal account using HTTP Basic auth. The `username` is your developer portal account email address. The `password` is the password you chose when signing up. For example: `Authorization: Basic base64(user@example.com:password)` This endpoint returns a `Set-Cookie` header that looks similar to the following: ``` portal_session=LBTguN3iEqQlYK3089Ij2Q|1622804485|AXQzsTuR_M3TGFkUV6PzzXPpFtA; Path=/; SameSite=Strict; HttpOnly ``` This ID must be sent on all subsequent requests in the `Cookie` header like so: ``` Cookie: portal_session=LBTguN3iEqQlYK3089Ij2Q|1622804485|AXQzsTuR_M3TGFkUV6PzzXPpFtA ``` responses: '204': description: No Content '401': description: Unauthorized content: application/json: schema: description: '' type: object properties: message: type: string required: - message examples: {} security: - DeveloperCredentials: [] delete: summary: Delete Session operationId: delete-session responses: '200': description: OK description: Destroy the active session tags: - authentication parameters: - schema: type: string in: query name: session_logout description: 'true' /register: post: summary: Register Account operationId: register responses: '200': description: OK content: application/x-www-form-urlencoded: schema: description: '' type: object properties: email: type: object required: - sent - error properties: sent: type: object required: - emails - count properties: emails: type: object required: - noreply@konghq.com properties: noreply@konghq.com: type: boolean count: type: number error: type: object required: - emails - count properties: emails: type: object count: type: number developer: type: object required: - id - created_at - updated_at - consumer - status - email - meta properties: id: type: string created_at: type: number updated_at: type: number consumer: type: object required: - id properties: id: type: string status: type: number email: type: string format: email meta: type: string required: - email - developer examples: success: value: email: sent: emails: noreply@konghq.com: true count: 1 error: emails: {} count: 0 developer: id: fc824f6d-d078-4403-ab7e-ee610f48cecf created_at: 1622808888 updated_at: 1622808888 consumer: id: a913e107-456f-470e-ab0a-0cc8e911ff95 status: 1 email: user@example.com meta: '{"full_name":"User"}' '400': description: Bad Request content: application/json: schema: description: '' type: object properties: fields: type: object minProperties: 1 code: type: number required: - fields - code examples: missing-password: value: fields: password: password is required code: 2 missing-email: value: fields: email: required field missing code: 2 missing-meta: value: fields: meta: full_name: required field missing code: 2 '409': description: Conflict content: application/json: schema: description: '' type: object properties: fields: type: object properties: email: type: string minLength: 1 required: - email code: type: number required: - fields - code requestBody: content: application/x-www-form-urlencoded: schema: description: '' type: object properties: password: type: string example: my_password email: type: string example: user@example.com format: email meta: type: string example: '{"full_name":"User"}' required: - password - email - meta examples: create: value: password: my_password email: user@example.com meta: '{"full_name":"User"}' description: '' description: Create a new Dev Portal account tags: - account /verify-account: post: summary: Verify account tags: - account responses: '200': description: OK content: application/json: schema: description: '' type: object properties: status: type: number required: - status examples: success: value: status: 1 '400': $ref: '#/components/responses/TokenIsRequired' '401': description: Token is invalid or has already been used/invalidated content: application/json: schema: description: '' type: object properties: message: type: string minLength: 1 required: - message examples: error: value: message: Unauthorized operationId: verify-account description: Verify an account that has been approved by an admin by providing a JWT that has been emailed to the developer requestBody: content: application/x-www-form-urlencoded: schema: description: '' type: object properties: token: type: string example: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MjI4MzA4NTYsImlkIjoiMWM1YzA4YTUtOTQ3Mi00NzgzLTg3NzktMDk5YzcxZGIzZTcxIn0.OcwU9QfdnzlWfdGy9iEfcARuwpRDwTDe9zcXrHbr9dQ required: - token examples: token: value: token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MjE1NTA5MDEsImlkIjoiZTQwOWU0YjEtZDkwNi00ZDI4LThlMzItYjJmOTQ4OWM4YTU4In0.HmOOvH-30mD4Xx3ss_6WXadJKB9qukvh5D178rG9qo0 description: '' /resend-account-verification: post: summary: Resend Account Verification Email operationId: resend-account-verification responses: '204': description: No Content description: Trigger redelivery of the account verification email requestBody: content: application/x-www-form-urlencoded: schema: type: object properties: email: type: string examples: reset: value: email: user%40example.com description: '' tags: - account /invalidate-account-verification: post: summary: Invalidate Account Verification Token operationId: invalidate-account-verification responses: '204': description: No Content '401': $ref: '#/components/responses/TokenIsRequired' description: Prevent an account validation token from being used requestBody: content: application/x-www-form-urlencoded: schema: description: '' type: object properties: token: type: string required: - token examples: token: value: token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MjI4MzE0MjksImlkIjoiOTQzYTM3MmEtMGJiOC00YTlhLWIxNDYtYTY2ZGRlYWY2OGY0In0.UMXMmxic3km5HcU7rW5i_V5drZq6ilDWilSrmm8n0fs tags: - account /validate-reset: post: summary: Validate Reset operationId: validate-reset responses: '200': description: Token is valid. This endpoint does not return a body '400': $ref: '#/components/responses/TokenIsRequired' tags: - account description: Check if the reset token provided is valid. This endpoint does not invalidate the token after checking requestBody: content: application/x-www-form-urlencoded: schema: description: '' type: object properties: token: type: string minLength: 1 required: - token x-examples: example-1: token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjA2ZTVlYTc0LTIxMWUtNDQ1NC05MmNiLTNmOTliY2U0ZGIxMCIsImV4cCI6MTYyMjg0MDEwMn0.jVabgJpL1VAT4P-QX2VaT_cGk1xxPyeVT-nobqATjZM /reset-password: post: summary: Reset Password operationId: reset-password responses: '200': description: Password reset. This endpoint does not return a body '400': $ref: '#/components/responses/TokenIsRequired' description: Reset a password by providing a token and a new password tags: - account requestBody: content: application/x-www-form-urlencoded: schema: description: '' type: object properties: token: type: string minLength: 1 password: type: string minLength: 1 required: - token - password x-examples: example-1: token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjA2ZTVlYTc0LTIxMWUtNDQ1NC05MmNiLTNmOTliY2U0ZGIxMCIsImV4cCI6MTYyMjg0MDc3MH0.ZmSHLE_StJHQZMqjxL35zlI0aNJemk80yOteuKqDnWs password: password /forgot-password: post: summary: Forgot Password operationId: forgot-password responses: '200': description: Reset email sent. This endpoint does not return a body requestBody: content: application/x-www-form-urlencoded: schema: description: '' type: object properties: email: type: string minLength: 1 required: - email x-examples: example-1: email: user@example.com description: Trigger a forgotten password email tags: - account /files: get: summary: List Files tags: - files responses: '200': description: OK content: application/json: schema: description: '' type: object properties: next: type: string minLength: 1 offset: type: string minLength: 1 data: type: array uniqueItems: true minItems: 1 items: required: - checksum - id - path - created_at - contents properties: checksum: type: string minLength: 1 id: type: string minLength: 1 path: type: string minLength: 1 created_at: type: number contents: type: string minLength: 1 required: - next - offset - data x-examples: example-1: next: /files?offset=f75ec1aa-639a-47a4-9063-6c4b14f0463a offset: f75ec1aa-639a-47a4-9063-6c4b14f0463a data: - checksum: 62add248168d176068865b526234294392ef86736fab23e66c5c99853987994e id: 05f103ff-5782-492e-bfb0-3ecf4eada68e path: themes/base/assets/styles/normalize.min.css created_at: 1621585953 contents: | /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none} examples: success: value: next: /files?offset=f75ec1aa-639a-47a4-9063-6c4b14f0463a offset: f75ec1aa-639a-47a4-9063-6c4b14f0463a data: - checksum: 99b7da64f6913643358ea0c8b8b4185cfb9ff03d6d82ddd9fa4eca9dfa23d997 id: 07f1b7e2-43b6-411b-89d7-2a2593e1a76d path: themes/base/partials/homepage/clients.html created_at: 1621585953 contents: |-

You're in Good Company

Developers from all industries use our platform to build integrations and custom applications.

operationId: list-files description: List all of the files uploaded to the portal /developer: get: summary: Get Logged-in Developer tags: - developer responses: '200': description: OK content: application/json: schema: description: '' type: object properties: updated_at: type: number meta: type: string minLength: 1 created_at: type: number email: type: string minLength: 1 consumer: type: object properties: id: type: string minLength: 1 required: - id id: type: string minLength: 1 status: type: number required: - updated_at - meta - created_at - email - consumer - id - status x-examples: example-1: updated_at: 1622818516 meta: '{"full_name":"User"}' created_at: 1622818473 email: user@example.com consumer: id: 06e5ea74-211e-4454-92cb-3f99bce4db10 id: 7581dec6-3f16-4509-86ef-b5c65179a532 status: 0 examples: success: value: updated_at: 1622818516 meta: '{"full_name":"User"}' created_at: 1622818473 email: user@example.com consumer: id: 06e5ea74-211e-4454-92cb-3f99bce4db10 id: 7581dec6-3f16-4509-86ef-b5c65179a532 status: 0 operationId: get-developer description: Get the currently logged in developer's details delete: summary: Delete Developer operationId: delete-developer responses: '204': description: No Content '401': description: Unauthorized content: application/json: schema: description: '' type: object properties: message: type: string minLength: 1 required: - message x-examples: example-1: message: Invalid authentication credentials examples: error: value: message: Invalid authentication credentials description: Delete the current developer's account tags: - developer /developer/meta_fields: get: summary: Your GET endpoint tags: - developer responses: '200': description: OK content: application/json: schema: type: array description: '' minItems: 1 uniqueItems: true items: type: object required: - title - label - is_email - validator properties: title: type: string minLength: 1 label: type: string minLength: 1 is_email: type: boolean validator: type: object properties: type: type: string minLength: 1 required: type: boolean required: - type - required x-examples: example-1: - title: full_name label: Full Name is_email: false validator: type: string required: true examples: success: value: - title: full_name label: Full Name is_email: false validator: type: string required: true operationId: get-developer-meta description: Get metadata associated with the current user /developer/password: patch: summary: Update Password operationId: update-password responses: '204': description: No Content '400': description: Bad Request content: application/json: schema: description: '' type: object properties: message: type: string minLength: 1 required: - message x-examples: example-1: message: Old password is invalid examples: error: value: message: Old password is invalid requestBody: content: application/x-www-form-urlencoded: schema: description: '' type: object properties: password: type: string minLength: 1 old_password: type: string minLength: 1 required: - password - old_password x-examples: example-1: password: password123 old_password: password examples: update-password: value: password: password old_password: password123 tags: - developer description: Change the currently logged in user's password /developer/email: patch: summary: Update Email operationId: update-email responses: '200': description: OK requestBody: content: application/x-www-form-urlencoded: schema: description: '' type: object properties: email: type: string minLength: 1 required: - email x-examples: example-1: email: user@example.com examples: update-email: value: email: user@example.com tags: - developer description: Update the currently logged in user's email /developer/meta: patch: summary: '' operationId: update-meta responses: '200': description: Metadata updated. This endpoint does not return a body description: Update developer meta fields requestBody: content: application/x-www-form-urlencoded: schema: description: '' type: object properties: meta: type: string minLength: 1 required: - meta x-examples: example-1: meta: '{"full_name":"Bob"}' examples: update-meta: value: meta: '{"full_name":"Bob"}' tags: - developer /credentials/key-auth: get: summary: Get Credentials (Key Auth) tags: - credentials responses: '200': description: OK content: application/json: schema: description: '' type: object properties: next: {} data: type: array uniqueItems: true minItems: 1 items: required: - created_at - key - id properties: consumer: type: object properties: id: type: string minLength: 1 required: - id created_at: type: number key: type: string minLength: 1 id: type: string minLength: 1 total: type: number required: - data - total x-examples: example-1: next: null data: - consumer: id: 52b6eefa-1962-42b1-a5c7-26370c5427c5 created_at: 1621616464 key: demo123 id: 567276e0-2b15-4592-b9d4-c40f5439873f total: 1 examples: success: value: data: - key: demo123 consumer: id: 797625f9-5bff-4270-8857-ca4e9c192f17 id: 4d00b0be-651e-468d-baba-12f5ca6988b5 created_at: 1622826008 next: null total: 1 operationId: get-credentials-key-auth description: List available key-auth credentials post: summary: Create Credential (key-auth) operationId: create-credentials-key-auth responses: '200': description: OK content: application/json: schema: description: '' type: object properties: key: type: string minLength: 1 consumer: type: object properties: id: type: string minLength: 1 required: - id id: type: string minLength: 1 created_at: type: number required: - key - consumer - id - created_at x-examples: example-1: key: demo123 consumer: id: 797625f9-5bff-4270-8857-ca4e9c192f17 id: 4d00b0be-651e-468d-baba-12f5ca6988b5 created_at: 1622826008 examples: success: value: key: demo123 consumer: id: 797625f9-5bff-4270-8857-ca4e9c192f17 id: 4d00b0be-651e-468d-baba-12f5ca6988b5 created_at: 1622826008 description: Create key-auth credentials requestBody: content: application/x-www-form-urlencoded: schema: description: '' type: object x-examples: example-1: key: demo123 properties: key: type: string minLength: 1 examples: create: value: key: demo123 tags: - credentials /credentials/jwt: get: summary: Get Credentials (JWT) tags: - credentials responses: '200': description: OK content: application/json: schema: type: object properties: data: type: array items: anyOf: - $ref: '#/components/schemas/JWTHS' - $ref: '#/components/schemas/JWTRS' examples: success: value: data: - algorithm: HS256 id: 4802966c-38fb-44f6-b31b-9c39ea688c99 created_at: 1622826359 secret: secret1 consumer: id: 797625f9-5bff-4270-8857-ca4e9c192f17 key: demo123 - algorithm: RS256 id: b6559540-f68d-4ecb-9791-f5668f92dd9e created_at: 1622826371 secret: secret1 consumer: id: 797625f9-5bff-4270-8857-ca4e9c192f17 rsa_public_key: |- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtZGewwUOx8dRq7txWGVt FBd/s3RNcRDe8uNRM//LxNoMFlK+LCT3r8sUp7x5JQ9ee+rLVV5YpUWHYhQ0XtBP FritRKabw/6cid+cBdeIQZ/BufVhxDybwm+Bq0CL+dHkXR1nLUoG6I1/CvSSjMVj ILtsBDUC9B8PVpjRo66U5vx0mBCtItx4bblcSrAVkUHRH3fx9bHNrqQhNx8wNf08 VHuiCGKM7fo4YdhUJtXSCh5CKafnxjGLUMPKum82l23vNkhrV7H7FjKv9OpWeIQt xLq1gtUXLXUy0hM/WqtXDLzq3b3iXLHpilrPAUsaBGDvaO9qnqfJ7/kLJXz4Zxn8 V70ucfMABJc5lAiEZpBVtSJ5QTIurdIvAIBuCU7VS3wHwPtNwKIdLQVNLqUYsSGl yp5zfAhKjrdmKCNUgdIMmFiCB1UqfTWESw7OT7kfu4xc15QIZc+JJD24QwUSJLwl OgHDzFigMcPuLYpmswPEIYjOcZefe8PreZcVzDSBQkMDS8TP9MUYpd225AtyVChB xUxLZ8Ca4C1pWI/Jlh9E5ZRk1dnvgypcipkSzj24uTazZQUws0qbCE0ZaEd0yxYz 1MIQaWMQ/hk38h4ogkdatTXjalFIHJ+Vrt7nkfcOzD2/ujBacMvr/9WB1xcBNEUg ZRP0UdnTaVZ5EqWVwqNTUvcCAwEAAQ== -----END PUBLIC KEY----- key: demo999 next: null total: 2 operationId: get-credentials-jwt description: List available JWT credentials post: summary: Create Credential (JWT) operationId: create-credential-jwt responses: '200': description: OK content: application/json: schema: type: object properties: {} requestBody: content: application/x-www-form-urlencoded: schema: description: '' type: object x-examples: example-1: key: demo123 secret: secret1 algorithm: HS256 properties: key: type: string minLength: 1 secret: type: string minLength: 1 algorithm: type: string minLength: 1 rsa_public_key: type: string '': type: string required: - key - secret - algorithm examples: HS256: value: key: hs-key secret: secret1 algorithm: HS256 RS256: value: key: rs-key secret: secret1 algorithm: RS256 rsa_public_key: |- -----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtZGewwUOx8dRq7txWGVt FBd/s3RNcRDe8uNRM//LxNoMFlK+LCT3r8sUp7x5JQ9ee+rLVV5YpUWHYhQ0XtBP FritRKabw/6cid+cBdeIQZ/BufVhxDybwm+Bq0CL+dHkXR1nLUoG6I1/CvSSjMVj ILtsBDUC9B8PVpjRo66U5vx0mBCtItx4bblcSrAVkUHRH3fx9bHNrqQhNx8wNf08 VHuiCGKM7fo4YdhUJtXSCh5CKafnxjGLUMPKum82l23vNkhrV7H7FjKv9OpWeIQt xLq1gtUXLXUy0hM/WqtXDLzq3b3iXLHpilrPAUsaBGDvaO9qnqfJ7/kLJXz4Zxn8 V70ucfMABJc5lAiEZpBVtSJ5QTIurdIvAIBuCU7VS3wHwPtNwKIdLQVNLqUYsSGl yp5zfAhKjrdmKCNUgdIMmFiCB1UqfTWESw7OT7kfu4xc15QIZc+JJD24QwUSJLwl OgHDzFigMcPuLYpmswPEIYjOcZefe8PreZcVzDSBQkMDS8TP9MUYpd225AtyVChB xUxLZ8Ca4C1pWI/Jlh9E5ZRk1dnvgypcipkSzj24uTazZQUws0qbCE0ZaEd0yxYz 1MIQaWMQ/hk38h4ogkdatTXjalFIHJ+Vrt7nkfcOzD2/ujBacMvr/9WB1xcBNEUg ZRP0UdnTaVZ5EqWVwqNTUvcCAwEAAQ== -----END PUBLIC KEY----- description: Create a new JWT credential tags: - credentials parameters: [] /credentials/jwt/{id}: get: summary: Get Credential (JWT) tags: - credentials operationId: get-credential-jwt description: Get JWT Credential responses: '200': description: OK content: application/json: schema: oneOf: - $ref: '#/components/schemas/JWTHS' - $ref: '#/components/schemas/JWTRS' parameters: [] patch: summary: Update Credential (JWT) operationId: patch-credential-jwt responses: '200': description: OK content: application/json: schema: oneOf: - $ref: '#/components/schemas/JWTHS' - $ref: '#/components/schemas/JWTRS' examples: success: value: algorithm: HS256 id: 4802966c-38fb-44f6-b31b-9c39ea688c99 created_at: 1622826359 secret: secret2 consumer: id: 797625f9-5bff-4270-8857-ca4e9c192f17 key: demo1234 requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/JWT' description: Update an existing JWT credential tags: - credentials parameters: - schema: type: string name: id in: path required: true delete: summary: Delete Credential (JWT) operationId: delete-credential-jwt responses: '204': description: No Content description: Delete an existing JWT credential tags: - credentials /applications: get: summary: List applications tags: - application responses: '200': description: OK content: application/json: schema: description: '' type: object properties: data: type: array uniqueItems: true minItems: 1 items: required: - created_at - id - redirect_uri - updated_at - name properties: created_at: type: number id: type: string minLength: 1 redirect_uri: type: string minLength: 1 updated_at: type: number developer: type: object properties: id: type: string minLength: 1 required: - id name: type: string minLength: 1 consumer: type: object properties: id: type: string minLength: 1 required: - id next: {} total: type: number required: - data - total x-examples: example-1: data: - created_at: 1626966853 id: 3c929386-bd89-4c55-92b5-b4966f7957ab redirect_uri: https://example.com updated_at: 1626966853 developer: id: 7bd5256c-00e0-47c5-86a7-949aef632a21 name: Demo consumer: id: b9b6a89d-3fb3-483a-a2df-0bdf4d7d26fe next: null total: 1 examples: success: value: data: - created_at: 1626966853 id: 3c929386-bd89-4c55-92b5-b4966f7957ab redirect_uri: https://example.com updated_at: 1626966853 developer: id: 7bd5256c-00e0-47c5-86a7-949aef632a21 name: Demo consumer: id: b9b6a89d-3fb3-483a-a2df-0bdf4d7d26fe next: null total: 1 operationId: list-applications description: List applications post: summary: Create Application operationId: post-applications responses: '201': description: Created content: application/json: schema: description: '' type: object properties: created_at: type: number id: type: string minLength: 1 redirect_uri: type: string minLength: 1 updated_at: type: number developer: type: object properties: id: type: string minLength: 1 required: - id name: type: string minLength: 1 consumer: type: object properties: id: type: string minLength: 1 required: - id required: - created_at - id - redirect_uri - updated_at - developer - name - consumer x-examples: example-1: created_at: 1626967086 id: fa18fdb0-8cc3-4356-95e5-813ca6bf21de redirect_uri: http://localhost updated_at: 1626967086 developer: id: 7bd5256c-00e0-47c5-86a7-949aef632a21 name: My Application consumer: id: 051d9ad2-0fc6-41a6-9bf3-4132117d980e tags: - application description: Create an application requestBody: content: application/x-www-form-urlencoded: schema: description: '' type: object properties: redirect_uri: type: string minLength: 1 name: type: string minLength: 1 required: - redirect_uri - name x-examples: example-1: redirect_uri: http://localhost name: My Application examples: create: value: redirect_uri: string name: string /applications/{id}: get: summary: Get Application tags: - application responses: '200': description: OK content: application/json: schema: description: '' type: object properties: data: type: array uniqueItems: true minItems: 1 items: required: - created_at - id - redirect_uri - updated_at - name properties: created_at: type: number id: type: string minLength: 1 redirect_uri: type: string minLength: 1 updated_at: type: number developer: type: object properties: id: type: string minLength: 1 required: - id name: type: string minLength: 1 consumer: type: object properties: id: type: string minLength: 1 required: - id next: {} total: type: number required: - data - total x-examples: example-1: data: - created_at: 1626966853 id: 3c929386-bd89-4c55-92b5-b4966f7957ab redirect_uri: https://example.com updated_at: 1626966853 developer: id: 7bd5256c-00e0-47c5-86a7-949aef632a21 name: Demo consumer: id: b9b6a89d-3fb3-483a-a2df-0bdf4d7d26fe next: null total: 1 examples: application: value: created_at: 1626967086 id: fa18fdb0-8cc3-4356-95e5-813ca6bf21de redirect_uri: http://localhost updated_at: 1626967086 developer: id: 7bd5256c-00e0-47c5-86a7-949aef632a21 name: My Application consumer: id: 051d9ad2-0fc6-41a6-9bf3-4132117d980e operationId: get-application description: Get application parameters: - schema: type: string name: id in: path required: true description: Application ID patch: summary: Update Application operationId: update-application responses: '200': description: OK content: application/json: schema: description: '' type: object properties: created_at: type: number id: type: string minLength: 1 redirect_uri: type: string minLength: 1 updated_at: type: number developer: type: object properties: id: type: string minLength: 1 required: - id name: type: string minLength: 1 consumer: type: object properties: id: type: string minLength: 1 required: - id required: - created_at - id - redirect_uri - updated_at - developer - name - consumer x-examples: example-1: created_at: 1626967086 id: fa18fdb0-8cc3-4356-95e5-813ca6bf21de redirect_uri: http://localhost updated_at: 1626967282 developer: id: 7bd5256c-00e0-47c5-86a7-949aef632a21 name: Another consumer: id: 051d9ad2-0fc6-41a6-9bf3-4132117d980e examples: updated: value: created_at: 0 id: string redirect_uri: string updated_at: 0 developer: id: string name: string consumer: id: string description: Update application tags: - application requestBody: content: application/x-www-form-urlencoded: schema: description: '' type: object x-examples: example-1: name: Another properties: name: type: string minLength: 1 request_uri: type: string required: - name examples: update: value: redirect_uri: string name: string delete: summary: Delete Application operationId: delete-application responses: '204': description: No Content tags: - application description: Delete application /application_services: get: summary: List Application Services responses: '200': description: OK content: application/json: schema: description: '' type: object properties: data: type: array uniqueItems: true minItems: 1 items: required: - name - id properties: name: type: string minLength: 1 app_registration_config: type: object properties: description: type: string minLength: 1 show_issuer: type: boolean display_name: type: string minLength: 1 auto_approve: type: boolean required: - description - show_issuer - display_name - auto_approve id: type: string minLength: 1 next: {} total: type: number required: - data - total x-examples: example-1: data: - name: Demo Name app_registration_config: description: Demo Description show_issuer: false display_name: Demo Name auto_approve: false id: d2b5a2c9-51a2-45f9-a62b-17cb5e8ce2ad next: null total: 1 examples: pending: value: data: - name: Demo Name app_registration_config: description: Demo Description show_issuer: false display_name: Demo App auto_approve: false id: d2b5a2c9-51a2-45f9-a62b-17cb5e8ce2ad next: null total: 1 operationId: get-application_services description: List available services tags: - application-services /applications/{id}/application_instances: get: summary: List Application Services responses: '200': description: OK content: application/json: schema: description: '' type: object properties: data: type: array uniqueItems: true minItems: 1 items: required: - name - id properties: name: type: string minLength: 1 app_registration_config: type: object properties: description: type: string minLength: 1 show_issuer: type: boolean display_name: type: string minLength: 1 auto_approve: type: boolean required: - description - show_issuer - display_name - auto_approve id: type: string minLength: 1 next: {} total: type: number required: - data - total x-examples: example-1: data: - name: Demo Name app_registration_config: description: Demo Description show_issuer: false display_name: Demo Name auto_approve: false id: d2b5a2c9-51a2-45f9-a62b-17cb5e8ce2ad next: null total: 1 examples: pending: value: data: - name: Demo Name app_registration_config: description: Demo Description show_issuer: false display_name: Demo App auto_approve: false id: d2b5a2c9-51a2-45f9-a62b-17cb5e8ce2ad next: null total: 1 operationId: list-application-services description: List application services tags: - application-instances parameters: - schema: type: string name: id in: path required: true post: summary: Create Application Instance operationId: create-application-instance responses: '201': description: Created content: application/json: schema: description: '' type: object properties: created_at: type: number suspended: type: boolean status: type: number id: type: string minLength: 1 composite_id: type: string minLength: 1 updated_at: type: number application: type: object properties: id: type: string minLength: 1 required: - id service: type: object properties: id: type: string minLength: 1 required: - id required: - created_at - suspended - status - id - composite_id - updated_at - application - service x-examples: example-1: created_at: 1626968283 suspended: false status: 1 id: 9968b0d6-7358-4989-b359-e1ab913753f7 composite_id: 3c929386-bd89-4c55-92b5-b4966f7957ab_d2b5a2c9-51a2-45f9-a62b-17cb5e8ce2ad updated_at: 1626968283 application: id: 3c929386-bd89-4c55-92b5-b4966f7957ab service: id: d2b5a2c9-51a2-45f9-a62b-17cb5e8ce2ad examples: success: value: created_at: 1626968283 suspended: false status: 1 id: 9968b0d6-7358-4989-b359-e1ab913753f7 composite_id: 3c929386-bd89-4c55-92b5-b4966f7957ab_d2b5a2c9-51a2-45f9-a62b-17cb5e8ce2ad updated_at: 1626968283 application: id: 3c929386-bd89-4c55-92b5-b4966f7957ab service: id: d2b5a2c9-51a2-45f9-a62b-17cb5e8ce2ad description: Create Application Instance requestBody: content: application/x-www-form-urlencoded: schema: description: '' type: object properties: service.id: type: string minLength: 1 required: - service.id x-examples: example-1: service.id: d2b5a2c9-51a2-45f9-a62b-17cb5e8ce2ad examples: create: value: service.id: d2b5a2c9-51a2-45f9-a62b-17cb5e8ce2ad tags: - application-instances /applications/{id}/application_instances/{instance}: get: summary: Get Application Instance responses: '200': description: OK content: application/json: schema: description: '' type: object properties: created_at: type: number suspended: type: boolean status: type: number id: type: string minLength: 1 composite_id: type: string minLength: 1 updated_at: type: number application: type: object properties: id: type: string minLength: 1 required: - id service: type: object properties: id: type: string minLength: 1 required: - id required: - created_at - suspended - status - id - composite_id - updated_at - application - service x-examples: example-1: created_at: 1626967481 suspended: false status: 0 id: 724e758a-0633-4ecc-ab92-8727c42820e7 composite_id: 3c929386-bd89-4c55-92b5-b4966f7957ab_d2b5a2c9-51a2-45f9-a62b-17cb5e8ce2ad updated_at: 1626967581 application: id: 3c929386-bd89-4c55-92b5-b4966f7957ab service: id: d2b5a2c9-51a2-45f9-a62b-17cb5e8ce2ad examples: pending: value: data: - name: Demo Name app_registration_config: description: Demo Description show_issuer: false display_name: Demo App auto_approve: false id: d2b5a2c9-51a2-45f9-a62b-17cb5e8ce2ad next: null total: 1 operationId: get-application-instance description: Get an application instance tags: - application-instances parameters: - schema: type: string name: id in: path required: true - schema: type: string name: instance in: path required: true delete: summary: Delete Application Instance operationId: delete-application-instance responses: '204': description: No Content description: Delete application instance tags: - application-instances /applications/{id}/credentials: parameters: - schema: type: string name: id in: path required: true get: summary: List Application Credentials responses: '200': description: OK content: application/json: schema: description: '' type: object properties: data: type: array uniqueItems: true minItems: 1 items: required: - created_at - id - client_type - name - hash_secret - client_id - client_secret properties: consumer: type: object properties: id: type: string minLength: 1 required: - id created_at: type: number id: type: string minLength: 1 client_type: type: string minLength: 1 name: type: string minLength: 1 hash_secret: type: boolean client_id: type: string minLength: 1 client_secret: type: string minLength: 1 redirect_uris: type: array items: required: [] properties: {} next: {} total: type: number required: - data - total x-examples: example-1: data: - consumer: id: b9b6a89d-3fb3-483a-a2df-0bdf4d7d26fe created_at: 1626967455 id: 40cc2b81-e92e-4208-8859-83a58bad6136 client_type: confidential name: Demo hash_secret: false client_id: CqXDjc0UTN5mjHwh38yTU6a8yMeAG3S7 client_secret: KxKCqk0a097i2cXfe46iVVAyTY2r7KCC redirect_uris: - https://example.com next: null total: 1 examples: credentials: value: data: - consumer: id: string created_at: 0 id: string client_type: string name: string hash_secret: true client_id: string client_secret: string redirect_uris: - {} next: null total: 0 operationId: list-application-credentials description: List Application Credentials tags: - application-credentials post: summary: Create application credentials operationId: create-application-credentials responses: '201': description: Created content: application/json: schema: description: '' type: object properties: consumer: type: object properties: id: type: string minLength: 1 required: - id created_at: type: number id: type: string minLength: 1 client_type: type: string minLength: 1 name: type: string minLength: 1 hash_secret: type: boolean client_id: type: string minLength: 1 client_secret: type: string minLength: 1 redirect_uris: type: array items: required: [] properties: {} required: - consumer - created_at - id - client_type - name - hash_secret - client_id - client_secret - redirect_uris x-examples: example-1: consumer: id: b9b6a89d-3fb3-483a-a2df-0bdf4d7d26fe created_at: 1626968440 id: fb1ea628-1adc-4d67-b86e-395e7a12d689 client_type: confidential name: Demo hash_secret: false client_id: uleOEF5HkPrq2aogk5Y0f2yfB8qmX6xZ client_secret: I8hoJyPSO6WAFmwv7giaUbwtZPmIy7Uo redirect_uris: - https://example.com examples: success: value: consumer: id: b9b6a89d-3fb3-483a-a2df-0bdf4d7d26fe created_at: 1626968440 id: fb1ea628-1adc-4d67-b86e-395e7a12d689 client_type: confidential name: Demo hash_secret: false client_id: uleOEF5HkPrq2aogk5Y0f2yfB8qmX6xZ client_secret: I8hoJyPSO6WAFmwv7giaUbwtZPmIy7Uo redirect_uris: - https://example.com description: Create application credentials tags: - application-credentials /applications/{id}/credentials/{credential}: parameters: - schema: type: string name: id in: path required: true - schema: type: string name: credential in: path required: true get: summary: Get Application Credentials responses: '200': description: OK content: application/json: schema: description: '' type: object properties: data: type: array uniqueItems: true minItems: 1 items: required: - created_at - id - client_type - name - hash_secret - client_id - client_secret properties: consumer: type: object properties: id: type: string minLength: 1 required: - id created_at: type: number id: type: string minLength: 1 client_type: type: string minLength: 1 name: type: string minLength: 1 hash_secret: type: boolean client_id: type: string minLength: 1 client_secret: type: string minLength: 1 redirect_uris: type: array items: required: [] properties: {} next: {} total: type: number required: - data - total x-examples: example-1: data: - consumer: id: b9b6a89d-3fb3-483a-a2df-0bdf4d7d26fe created_at: 1626967455 id: 40cc2b81-e92e-4208-8859-83a58bad6136 client_type: confidential name: Demo hash_secret: false client_id: CqXDjc0UTN5mjHwh38yTU6a8yMeAG3S7 client_secret: KxKCqk0a097i2cXfe46iVVAyTY2r7KCC redirect_uris: - https://example.com next: null total: 1 examples: credentials: value: data: - consumer: id: string created_at: 0 id: string client_type: string name: string hash_secret: true client_id: string client_secret: string redirect_uris: - {} next: null total: 0 operationId: get-application-credential description: Get Application Credentials tags: - application-credentials delete: summary: Delete Application Credential operationId: delete-application-credential responses: '204': description: No Content description: Delete Application Credential tags: - application-credentials components: securitySchemes: DeveloperCredentials: type: http scheme: basic responses: TokenIsRequired: description: Bad Request content: application/json: schema: description: '' type: object properties: message: type: string minLength: 1 required: - message examples: missing-token: value: message: token is required schemas: JWT: title: JWT description: '' type: object x-examples: example-1: key: demo123 secret: secret1 algorithm: HS256 properties: key: type: string minLength: 1 secret: type: string minLength: 1 algorithm: type: string minLength: 1 rsa_public_key: type: string '': type: string required: - key - secret - algorithm JWTHS: description: '' type: object properties: algorithm: type: string minLength: 1 id: type: string minLength: 1 created_at: type: number secret: type: string minLength: 1 consumer: type: object properties: id: type: string minLength: 1 required: - id key: type: string minLength: 1 required: - algorithm - id - created_at - secret - consumer - key JWTRS: description: '' type: object properties: algorithm: type: string minLength: 1 id: type: string minLength: 1 created_at: type: number secret: type: string minLength: 1 consumer: type: object properties: id: type: string minLength: 1 required: - id rsa_public_key: type: string minLength: 1 key: type: string minLength: 1 required: - algorithm - id - created_at - secret - consumer - rsa_public_key - key tags: - name: account - name: application - name: application-instances - name: application-credentials - name: application-services - name: authentication - name: configuration - name: credentials - name: developer - name: files - name: vitals