> ## Documentation Index
> Fetch the complete documentation index at: https://stytch.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Revoke Connected App Access for a User

> Revoke a Connected App's access to a User

Revoke a Connected App's access to a User and revokes all active tokens that have been created on the User's behalf. New tokens cannot be created until the User completes a new authorization flow with the Connected App.


## OpenAPI

````yaml POST /v1/users/{user_id}/connected_apps/{connected_app_id}/revoke
openapi: 3.0.3
info:
  title: Stytch API
  description: The Stytch API provides endpoints for authentication and user management.
  version: 2.1.1
  contact:
    name: Stytch Support
    url: https://stytch.com/docs
    email: support@stytch.com
servers:
  - url: https://api.stytch.com
    description: Production server
  - url: https://test.stytch.com
    description: Test server
security:
  - basicAuth: []
paths:
  /v1/users/{user_id}/connected_apps/{connected_app_id}/revoke:
    post:
      tags:
        - User
      summary: Revoke
      description: >-
        Revoke Connected App revokes a Connected App's access to a User and
        revokes all active tokens that have been created

        on the User's behalf. New tokens cannot be created until the User
        completes a new authorization flow with the

        Connected App.
      operationId: api_user_v1_Revoke
      parameters:
        - name: user_id
          in: path
          required: true
          schema:
            type: string
            description: >-
              The unique ID of a specific User. You may use an `external_id`
              here if one is set for the user.
          description: >-
            The unique ID of a specific User. You may use an `external_id` here
            if one is set for the user.
        - name: connected_app_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the Connected App.
          description: The ID of the Connected App.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/api_user_v1_RevokeRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api_user_v1_RevokeResponse'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
          content:
            application/json:
              example:
                status_code: 401
                request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141
                error_type: unauthorized_credentials
                error_message: Unauthorized credentials.
                error_url: https://stytch.com/docs/api/errors/401
        '429':
          description: Too Many Requests
          content:
            application/json:
              example:
                status_code: 429
                request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141
                error_type: too_many_requests
                error_message: Too many requests have been made.
                error_url: https://stytch.com/docs/api/errors/429
        '500':
          description: Internal server error
          content:
            application/json:
              example:
                status_code: 500
                request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141
                error_type: internal_server_error
                error_message: >-
                  Oops, something seems to have gone wrong, please reach out to
                  support@stytch.com to let us know what went wrong.
                error_url: https://stytch.com/docs/api/errors/500
      x-code-samples:
        - lang: csharp
          label: C#
          source: |-
            // POST /v1/users/{user_id}/connected_apps/{connected_app_id}/revoke
            const stytch = require('stytch');

            const client = new stytch.Client({
              project_id: '${projectId}',
              secret: '${secret}',
            });

            const params = {
              user_id: "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
              connected_app_id: "connected-app-test-d731954d-dab3-4a2b-bdee-07f3ad1be888",
            };

            client.Users.Revoke(params)
              .then(resp => { console.log(resp) })
              .catch(err => { console.log(err) });
        - lang: go
          label: Go
          source: "// POST /v1/users/{user_id}/connected_apps/{connected_app_id}/revoke\npackage main\n\nimport (\n\t\"context\"\n\t\"log\"\n\n\t\"github.com/stytchauth/stytch-go/v18/stytch/consumer/stytchapi\"\n\t\"github.com/stytchauth/stytch-go/v18/stytch/consumer/users\"\n)\n\nfunc main() {\n\tclient, err := stytchapi.NewClient(\n\t\t\"${projectId}\",\n\t\t\"${secret}\",\n\t)\n\tif err != nil {\n\t\tlog.Fatalf(\"error instantiating client: %v\", err)\n\t}\n\n\tparams := &users.RevokeParams{\n\t\tUserID:         \"user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6\",\n\t\tConnectedAppID: \"connected-app-test-d731954d-dab3-4a2b-bdee-07f3ad1be888\",\n\t}\n\n\tresp, err := client.Users.Revoke(context.Background(), params)\n\tif err != nil {\n\t\tlog.Fatalf(\"error in method call: %v\", err)\n\t}\n\n\tlog.Println(resp)\n}\n"
        - lang: java
          label: Java
          source: |-
            // POST /v1/users/{user_id}/connected_apps/{connected_app_id}/revoke
            package com.example;

            import com.stytch.java.common.StytchResult;
            import com.stytch.java.consumer.models.users.RevokeRequest;
            import com.stytch.java.consumer.StytchClient;

            public class Main {
                public static void main(String[] args) {
                    StytchClient.configure("${projectId}", "${secret}");

                    RevokeRequest params = new RevokeRequest();
                    params.setUserId("user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6");
                    params.setConnectedAppId("connected-app-test-d731954d-dab3-4a2b-bdee-07f3ad1be888");

                    Object result = StytchClient.getUsers().revoke(params);
                    if (result instanceof StytchResult.Success) {
                      System.out.println(((StytchResult.Success) result).getValue());
                    } else {
                      System.out.println(((StytchResult.Error) result).getException());
                    }
                }
            }
        - lang: kotlin
          label: Kotlin
          source: |
            // POST /v1/users/{user_id}/connected_apps/{connected_app_id}/revoke
            package com.example

            import com.stytch.java.consumer.StytchClient
            import com.stytch.java.consumer.models.users.RevokeRequest

            fun main() {
                StytchClient.configure(
                    projectId = "${projectId}",
                    secret = "${secret}",
                )

                when (
                    val result =
                        StytchClient.users.revoke(
                            RevokeRequest(
                                userId = "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
                                connectedAppId = "connected-app-test-d731954d-dab3-4a2b-bdee-07f3ad1be888",
                            ),
                        )
                ) {
                    is StytchResult.Success -> println(result.value)
                    is StytchResult.Error -> println(result.exception)
                }
            }
        - lang: javascript
          label: Node.js
          source: |-
            // POST /v1/users/{user_id}/connected_apps/{connected_app_id}/revoke
            const stytch = require('stytch');

            const client = new stytch.Client({
              project_id: '${projectId}',
              secret: '${secret}',
            });

            const params = {
              user_id: "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
              connected_app_id: "connected-app-test-d731954d-dab3-4a2b-bdee-07f3ad1be888",
            };

            client.users.revoke(params)
              .then(resp => { console.log(resp) })
              .catch(err => { console.log(err) });
        - lang: php
          label: PHP
          source: |-
            $response = $client->users->revoke([
                'user_id' => 'user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6',
                'connected_app_id' => 'connected-app-test-d731954d-dab3-4a2b-bdee-07f3ad1be888',
            ]);
        - lang: python
          label: Python
          source: |
            # POST /v1/users/{user_id}/connected_apps/{connected_app_id}/revoke
            from stytch import Client

            client = Client(
                project_id="${projectId}",
                secret="${secret}",
            )

            resp = client.users.revoke(
                user_id="user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
                connected_app_id="connected-app-test-d731954d-dab3-4a2b-bdee-07f3ad1be888",
            )

            print(resp)
        - lang: ruby
          label: Ruby
          source: |-
            # frozen_string_literal: true

            # POST /v1/users/{user_id}/connected_apps/{connected_app_id}/revoke
            require 'stytch'

            client = Stytch::Client.new(
              project_id: "${projectId}",
              secret: "${secret}"
            )

            resp = client.users.revoke(
              user_id: "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
              connected_app_id: "connected-app-test-d731954d-dab3-4a2b-bdee-07f3ad1be888"
              
            )

            puts resp
        - lang: rust
          label: Rust
          source: |-
            // POST /v1/users/{user_id}/connected_apps/{connected_app_id}/revoke
            use stytch::consumer::client::Client;
            use stytch::consumer::users::RevokeRequest;

            fn main() {
                let client = Client::new("${projectId}", "${secret}").unwrap();
                let resp = client.users.revoke(
                    RevokeRequest{
                        user_id: "user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6",
                        connected_app_id: "connected-app-test-d731954d-dab3-4a2b-bdee-07f3ad1be888",
                        ..Default::default()
                    }
                ).await;
                println!("The response is {:?}", resp);
            }
        - lang: bash
          label: cURL
          source: |-
            # POST /v1/users/{user_id}/connected_apps/{connected_app_id}/revoke
            curl --request POST \
              --url https://test.stytch.com/v1/users/user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6/connected_apps/connected-app-test-d731954d-dab3-4a2b-bdee-07f3ad1be888/revoke \
              -u '${projectId}:${secret}' \
              -H 'Content-Type: application/json'
components:
  schemas:
    api_user_v1_RevokeRequest:
      type: object
      properties: {}
      description: Request type
    api_user_v1_RevokeResponse:
      type: object
      properties:
        request_id:
          type: string
          description: >-
            Globally unique UUID that is returned with every API call. This
            value is important to log for debugging purposes; we may ask for
            this value to help identify a specific API call when helping you
            debug an issue.
        status_code:
          type: integer
          format: int32
      required:
        - request_id
        - status_code
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic

````