removedInput schema / additionalProperties
Removed value: -false
removedInput schema / properties / access_policy / additionalProperties
Removed value: -false
removedInput schema / properties / access_policy / properties / ai_agent_policy / additionalProperties
Removed value: -false
changedInput schema / properties / access_policy / properties / ai_agent_policy / properties / allow_categories / description
Previous value: -"AI agent categories to permit (all others blocked)"New value: +"AI agent categories to permit (all others blocked; max 20 entries, 128 chars each)"
addedInput schema / properties / access_policy / properties / ai_agent_policy / properties / allow_categories / items / maxLength
Added value: +128
addedInput schema / properties / access_policy / properties / ai_agent_policy / properties / allow_categories / items / minLength
Added value: +1
addedInput schema / properties / access_policy / properties / ai_agent_policy / properties / allow_categories / maxItems
Added value: +20
changedInput schema / properties / access_policy / properties / ai_agent_policy / properties / deny_categories / description
Previous value: -"AI agent categories to block (e.g., gptbot, commoncrawl)"New value: +"AI agent categories to block (e.g., gptbot, commoncrawl; max 20 entries, 128 chars each)"
addedInput schema / properties / access_policy / properties / ai_agent_policy / properties / deny_categories / items / maxLength
Added value: +128
addedInput schema / properties / access_policy / properties / ai_agent_policy / properties / deny_categories / items / minLength
Added value: +1
addedInput schema / properties / access_policy / properties / ai_agent_policy / properties / deny_categories / maxItems
Added value: +20
changedInput schema / properties / access_policy / properties / geo_allowlist / description
Previous value: -"Allowed country codes (ISO 3166-1 alpha-2)"New value: +"Allowed country codes (ISO 3166-1 alpha-2; max 50 entries, 8 chars each)"
addedInput schema / properties / access_policy / properties / geo_allowlist / items / maxLength
Added value: +8
addedInput schema / properties / access_policy / properties / geo_allowlist / items / minLength
Added value: +1
addedInput schema / properties / access_policy / properties / geo_allowlist / maxItems
Added value: +50
changedInput schema / properties / access_policy / properties / geo_denylist / description
Previous value: -"Denied country codes (ISO 3166-1 alpha-2)"New value: +"Denied country codes (ISO 3166-1 alpha-2; max 50 entries, 8 chars each)"
addedInput schema / properties / access_policy / properties / geo_denylist / items / maxLength
Added value: +8
addedInput schema / properties / access_policy / properties / geo_denylist / items / minLength
Added value: +1
addedInput schema / properties / access_policy / properties / geo_denylist / maxItems
Added value: +50
changedInput schema / properties / access_policy / properties / ip_allowlist / description
Previous value: -"Allowed IP addresses or CIDR ranges"New value: +"Allowed IP addresses or CIDR ranges (max 100 entries, 64 chars each)"
addedInput schema / properties / access_policy / properties / ip_allowlist / items / maxLength
Added value: +64
addedInput schema / properties / access_policy / properties / ip_allowlist / items / minLength
Added value: +1
addedInput schema / properties / access_policy / properties / ip_allowlist / maxItems
Added value: +100
changedInput schema / properties / access_policy / properties / ip_denylist / description
Previous value: -"Denied IP addresses or CIDR ranges"New value: +"Denied IP addresses or CIDR ranges (max 100 entries, 64 chars each)"
addedInput schema / properties / access_policy / properties / ip_denylist / items / maxLength
Added value: +64
addedInput schema / properties / access_policy / properties / ip_denylist / items / minLength
Added value: +1
addedInput schema / properties / access_policy / properties / ip_denylist / maxItems
Added value: +100
changedInput schema / properties / access_policy / properties / user_agent_allow_regex / description
Previous value: -"Regex to allow matching user agents"New value: +"Regex to allow matching user agents (max 256 chars)"
addedInput schema / properties / access_policy / properties / user_agent_allow_regex / maxLength
Added value: +256
changedInput schema / properties / access_policy / properties / user_agent_deny_regex / description
Previous value: -"Regex to deny matching user agents"New value: +"Regex to deny matching user agents (max 256 chars)"
addedInput schema / properties / access_policy / properties / user_agent_deny_regex / maxLength
Added value: +256
addedInput schema / properties / expires_at / pattern
Added value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
changedInput schema / properties / max_sessions / description
Previous value: -"Maximum concurrent sessions (0 = unlimited, max 1000)"New value: +"Maximum concurrent sessions for this qURL token (0 = unlimited, max 1000)"
changedInput schema / properties / resource_id / description
Previous value: -"The resource ID (r_ prefix) or qURL display ID (q_ prefix) to mint a new access link for. If a q_ ID is passed, the API resolves it to the parent resource automatically."New value: +"The resource public key, CRID, legacy r_ ID, or qURL display ID (q_ prefix) to mint a new access link for. If a q_ ID is passed, the API resolves it to the parent resource automatically."
removedInput schema / properties / resource_id / minLength
Removed value: -1
addedInput schema / properties / resource_id / pattern
Added value: +"(?:^(r_[a-z0-9_-]{11}|(?:[A-Za-z0-9_-]{4}){27,53}|(?:[A-Za-z0-9_-]{4}){27,53}[A-Za-z0-9_-]{2}|(?:[A-Za-z0-9_-]{4}){26,52}[A-Za-z0-9_-]{3}|[a-z2-7]{47}|[a-z2-7]{60})$)|(?:^q_[0-9a-f]{11}$)"
changedInput schema / properties / session_duration / description
Previous value: -"How long access lasts after clicking (e.g., \"1h\")"New value: +"How long access lasts after clicking (e.g., \"1h\"). Rejected if it exceeds the parent resource's session-duration cap."
changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "additionalProperties": {},
+ "properties": {
+ "branded_domain": {
+ "description": "Bare branded hostname for anchor text when the resource has a usable custom domain",
+ "type": "string"
+ },
+ "email_delivery": {
+ "additionalProperties": false,
+ "properties": {
+ "attempted": {
+ "type": "boolean"
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "failed": {
+ "type": "number"
+ },
+ "recipients": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "results": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": "string"
+ },
+ "error": {
+ "type": "string"
+ },
+ "message_id": {
+ "type": "string"
+ },
+ "skipped": {
+ "type": "boolean"
+ },
+ "success": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "email",
+ "success",
+ "skipped"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "sent": {
+ "type": "number"
+ },
+ "skipped_reason": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "attempted",
+ "enabled",
+ "recipients",
+ "sent",
+ "failed",
+ "results"
+ ],
+ "type": "object"
+ },
+ "expires_at": {
+ "type": "string"
+ },
+ "qurl_id": {
+ "description": "Display-friendly qURL ID (q_ prefix) for the minted token",
+ "type": "string"
+ },
+ "qurl_link": {
+ "description": "Newly minted access link with one-shot display semantics, like create_qurl",
+ "type": "string"
+ },
+ "type": {
+ "description": "Resource type echoed from the underlying resource",
+ "type": "string"
+ }
+ },
+ "required": [
+ "qurl_id",
+ "qurl_link"
+ ],
+ "type": "object"
+}