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

# Set Persona delivery constraints

> Change message, chunk, replica, and clock-time limits for a Persona

Update the delivery constraints owned by a Persona. A Persona policy rule may further narrow these limits for a matching tag or recipient.

This request requires the current Persona `policy_nonce` and one active Persona-controller signature. Persona v1 uses a threshold of `1`.

## Request

<ParamField path="persona" type="string" required>
  The registered active Persona.
</ParamField>

<ParamField body="delivery_constraints" type="object" required>
  Positive values governed by the [network ceilings](/concepts/delivery-policies#constraints-and-network-ceilings). A requested TTL may exceed 48 hours, but the derived effective TTL cannot.
</ParamField>

Send every active constraint and omit the read-only `effective_ttl_seconds` field. Also omit the deprecated `max_message_bytes` and `max_chunks` compatibility fields; the Directory supplies their unbounded SCALE sentinels.

<RequestExample>
  ```bash Request theme={null}
  curl --request PUT \
    --url "https://directory.example.com/personas/example.com/delivery-constraints" \
    --header "Content-Type: application/json" \
    --data '{
      "persona": "example.com",
      "action": "set_persona_delivery_constraints",
      "delivery_constraints": {
        "requested_cache_seconds": 43200,
        "max_http_envelope_bytes": 12582912,
        "max_unchunked_message_bytes": 8388608,
        "max_chunk_bytes": 1048576,
        "max_replicas": 2
      },
      "nonce": "<policy-nonce>",
      "valid_until": "<epoch-milliseconds>",
      "signer_key_id": "did:openpayload:1111111111111111111111#keys-1",
      "canonical_payload": "<encoded-scale-payload>",
      "signature": "<base64-ed25519-signature>"
    }'
  ```
</RequestExample>

## Response

```json 202 Response theme={null}
{
  "status": "accepted",
  "persona": "example.com",
  "extrinsic": "set_persona_delivery_constraints",
  "tx_hash": "<transaction-hash>"
}
```

## Straight to the point

```http theme={null}
PUT /personas/{persona}/delivery-constraints
```

* Action: `set_persona_delivery_constraints`
* Authorization: one active Persona controller
* Above-network active byte or replica values: `400 invalid_delivery_constraints`
* TTL above 48 hours: accepted as requested, effective value clamped to 48 hours
* Accepted submission: `202`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.