Update qURL
update_qurlUpdate a qURL's expiration, tags, description, custom domain, or proxy host behavior. Accepts public keys, CRIDs, legacy r_ IDs, and q_ display IDs; q_ IDs resolve automatically for metadata changes.
Instructions
Update a qURL's expiration, tags, description, custom domain, or proxy host-header behavior. The richer alternative to extend_qurl — use update_qurl whenever you need anything beyond a relative time push. Accepts resource public keys, CRIDs, legacy r_ IDs, and q_ display IDs for expiration, tags, and description updates (q_ is auto-resolved); custom domain and preserve_host updates require a resource identifier (public key, CRID, or legacy r_ ID) because the qURL API now serves them from PATCH /v1/resources/{id}. Constraints: extend_by and expires_at are mutually exclusive; custom_domain/preserve_host cannot be combined with expiration changes in one call; at least one update field (extend_by, expires_at, tags, description, custom_domain, preserve_host) must be set. Clearing fields: pass description: "", tags: [], or custom_domain: "" to clear those fields explicitly. Use extend_qurl when the only change is a relative time push. Use delete_qurl when you want to revoke entirely. Errors: if the input fails schema refinements (both extend_by + expires_at, or no fields set), the handler returns an isError: true content block before any API call. Other API errors throw with the API's code/statusCode. Returns the updated resource (same shape as get_qurl).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Replace all tags on this resource (max 10 tags, each 1-50 chars) | |
| extend_by | No | Duration to extend by (e.g., "24h", "7d"). Mutually exclusive with expires_at. | |
| expires_at | No | Absolute expiration timestamp (RFC 3339). Mutually exclusive with extend_by. | |
| description | No | Replace the resource description (max 500 chars) | |
| resource_id | Yes | The resource public key, CRID, legacy r_ ID, or qURL display ID (q_ prefix) to update. If a q_ ID is passed, the API resolves it to the parent resource automatically. | |
| custom_domain | No | Replace the custom domain bound to this resource (max 253 chars, must be registered/active/owned). Pass "" to clear. | |
| preserve_host | No | Whether to preserve the original Host header when proxying via the custom domain. Only meaningful when custom_domain is set; default false on the API side. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Immutable per-owner resource identity, when one was supplied at create time | |
| tags | No | ||
| qurls | No | ||
| status | Yes | unknown | |
| qurl_site | No | ||
| created_at | Yes | ||
| expires_at | Yes | ||
| qurl_count | No | Number of access tokens minted for this resource | |
| target_url | No | Underlying URL the qURL protects; omitted on connector-owned resources | |
| description | No | ||
| resource_id | Yes | Stable resource identifier (public key or legacy r_ ID) | |
| custom_domain | No | ||
| preserve_host | No | When true, the original Host header is preserved when proxying via the custom domain. Only meaningful when custom_domain is set; defaults to false on the API side. |