Creates a new target that points to your external endpoint. Targets can be used in executions to extend ZITADEL’s functionality.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/zitadel/zitadel/llms.txt
Use this file to discover all available pages before exploring further.
HTTP Request
Permissions
Requiresaction.target.write permission.
Request Body
Display name for the target (1-1000 characters).
Defines how the response is handled. Choose one:
POST request where only the status code is checked. Body is ignored.
If true, execution stops on non-2xx response. Default is false.
POST request where status code and body are checked. Allows payload modification.
If true, execution stops on non-2xx response. Default is false.
Asynchronous POST request. Response is not waited for or checked. Use for events.
Duration until ZITADEL cancels the request (e.g., ”10s”). Maximum is 270 seconds. If the target doesn’t respond before timeout, the connection is closed and the action fails.
The URL of the endpoint to call (1-2048 characters). Must be a valid HTTPS URL.
How the payload is formatted and secured:
PAYLOAD_TYPE_JSON(default): JSON with X-ZITADEL-Signature headerPAYLOAD_TYPE_JWT: Signed JWT in the bodyPAYLOAD_TYPE_JWE: Encrypted JWT in the body (requires public key)
Response
Unique identifier of the newly created target.
When the target was created.
Key used to sign and verify payloads sent to the target. Used to calculate the HMAC SHA256 signature in the
X-ZITADEL-Signature header. Keep this secret.Example Request
Example Response
Error Responses
| Status Code | Description |
|---|---|
| 400 | Feature flag actions not enabled or invalid request |
| 401 | Unauthorized - missing or invalid authentication |
| 403 | Forbidden - insufficient permissions |
| 409 | Target with this name already exists |
Payload Types
JSON (Default)
Payload is sent as JSON in the request body. Signature is included in theX-ZITADEL-Signature header, calculated using HMAC SHA256 over the raw body.
Verify the signature on your endpoint:
JWT
Payload is sent as a signed JWT. The signature can be verified using ZITADEL’s public keys from the JWKS endpoint.JWE
Payload is sent as an encrypted JWT. You must add your public key to the target for encryption. This provides additional security for sensitive data.Notes
- The signing key is only returned on creation and cannot be retrieved later
- Store the signing key securely - it’s needed to verify request authenticity
- Targets can be updated later, but the signing key only changes when explicitly rotated
- The endpoint URL must be accessible from ZITADEL servers
- For
rest_asynctargets, timeouts only affect the individual target, not the overall execution