> ## 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

> Revoke Connected App using the Stytch React SDK

`user.revokeConnectedApp()` wraps the [User Revoke Connected App](/api-reference/consumer/api/connected-apps/consent-management/revoke-connected-app-access) API endpoint. The `user_id` will be automatically inferred from the logged-in user's session. This method revokes a Connected App's access to the 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. Note that after calling this method, the user will be forced to grant consent in subsequent authorization flows with the Connected App.

## Parameters

<ParamField body="connected_app_id" type="string">
  The ID of the Connected App.
</ParamField>

## Response

<ResponseField name="request_id" type="string">
  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.
</ResponseField>

<ResponseField name="status_code" type="number">
  The HTTP status code of the response. Stytch follows standard HTTP response status code patterns, e.g. 2XX values
  equate to success, 3XX values are redirects, 4XX are client errors, and 5XX are server errors.
</ResponseField>

<Panel>
  <RequestExample>
    ```jsx theme={null}
    import { useState } from 'react';
    import { useStytch } from '@stytch/react';

    export const RevokeConnectedAppButton = () => {
    const stytch = useStytch();
    const [isRevoking, setIsRevoking] = useState(false);

    const revoke = async () => {
      setIsRevoking(true);
      await stytch.user.revokeConnectedApp({
        connected_app_id: 'connected-app-id',
      });
      setIsRevoking(false);
    };

    return (
      <button onClick={revoke} disabled={isRevoking}>
        {isRevoking ? 'Revoking...' : 'Revoke access'}
      </button>
    );
    };
    ```
  </RequestExample>

  <ResponseExample>
    ```json 200 theme={null}
    {
      "status_code": 200,
      "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141"
    }
    ```

    ```json 401 theme={null}
    {
      "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"
    }
    ```

    ```json 429 theme={null}
    {
      "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"
    }
    ```

    ```json 500 theme={null}
    {
      "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"
    }
    ```
  </ResponseExample>
</Panel>
