---
title: "POST /stages/captcha/"
method: POST
path: "/stages/captcha/"
tags: ["stages"]
---

# POST /stages/captcha/

`POST /stages/captcha/`

CaptchaStage Viewset

## Request body

- CaptchaStageRequest — CaptchaStage Serializer
  - `name` string, required
  - `public_key` string, required — Public key, acquired your captcha Provider.
  - `private_key` string, required — Private key, acquired your captcha Provider.
  - `js_url` string
  - `api_url` string
  - `request_content_type` 'application/x-www-form-urlencoded' | 'application/json'
  - `interactive` boolean
  - `score_min_threshold` number, double
  - `score_max_threshold` number, double
  - `error_on_invalid_score` boolean — When enabled and the received captcha score is outside of the given threshold, the stage will show an error message. When not enabled, the flow will continue, but the data from the captcha will be available in the context for policy decisions

## Response `201`

- CaptchaStage — CaptchaStage Serializer
  - `pk` string, uuid, required
  - `name` string, required
  - `component` string, required — Get object type so that we know how to edit the object
  - `verbose_name` string, required — Return object's verbose_name
  - `verbose_name_plural` string, required — Return object's plural verbose_name
  - `meta_model_name` string, required — Return internal model name
  - `flow_set` FlowSet[], required
    - `pk` string, uuid, required
    - `policybindingmodel_ptr_id` string, uuid, required
    - `name` string, required
    - `slug` string, required — Visible in the URL.
    - `title` string, required — Shown as the Title in Flow pages.
    - `designation` 'authentication' | 'authorization' | 'invalidation' | 'enrollment' | 'unenrollment' | 'recovery' | 'stage_configuration', required
    - `background_url` string, required — Get the URL to the background image
    - `policy_engine_mode` 'all' | 'any'
    - `compatibility_mode` boolean — Enable compatibility mode, increases compatibility with password managers on mobile devices.
    - `export_url` string, required — Get export URL for flow
    - `layout` 'stacked' | 'content_left' | 'content_right' | 'sidebar_left' | 'sidebar_right' | 'sidebar_left_frame_background' | 'sidebar_right_frame_background'
    - `denied_action` 'message_continue' | 'message' | 'continue'
  - `public_key` string, required — Public key, acquired your captcha Provider.
  - `js_url` string
  - `api_url` string
  - `request_content_type` 'application/x-www-form-urlencoded' | 'application/json'
  - `interactive` boolean
  - `score_min_threshold` number, double
  - `score_max_threshold` number, double
  - `error_on_invalid_score` boolean — When enabled and the received captcha score is outside of the given threshold, the stage will show an error message. When not enabled, the flow will continue, but the data from the captcha will be available in the context for policy decisions

## Other responses

- `400`
- `403`

---

[API](https://skmtc.dev/goauthentik/apis/authentik.md) · [All operations](https://skmtc.dev/goauthentik/apis/authentik/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/goauthentik/authentik/revisions/4e42e86021d7/schema)
