{
    "openapi": "3.1.0",
    "info": {
        "title": "frqr.app Platform API v2",
        "version": "2.0.0",
        "description": "Token-scoped API with idempotency keys, tier rate limiting, and unified webhooks. Create tokens at \/admin\/api-tokens. Each scope grants access to a domain: `assets:read`, `change_requests:approve`, `webhooks:manage`, etc."
    },
    "servers": [
        {
            "url": "https:\/\/kustos.app\/api\/v1"
        }
    ],
    "tags": [
        {
            "name": "Auth",
            "description": "Authenticated user info"
        },
        {
            "name": "Short Links",
            "description": "Create, update, delete and get stats for short links"
        },
        {
            "name": "QR Codes",
            "description": "Create, update, delete and get stats for QR codes"
        },
        {
            "name": "Governance",
            "description": "Change Control workflow \u2014 approve or reject pending destination changes on physical assets before they go live"
        },
        {
            "name": "Workspace",
            "description": "Workspace metadata, billing invoices and resource usage"
        },
        {
            "name": "Workspace Members",
            "description": "Invite and manage workspace team members"
        },
        {
            "name": "Monetization",
            "description": "Link monetization stats, click breakdown and payout requests"
        },
        {
            "name": "Modules",
            "description": "Digital products, bookings and courses (plan-gated)"
        },
        {
            "name": "Assets",
            "description": "QR codes and short links \u2014 CRUD and destination change control"
        },
        {
            "name": "Governance",
            "description": "Change requests \u2014 approve, reject, or emergency-override destination changes"
        },
        {
            "name": "Custodians",
            "description": "Asset custodian assignment and removal"
        },
        {
            "name": "Batches",
            "description": "Physical asset batch tracking and recall"
        },
        {
            "name": "Lifecycle",
            "description": "Asset lifecycle state machine \u2014 transitions and event history"
        },
        {
            "name": "Crisis",
            "description": "Crisis mode activation and resolution"
        },
        {
            "name": "Webhooks",
            "description": "Subscribe to platform events via HTTPS webhooks"
        },
        {
            "name": "Tokens",
            "description": "Self-service API token management"
        }
    ],
    "security": [
        {
            "BearerToken": []
        },
        {
            "PlatformToken": []
        }
    ],
    "paths": {
        "\/api\/v2\/tokens": {
            "get": {
                "operationId": "v2.tokens.index",
                "tags": [
                    "ApiToken"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "operationId": "v2.tokens.store",
                "tags": [
                    "ApiToken"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 100
                                    },
                                    "expires_at": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "date-time"
                                    },
                                    "scopes": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "enum": [
                                                "assets:read",
                                                "assets:write",
                                                "assets:delete",
                                                "change_requests:read",
                                                "change_requests:write",
                                                "change_requests:approve",
                                                "custodians:read",
                                                "custodians:write",
                                                "batches:read",
                                                "batches:write",
                                                "batches:recall",
                                                "lifecycle:read",
                                                "lifecycle:write",
                                                "crisis:read",
                                                "crisis:write",
                                                "webhooks:manage",
                                                "tokens:read",
                                                "tokens:write"
                                            ]
                                        },
                                        "minItems": 1
                                    },
                                    "ip_allowlist": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "required": [
                                    "name",
                                    "scopes"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "token": {
                                                    "type": "string"
                                                },
                                                "prefix": {
                                                    "type": "string"
                                                },
                                                "scopes": {
                                                    "type": "string"
                                                },
                                                "expires_at": {
                                                    "type": "string"
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                },
                                                "_note": {
                                                    "type": "string",
                                                    "const": "Store this token securely \u2014 it will not be shown again."
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "name",
                                                "token",
                                                "prefix",
                                                "scopes",
                                                "expires_at",
                                                "created_at",
                                                "_note"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/api\/v2\/tokens\/{token}": {
            "delete": {
                "operationId": "v2.tokens.destroy",
                "tags": [
                    "ApiToken"
                ],
                "parameters": [
                    {
                        "name": "token",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    }
                }
            }
        },
        "\/api\/v2\/change-requests": {
            "get": {
                "operationId": "v2.change-requests.index",
                "description": "Returns change requests visible to the authenticated user \u2014 either requests on assets they own,\nor requests they submitted as a collaborator. Filter by `status` to see pending, approved or\nrejected changes.",
                "summary": "List change requests",
                "tags": [
                    "ChangeRequestApi"
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "default": "pending"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#\/components\/schemas\/LengthAwarePaginator"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "per_page",
                                                "total",
                                                "last_page"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/api\/v2\/change-requests\/{changeRequest}": {
            "get": {
                "operationId": "v2.change-requests.show",
                "description": "Returns the full detail of a single change request. Accessible by the asset owner or the\ncollaborator who submitted the request.",
                "summary": "Get a change request",
                "tags": [
                    "ChangeRequestApi"
                ],
                "parameters": [
                    {
                        "name": "changeRequest",
                        "in": "path",
                        "required": true,
                        "description": "The change request ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "status": {
                                                    "type": "string"
                                                },
                                                "source": {
                                                    "type": "string"
                                                },
                                                "field": {
                                                    "type": "string"
                                                },
                                                "old_value": {
                                                    "type": "string"
                                                },
                                                "new_value": {
                                                    "type": "string"
                                                },
                                                "asset_type": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "asset_id": {
                                                    "type": "integer"
                                                },
                                                "requested_by": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "email": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "email"
                                                    ]
                                                },
                                                "decided_by": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "email": {
                                                            "type": "string"
                                                        }
                                                    },
                                                    "required": [
                                                        "id",
                                                        "name",
                                                        "email"
                                                    ]
                                                },
                                                "decided_at": {
                                                    "type": "string"
                                                },
                                                "created_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "status",
                                                "source",
                                                "field",
                                                "old_value",
                                                "new_value",
                                                "asset_type",
                                                "asset_id",
                                                "requested_by",
                                                "decided_by",
                                                "decided_at",
                                                "created_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    }
                }
            }
        },
        "\/api\/v2\/change-requests\/{changeRequest}\/approve": {
            "post": {
                "operationId": "v2.change-requests.approve",
                "description": "**Workspace owner only.** Applies the queued destination change to the physical asset\nimmediately and marks the request as `approved`. A webhook is dispatched to all configured\nendpoints on `change_request.approved`.\n\nThis endpoint is the heart of the Change Control governance layer \u2014 no destination on a\nprinted QR code or short link can change without an explicit approval.",
                "summary": "Approve a change request",
                "tags": [
                    "ChangeRequestApi"
                ],
                "parameters": [
                    {
                        "name": "changeRequest",
                        "in": "path",
                        "required": true,
                        "description": "The change request ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    }
                }
            }
        },
        "\/api\/v2\/change-requests\/{changeRequest}\/reject": {
            "post": {
                "operationId": "v2.change-requests.reject",
                "description": "**Workspace owner only.** Rejects the queued destination change \u2014 the asset keeps its\ncurrent destination. A webhook is dispatched to all configured endpoints on\n`change_request.rejected`.",
                "summary": "Reject a change request",
                "tags": [
                    "ChangeRequestApi"
                ],
                "parameters": [
                    {
                        "name": "changeRequest",
                        "in": "path",
                        "required": true,
                        "description": "The change request ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    }
                }
            }
        },
        "\/api\/v2\/change-requests\/{changeRequest}\/emergency-override": {
            "post": {
                "operationId": "v2.change-requests.emergency-override",
                "description": "**Emergency approvers only.** Bypasses all pending approval chain steps and immediately\napplies the queued destination change. Requires the `change_requests:write` scope,\nthe `is_emergency_approver` flag, and the `approval-workflows-enterprise` addon.\n\nA justification of at least 50 characters is required. The action is logged to Slack,\nthe system activity log, and the asset owner is notified \u2014 this trail cannot be disabled.",
                "summary": "Emergency override a change request",
                "tags": [
                    "ChangeRequestApi"
                ],
                "parameters": [
                    {
                        "name": "changeRequest",
                        "in": "path",
                        "required": true,
                        "description": "The change request ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "justification": {
                                        "type": "string",
                                        "minLength": 50
                                    }
                                },
                                "required": [
                                    "justification"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "integer",
                                    "const": 200
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    }
                }
            }
        },
        "\/api\/v2\/crisis": {
            "get": {
                "operationId": "v2.crisis.index",
                "summary": "List crisis modes for the authenticated user",
                "tags": [
                    "CrisisModeApi"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "last_page",
                                                "per_page",
                                                "total"
                                            ]
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "prev",
                                                "next"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta",
                                        "links"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "operationId": "v2.crisis.store",
                "description": "**Workspace owner only.** Immediately applies the crisis redirect strategy to the\nscoped assets. Use `scope=all` to protect the entire workspace, or `scope=custom_selection`\nwith a `scope_filter` to target specific assets.",
                "summary": "Activate a crisis mode",
                "tags": [
                    "CrisisModeApi"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": "string",
                                        "enum": [
                                            "wrong_destination",
                                            "security_breach",
                                            "product_recall",
                                            "scheduled_maintenance",
                                            "other"
                                        ]
                                    },
                                    "reason_detail": {
                                        "type": "string",
                                        "maxLength": 2000
                                    },
                                    "scope": {
                                        "type": "string",
                                        "enum": [
                                            "all",
                                            "by_tag",
                                            "custom_selection"
                                        ]
                                    },
                                    "scope_filter": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "redirect_strategy": {
                                        "type": "string",
                                        "enum": [
                                            "unavailable_template",
                                            "custom_url",
                                            "custom_message"
                                        ]
                                    },
                                    "redirect_url": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri"
                                    },
                                    "custom_message": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 1000
                                    }
                                },
                                "required": [
                                    "reason",
                                    "reason_detail",
                                    "scope",
                                    "redirect_strategy"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "scope": {
                                                    "type": "string"
                                                },
                                                "redirect_strategy": {
                                                    "type": "string"
                                                },
                                                "started_at": {
                                                    "type": "string"
                                                },
                                                "is_active": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "scope",
                                                "redirect_strategy",
                                                "started_at",
                                                "is_active"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/api\/v2\/crisis\/{id}\/resolve": {
            "post": {
                "operationId": "v2.crisis.resolve",
                "summary": "Resolve (end) an active crisis mode",
                "tags": [
                    "CrisisModeApi"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string"
                                                },
                                                "ended_at": {
                                                    "type": "string"
                                                },
                                                "is_active": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "ended_at",
                                                "is_active"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string",
                                            "const": "Crisis mode is already resolved."
                                        },
                                        "errors": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "error",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/api\/v2\/custodians": {
            "get": {
                "operationId": "v2.custodians.index",
                "tags": [
                    "CustodianApi"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "last_page",
                                                "per_page",
                                                "total"
                                            ]
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "prev",
                                                "next"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta",
                                        "links"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "operationId": "v2.custodians.store",
                "tags": [
                    "CustodianApi"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "asset_type": {
                                        "type": "string",
                                        "enum": [
                                            ""
                                        ]
                                    },
                                    "asset_id": {
                                        "type": "integer"
                                    },
                                    "user_id": {
                                        "type": "integer"
                                    },
                                    "role": {
                                        "type": "string",
                                        "enum": [
                                            "primary",
                                            "secondary",
                                            "read_only"
                                        ]
                                    },
                                    "notification_preferences": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "required": [
                                    "asset_type",
                                    "asset_id",
                                    "user_id",
                                    "role"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "custodianable_type": {
                                                    "type": "string"
                                                },
                                                "custodianable_id": {
                                                    "type": "integer"
                                                },
                                                "user_id": {
                                                    "type": "integer"
                                                },
                                                "role": {
                                                    "type": "string"
                                                },
                                                "notification_preferences": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": {}
                                                },
                                                "assigned_by_user_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "custodianable_type",
                                                "custodianable_id",
                                                "user_id",
                                                "role",
                                                "notification_preferences",
                                                "assigned_by_user_id",
                                                "created_at",
                                                "updated_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/api\/v2\/custodians\/{custodian}": {
            "delete": {
                "operationId": "v2.custodians.destroy",
                "tags": [
                    "CustodianApi"
                ],
                "parameters": [
                    {
                        "name": "custodian",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    }
                }
            }
        },
        "\/api\/v2\/lifecycle\/events": {
            "get": {
                "operationId": "v2.lifecycle.events.index",
                "summary": "List lifecycle events for assets owned by the authenticated user",
                "tags": [
                    "LifecycleApi"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "last_page",
                                                "per_page",
                                                "total"
                                            ]
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "prev",
                                                "next"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta",
                                        "links"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/api\/v2\/lifecycle\/transition": {
            "post": {
                "operationId": "v2.lifecycle.transition",
                "summary": "Transition an asset's lifecycle state",
                "tags": [
                    "LifecycleApi"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "asset_type": {
                                        "type": "string",
                                        "enum": [
                                            ""
                                        ]
                                    },
                                    "asset_id": {
                                        "type": "integer"
                                    },
                                    "to_state": {
                                        "type": "string"
                                    },
                                    "context": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "required": [
                                    "asset_type",
                                    "asset_id",
                                    "to_state"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "asset_type": {
                                                    "type": "string"
                                                },
                                                "asset_id": {
                                                    "type": "string"
                                                },
                                                "from_state": {
                                                    "type": "string"
                                                },
                                                "to_state": {
                                                    "type": "string"
                                                },
                                                "transitioned_at": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "asset_type",
                                                "asset_id",
                                                "from_state",
                                                "to_state",
                                                "transitioned_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/api\/v2\/qr-codes": {
            "get": {
                "operationId": "v2.qr-codes.index",
                "tags": [
                    "QrCodeApi"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "last_page",
                                                "per_page",
                                                "total"
                                            ]
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "prev",
                                                "next"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta",
                                        "links"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "operationId": "v2.qr-codes.store",
                "tags": [
                    "QrCodeApi"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "type": {
                                        "type": "string"
                                    },
                                    "destination_url": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "format": "uri",
                                        "maxLength": 2048
                                    }
                                },
                                "required": [
                                    "name",
                                    "type"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "lifecycle_state": {
                                                    "type": "string"
                                                },
                                                "slug": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "user_id": {
                                                    "type": "integer"
                                                },
                                                "organisation_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "account_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "qr_folder_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "signature_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "qr_domain_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "type": {
                                                    "type": "string"
                                                },
                                                "label": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "data": {
                                                    "type": "string"
                                                },
                                                "gs1_digital_link_enabled": {
                                                    "type": "boolean"
                                                },
                                                "gs1_gtin": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "gs1_lot": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "gs1_serial": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "gs1_additional_ais": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": {}
                                                },
                                                "fg_color": {
                                                    "type": "string"
                                                },
                                                "gradient_color": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "gradient_type": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "gradient_angle": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "bg_color": {
                                                    "type": "string"
                                                },
                                                "frame_style": {
                                                    "type": "string"
                                                },
                                                "frame_text": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "frame_color": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "frame_font": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "bg_image_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "ai_image_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "page_html": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "page_css": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "overlay_share_enabled": {
                                                    "type": "boolean"
                                                },
                                                "overlay_info_enabled": {
                                                    "type": "boolean"
                                                },
                                                "overlay_info_title": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "overlay_info_content": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "overlay_info_link_text": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "dot_style": {
                                                    "type": "string"
                                                },
                                                "corner_style": {
                                                    "type": "string"
                                                },
                                                "corner_dot_style": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "error_correction": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "qr_margin": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "eye_frame_color": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "eye_dot_color": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "logo_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "logo_scale": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "logo_hide_bg_dots": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "is_active": {
                                                    "type": "boolean"
                                                },
                                                "lifecycle_status": {
                                                    "type": "string"
                                                },
                                                "is_frozen": {
                                                    "type": "boolean"
                                                },
                                                "pin_code": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "max_scans": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "expires_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "expires_after_scans": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "fallback_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "fallback_strategy": {
                                                    "type": "string"
                                                },
                                                "health_check_status": {
                                                    "type": "string"
                                                },
                                                "last_health_check_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "health_check_config": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": {}
                                                },
                                                "last_health_check_details": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": {}
                                                },
                                                "last_recovery_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "consecutive_health_failures": {
                                                    "type": "integer"
                                                },
                                                "scan_count": {
                                                    "type": "integer"
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "branding_template_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "crisis_mode_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "default_destination_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "is_quarantined": {
                                                    "type": "boolean"
                                                },
                                                "lifecycle_state_changed_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "lifecycle_state_changed_by": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "lifecycle_metadata": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": {}
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "lifecycle_state",
                                                "slug",
                                                "user_id",
                                                "organisation_id",
                                                "account_id",
                                                "qr_folder_id",
                                                "signature_id",
                                                "qr_domain_id",
                                                "type",
                                                "label",
                                                "data",
                                                "gs1_digital_link_enabled",
                                                "gs1_gtin",
                                                "gs1_lot",
                                                "gs1_serial",
                                                "gs1_additional_ais",
                                                "fg_color",
                                                "gradient_color",
                                                "gradient_type",
                                                "gradient_angle",
                                                "bg_color",
                                                "frame_style",
                                                "frame_text",
                                                "frame_color",
                                                "frame_font",
                                                "bg_image_url",
                                                "ai_image_url",
                                                "page_html",
                                                "page_css",
                                                "overlay_share_enabled",
                                                "overlay_info_enabled",
                                                "overlay_info_title",
                                                "overlay_info_content",
                                                "overlay_info_link_text",
                                                "dot_style",
                                                "corner_style",
                                                "corner_dot_style",
                                                "error_correction",
                                                "qr_margin",
                                                "eye_frame_color",
                                                "eye_dot_color",
                                                "logo_url",
                                                "logo_scale",
                                                "logo_hide_bg_dots",
                                                "is_active",
                                                "lifecycle_status",
                                                "is_frozen",
                                                "pin_code",
                                                "max_scans",
                                                "expires_at",
                                                "expires_after_scans",
                                                "fallback_url",
                                                "fallback_strategy",
                                                "health_check_status",
                                                "last_health_check_at",
                                                "health_check_config",
                                                "last_health_check_details",
                                                "last_recovery_at",
                                                "consecutive_health_failures",
                                                "scan_count",
                                                "created_at",
                                                "updated_at",
                                                "branding_template_id",
                                                "crisis_mode_id",
                                                "default_destination_url",
                                                "is_quarantined",
                                                "lifecycle_state_changed_at",
                                                "lifecycle_state_changed_by",
                                                "lifecycle_metadata"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/api\/v2\/qr-codes\/{id}": {
            "get": {
                "operationId": "v2.qr-codes.show",
                "tags": [
                    "QrCodeApi"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "patch": {
                "operationId": "v2.qr-codes.update",
                "tags": [
                    "QrCodeApi"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "destination_url": {
                                        "type": "string",
                                        "format": "uri",
                                        "maxLength": 2048
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "data"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "string"
                                                },
                                                "change_request_id": {
                                                    "type": "integer"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "Destination change submitted for approval."
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "change_request_id",
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "v2.qr-codes.destroy",
                "tags": [
                    "QrCodeApi"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    }
                }
            }
        },
        "\/api\/v2\/short-links": {
            "get": {
                "operationId": "v2.short-links.index",
                "tags": [
                    "ShortLinkApi"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "last_page",
                                                "per_page",
                                                "total"
                                            ]
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "prev",
                                                "next"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta",
                                        "links"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "operationId": "v2.short-links.store",
                "tags": [
                    "ShortLinkApi"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "destination_url": {
                                        "type": "string",
                                        "format": "uri",
                                        "maxLength": 2048
                                    },
                                    "slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    }
                                },
                                "required": [
                                    "title",
                                    "destination_url"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "lifecycle_state": {
                                                    "type": "string"
                                                },
                                                "type": {
                                                    "type": "string"
                                                },
                                                "user_id": {
                                                    "type": "integer"
                                                },
                                                "organisation_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "account_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "campaign_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "overlay_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "slug": {
                                                    "type": "string"
                                                },
                                                "destination_url": {
                                                    "type": "string"
                                                },
                                                "target_url_mobile": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "target_url_tablet": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "target_url_desktop": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "app_label": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "app_android_package": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "app_ios_itunes_id": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "app_scheme": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "title": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "og_title": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "og_description": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "og_image_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "notes": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "tags": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": {}
                                                },
                                                "utm_source": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "utm_medium": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "utm_campaign": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "utm_term": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "utm_content": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "custom_domain": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "is_active": {
                                                    "type": "boolean"
                                                },
                                                "lifecycle_status": {
                                                    "type": "string"
                                                },
                                                "is_frozen": {
                                                    "type": "boolean"
                                                },
                                                "squeeze_enabled": {
                                                    "type": "boolean"
                                                },
                                                "squeeze_headline": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "squeeze_description": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "squeeze_button_text": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "squeeze_collect_name": {
                                                    "type": "boolean"
                                                },
                                                "squeeze_bg_color": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "squeeze_btn_color": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "squeeze_logo_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "pixels": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": {}
                                                },
                                                "splash_enabled": {
                                                    "type": "boolean"
                                                },
                                                "splash_headline": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "splash_description": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "splash_cta_text": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "splash_cta_color": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "splash_bg_color": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "splash_logo_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "splash_delay_seconds": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "expires_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "expires_after_scans": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "active_from": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "expired_redirect_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "expired_page_title": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "expired_page_message": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "expired_page_cta_text": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "expired_page_cta_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "password_hash": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "click_limit": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "notify_threshold": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "notify_sent_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "rate_limit_per_ip": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "destination_status": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "destination_checked_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "destination_fail_count": {
                                                    "type": "integer"
                                                },
                                                "fallback_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "fallback_strategy": {
                                                    "type": "string"
                                                },
                                                "health_check_status": {
                                                    "type": "string"
                                                },
                                                "last_health_check_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "health_check_config": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": {}
                                                },
                                                "last_health_check_details": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": {}
                                                },
                                                "last_recovery_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "consecutive_health_failures": {
                                                    "type": "integer"
                                                },
                                                "schedule_rules": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": {}
                                                },
                                                "target_languages": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": {}
                                                },
                                                "public_stats_token": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "clicks_count": {
                                                    "type": "integer"
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "target_countries": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": {}
                                                },
                                                "target_devices": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": {}
                                                },
                                                "preferred_domain": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "ai_title_suggestion": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "ai_description_suggestion": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "geofence_rules": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": {}
                                                },
                                                "geofencing_enabled": {
                                                    "type": "boolean"
                                                },
                                                "template_marketplace_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "crisis_mode_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "default_destination_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "is_quarantined": {
                                                    "type": "boolean"
                                                },
                                                "lifecycle_state_changed_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "lifecycle_state_changed_by": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "lifecycle_metadata": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": {}
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "lifecycle_state",
                                                "type",
                                                "user_id",
                                                "organisation_id",
                                                "account_id",
                                                "campaign_id",
                                                "overlay_id",
                                                "slug",
                                                "destination_url",
                                                "target_url_mobile",
                                                "target_url_tablet",
                                                "target_url_desktop",
                                                "app_label",
                                                "app_android_package",
                                                "app_ios_itunes_id",
                                                "app_scheme",
                                                "title",
                                                "og_title",
                                                "og_description",
                                                "og_image_url",
                                                "notes",
                                                "tags",
                                                "utm_source",
                                                "utm_medium",
                                                "utm_campaign",
                                                "utm_term",
                                                "utm_content",
                                                "custom_domain",
                                                "is_active",
                                                "lifecycle_status",
                                                "is_frozen",
                                                "squeeze_enabled",
                                                "squeeze_headline",
                                                "squeeze_description",
                                                "squeeze_button_text",
                                                "squeeze_collect_name",
                                                "squeeze_bg_color",
                                                "squeeze_btn_color",
                                                "squeeze_logo_url",
                                                "pixels",
                                                "splash_enabled",
                                                "splash_headline",
                                                "splash_description",
                                                "splash_cta_text",
                                                "splash_cta_color",
                                                "splash_bg_color",
                                                "splash_logo_url",
                                                "splash_delay_seconds",
                                                "expires_at",
                                                "expires_after_scans",
                                                "active_from",
                                                "expired_redirect_url",
                                                "expired_page_title",
                                                "expired_page_message",
                                                "expired_page_cta_text",
                                                "expired_page_cta_url",
                                                "password_hash",
                                                "click_limit",
                                                "notify_threshold",
                                                "notify_sent_at",
                                                "rate_limit_per_ip",
                                                "destination_status",
                                                "destination_checked_at",
                                                "destination_fail_count",
                                                "fallback_url",
                                                "fallback_strategy",
                                                "health_check_status",
                                                "last_health_check_at",
                                                "health_check_config",
                                                "last_health_check_details",
                                                "last_recovery_at",
                                                "consecutive_health_failures",
                                                "schedule_rules",
                                                "target_languages",
                                                "public_stats_token",
                                                "clicks_count",
                                                "created_at",
                                                "updated_at",
                                                "target_countries",
                                                "target_devices",
                                                "preferred_domain",
                                                "ai_title_suggestion",
                                                "ai_description_suggestion",
                                                "geofence_rules",
                                                "geofencing_enabled",
                                                "template_marketplace_id",
                                                "crisis_mode_id",
                                                "default_destination_url",
                                                "is_quarantined",
                                                "lifecycle_state_changed_at",
                                                "lifecycle_state_changed_by",
                                                "lifecycle_metadata"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/api\/v2\/short-links\/{id}": {
            "get": {
                "operationId": "v2.short-links.show",
                "tags": [
                    "ShortLinkApi"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "patch": {
                "operationId": "v2.short-links.update",
                "tags": [
                    "ShortLinkApi"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "destination_url": {
                                        "type": "string",
                                        "format": "uri",
                                        "maxLength": 2048
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "data"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "string"
                                                },
                                                "change_request_id": {
                                                    "type": "integer"
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "const": "Destination change submitted for approval."
                                                }
                                            },
                                            "required": [
                                                "data",
                                                "change_request_id",
                                                "message"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "v2.short-links.destroy",
                "tags": [
                    "ShortLinkApi"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    }
                }
            }
        },
        "\/api\/v2\/batches": {
            "get": {
                "operationId": "v2.batches.index",
                "tags": [
                    "V11BatchApi"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "last_page",
                                                "per_page",
                                                "total"
                                            ]
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "prev",
                                                "next"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta",
                                        "links"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "operationId": "v2.batches.store",
                "tags": [
                    "V11BatchApi"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "label": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "external_batch_ref": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 100
                                    },
                                    "printer_name": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "substrate": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 100
                                    },
                                    "quantity_ordered": {
                                        "type": [
                                            "integer",
                                            "null"
                                        ],
                                        "minimum": 1
                                    },
                                    "metadata": {
                                        "type": [
                                            "array",
                                            "null"
                                        ],
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "required": [
                                    "label"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "user_id": {
                                                    "type": "integer"
                                                },
                                                "label": {
                                                    "type": "string"
                                                },
                                                "external_batch_ref": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "print_job_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "printer_name": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "substrate": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "quantity_ordered": {
                                                    "type": "integer"
                                                },
                                                "quantity_distributed": {
                                                    "type": "integer"
                                                },
                                                "printed_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "distributed_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "metadata": {
                                                    "type": [
                                                        "array",
                                                        "null"
                                                    ],
                                                    "items": {}
                                                },
                                                "status": {
                                                    "type": "string"
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "organisation_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "user_id",
                                                "label",
                                                "external_batch_ref",
                                                "print_job_id",
                                                "printer_name",
                                                "substrate",
                                                "quantity_ordered",
                                                "quantity_distributed",
                                                "printed_at",
                                                "distributed_at",
                                                "metadata",
                                                "status",
                                                "created_at",
                                                "updated_at",
                                                "organisation_id"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string",
                                            "const": "Asset Registry addon required (Scale tier)."
                                        },
                                        "errors": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "error",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/api\/v2\/batches\/{id}": {
            "get": {
                "operationId": "v2.batches.show",
                "tags": [
                    "V11BatchApi"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "": {
                                                    "type": "string"
                                                },
                                                "member_count": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                null,
                                                "member_count"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/api\/v2\/batches\/{id}\/recall": {
            "post": {
                "operationId": "v2.batches.recall",
                "tags": [
                    "V11BatchApi"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "reason": {
                                        "type": "string",
                                        "maxLength": 1000
                                    }
                                },
                                "required": [
                                    "reason"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "crisis_mode_id": {
                                                    "type": "string"
                                                },
                                                "batch_id": {
                                                    "type": "string"
                                                },
                                                "assets_affected_count": {
                                                    "type": "string"
                                                },
                                                "status": {
                                                    "type": "string",
                                                    "const": "recall_initiated"
                                                }
                                            },
                                            "required": [
                                                "crisis_mode_id",
                                                "batch_id",
                                                "assets_affected_count",
                                                "status"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    },
                    "403": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "error": {
                                            "type": "string",
                                            "const": "Asset Registry addon required (Scale tier)."
                                        },
                                        "errors": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "error",
                                        "errors"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/api\/v2\/webhooks": {
            "get": {
                "operationId": "v2.webhooks.index",
                "description": "Returns all active webhook subscriptions for the authenticated user.",
                "summary": "List webhook subscriptions",
                "tags": [
                    "WebhookSubscriptionApi"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "required": [
                                                "current_page",
                                                "last_page",
                                                "per_page",
                                                "total"
                                            ]
                                        },
                                        "links": {
                                            "type": "object",
                                            "properties": {
                                                "prev": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "next": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "prev",
                                                "next"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta",
                                        "links"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "operationId": "v2.webhooks.store",
                "description": "Registers a new HTTPS endpoint to receive platform events. The `secret` is\ngenerated automatically and shown once \u2014 use it to verify `X-Frqr-Signature`\n(`sha256=<hmac>`) on incoming requests.",
                "summary": "Create a webhook subscription",
                "tags": [
                    "WebhookSubscriptionApi"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "url": {
                                        "type": "string",
                                        "format": "uri",
                                        "maxLength": 2048
                                    },
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "events": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "enum": [
                                                "change_request.created",
                                                "change_request.approved",
                                                "change_request.rejected",
                                                "change_request.emergency_approved",
                                                "qr_code.created",
                                                "qr_code.updated",
                                                "qr_code.deleted",
                                                "short_link.created",
                                                "short_link.updated",
                                                "short_link.deleted",
                                                "short_link.clicked",
                                                "asset.health.degraded",
                                                "asset.health.recovered",
                                                "asset.fallback.triggered",
                                                "asset.lifecycle.transitioned",
                                                "batch.recalled",
                                                "crisis.activated",
                                                "crisis.resolved"
                                            ]
                                        },
                                        "minItems": 1
                                    }
                                },
                                "required": [
                                    "url",
                                    "events"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "user_id": {
                                                    "type": "integer"
                                                },
                                                "api_token_id": {
                                                    "type": [
                                                        "integer",
                                                        "null"
                                                    ]
                                                },
                                                "url": {
                                                    "type": "string"
                                                },
                                                "events": {
                                                    "type": "array",
                                                    "items": {}
                                                },
                                                "description": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ]
                                                },
                                                "is_active": {
                                                    "type": "boolean"
                                                },
                                                "last_fired_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "revoked_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "date-time"
                                                },
                                                "_note": {
                                                    "type": "string",
                                                    "const": "Store this secret securely \u2014 it will not be shown again. Use it to verify X-Frqr-Signature headers."
                                                }
                                            },
                                            "required": [
                                                "id",
                                                "user_id",
                                                "api_token_id",
                                                "url",
                                                "events",
                                                "description",
                                                "is_active",
                                                "last_fired_at",
                                                "revoked_at",
                                                "created_at",
                                                "updated_at",
                                                "_note"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/api\/v2\/webhooks\/{id}": {
            "get": {
                "operationId": "v2.webhooks.show",
                "summary": "Get a webhook subscription",
                "tags": [
                    "WebhookSubscriptionApi"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                }
            },
            "patch": {
                "operationId": "v2.webhooks.update",
                "summary": "Update a webhook subscription",
                "tags": [
                    "WebhookSubscriptionApi"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "description": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 255
                                    },
                                    "is_active": {
                                        "type": "boolean"
                                    },
                                    "events": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "enum": [
                                                "change_request.created",
                                                "change_request.approved",
                                                "change_request.rejected",
                                                "change_request.emergency_approved",
                                                "qr_code.created",
                                                "qr_code.updated",
                                                "qr_code.deleted",
                                                "short_link.created",
                                                "short_link.updated",
                                                "short_link.deleted",
                                                "short_link.clicked",
                                                "asset.health.degraded",
                                                "asset.health.recovered",
                                                "asset.fallback.triggered",
                                                "asset.lifecycle.transitioned",
                                                "batch.recalled",
                                                "crisis.activated",
                                                "crisis.resolved"
                                            ]
                                        },
                                        "minItems": 1
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            },
            "delete": {
                "operationId": "v2.webhooks.destroy",
                "description": "Revokes the subscription immediately \u2014 no further events will be delivered.",
                "summary": "Delete a webhook subscription",
                "tags": [
                    "WebhookSubscriptionApi"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No content"
                    }
                }
            }
        },
        "\/api\/v2\/webhooks\/{id}\/deliveries": {
            "get": {
                "operationId": "v2.webhooks.deliveries",
                "description": "Returns the last 100 delivery attempts (most recent first) for debugging.",
                "summary": "List recent deliveries for a subscription",
                "tags": [
                    "WebhookSubscriptionApi"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/api\/v2\/zapier\/triggers\/qr-code-created": {
            "get": {
                "operationId": "v2.zapier.trigger.qr-code-created",
                "description": "Polling endpoint \u2014 returns the 3 most recently created QR codes.\nZapier uses this to show sample data during zap setup.",
                "summary": "Zapier trigger: QR code created",
                "tags": [
                    "Zapier"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "slug": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "name": {
                                                "type": "string"
                                            },
                                            "type": {
                                                "type": "string"
                                            },
                                            "destination": {
                                                "type": "string"
                                            },
                                            "scan_url": {
                                                "type": "string"
                                            },
                                            "created_at": {
                                                "type": "string"
                                            }
                                        },
                                        "required": [
                                            "id",
                                            "slug",
                                            "name",
                                            "type",
                                            "destination",
                                            "scan_url",
                                            "created_at"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/api\/v2\/zapier\/triggers\/short-link-created": {
            "get": {
                "operationId": "v2.zapier.trigger.short-link-created",
                "summary": "Zapier trigger: Short link created",
                "tags": [
                    "Zapier"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "slug": {
                                                "type": "string"
                                            },
                                            "destination": {
                                                "type": "string"
                                            },
                                            "short_url": {
                                                "type": "string"
                                            },
                                            "created_at": {
                                                "type": "string"
                                            }
                                        },
                                        "required": [
                                            "id",
                                            "slug",
                                            "destination",
                                            "short_url",
                                            "created_at"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/api\/v2\/zapier\/triggers\/change-request-approved": {
            "get": {
                "operationId": "v2.zapier.trigger.change-request-approved",
                "summary": "Zapier trigger: Change request approved",
                "tags": [
                    "Zapier"
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "asset_type": {
                                                "type": "string"
                                            },
                                            "asset_id": {
                                                "type": "integer"
                                            },
                                            "field": {
                                                "type": "string"
                                            },
                                            "old_value": {
                                                "type": "string"
                                            },
                                            "new_value": {
                                                "type": "string"
                                            },
                                            "decided_at": {
                                                "type": "string"
                                            }
                                        },
                                        "required": [
                                            "id",
                                            "asset_type",
                                            "asset_id",
                                            "field",
                                            "old_value",
                                            "new_value",
                                            "decided_at"
                                        ]
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/api\/v2\/zapier\/subscribe": {
            "post": {
                "operationId": "v2.zapier.subscribe",
                "description": "Zapier calls this when a user turns on a zap.",
                "summary": "Zapier subscribe \u2014 register a webhook for a given event",
                "tags": [
                    "Zapier"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "hookUrl": {
                                        "type": "string",
                                        "format": "uri"
                                    },
                                    "event": {
                                        "type": "string",
                                        "enum": [
                                            "change_request.created",
                                            "change_request.approved",
                                            "change_request.rejected",
                                            "change_request.emergency_approved",
                                            "qr_code.created",
                                            "qr_code.updated",
                                            "qr_code.deleted",
                                            "short_link.created",
                                            "short_link.updated",
                                            "short_link.deleted",
                                            "short_link.clicked",
                                            "asset.health.degraded",
                                            "asset.health.recovered",
                                            "asset.fallback.triggered",
                                            "asset.lifecycle.transitioned",
                                            "batch.recalled",
                                            "crisis.activated",
                                            "crisis.resolved"
                                        ]
                                    }
                                },
                                "required": [
                                    "hookUrl",
                                    "event"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "event": {
                                            "type": "string"
                                        },
                                        "secret": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "event",
                                        "secret"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/api\/v2\/zapier\/unsubscribe\/{subscription}": {
            "delete": {
                "operationId": "v2.zapier.unsubscribe",
                "summary": "Zapier unsubscribe \u2014 revoke a webhook when a zap is disabled",
                "tags": [
                    "Zapier"
                ],
                "parameters": [
                    {
                        "name": "subscription",
                        "in": "path",
                        "required": true,
                        "description": "The subscription ID",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "revoked": {
                                            "type": "boolean"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "revoked"
                                    ]
                                }
                            }
                        }
                    },
                    "404": {
                        "$ref": "#\/components\/responses\/ModelNotFoundException"
                    }
                }
            }
        },
        "\/api\/v2\/zapier\/actions\/create-qr-code": {
            "post": {
                "operationId": "v2.zapier.action.create-qr-code",
                "summary": "Zapier action: create a QR code",
                "tags": [
                    "Zapier"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "destination": {
                                        "type": "string",
                                        "format": "uri"
                                    },
                                    "type": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "enum": [
                                            "url",
                                            "dynamic"
                                        ]
                                    }
                                },
                                "required": [
                                    "name",
                                    "destination"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "slug": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "scan_url": {
                                            "type": "string"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "destination": {
                                            "type": "string"
                                        },
                                        "created_at": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "slug",
                                        "scan_url",
                                        "name",
                                        "destination",
                                        "created_at"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        },
        "\/api\/v2\/zapier\/actions\/create-short-link": {
            "post": {
                "operationId": "v2.zapier.action.create-short-link",
                "summary": "Zapier action: create a short link",
                "tags": [
                    "Zapier"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application\/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "destination": {
                                        "type": "string",
                                        "format": "uri"
                                    },
                                    "slug": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "maxLength": 50
                                    }
                                },
                                "required": [
                                    "destination"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "slug": {
                                            "type": "string"
                                        },
                                        "short_url": {
                                            "type": "string"
                                        },
                                        "destination": {
                                            "type": "string"
                                        },
                                        "created_at": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "slug",
                                        "short_url",
                                        "destination",
                                        "created_at"
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#\/components\/responses\/ValidationException"
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "BearerToken": {
                "type": "http",
                "description": "Pass your API token in the Authorization header: `Bearer <token>`",
                "scheme": "bearer",
                "bearerFormat": "API token"
            },
            "PlatformToken": {
                "type": "http",
                "description": "Pass your scoped API token in the Authorization header: `Bearer frqr_pk_<token>`\n\nTokens are created in the Filament admin panel under **Developer \u2192 API Tokens**. Each token carries scopes that gate individual endpoints.",
                "scheme": "bearer",
                "bearerFormat": "Platform API token"
            }
        },
        "schemas": {
            "LengthAwarePaginator": {
                "type": "array",
                "items": {},
                "title": "LengthAwarePaginator"
            }
        },
        "responses": {
            "ValidationException": {
                "description": "Validation error",
                "content": {
                    "application\/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Errors overview."
                                },
                                "errors": {
                                    "type": "object",
                                    "description": "A detailed description of each field that failed validation.",
                                    "additionalProperties": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                }
                            },
                            "required": [
                                "message",
                                "errors"
                            ]
                        }
                    }
                }
            },
            "ModelNotFoundException": {
                "description": "Not found",
                "content": {
                    "application\/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Error overview."
                                }
                            },
                            "required": [
                                "message"
                            ]
                        }
                    }
                }
            }
        }
    }
}