{
    "variable": [
        {
            "id": "baseUrl",
            "key": "baseUrl",
            "type": "string",
            "name": "string",
            "value": "https:\/\/backend-api.subsig.com"
        }
    ],
    "info": {
        "name": "Subsig API Documentation",
        "_postman_id": "c482d129-54b0-4acd-bb97-6469bdd4c5c9",
        "description": "",
        "schema": "https:\/\/schema.getpostman.com\/json\/collection\/v2.1.0\/collection.json"
    },
    "item": [
        {
            "name": "Registration",
            "description": "Create a new user account to access the application.",
            "item": [
                {
                    "name": "Create Account",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "register",
                            "query": [],
                            "raw": "{{baseUrl}}\/register"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"John Doe\",\"email\":\"john@example.com\",\"password\":\"SecurePass123!\",\"password_confirmation\":\"SecurePass123!\"}"
                        },
                        "description": "Register a new user account. After successful registration, the user will be automatically logged in and redirected to the dashboard.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "",
                            "name": "Account created. User logged in and redirected."
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"The email has already been taken.\",\"errors\":{\"email\":[\"The email has already been taken.\"]}}",
                            "name": "Validation error."
                        }
                    ]
                }
            ]
        },
        {
            "name": "Authentication",
            "description": "\nAPIs for user authentication",
            "item": [
                {
                    "name": "Create API Token",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/sanctum\/token",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/sanctum\/token"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"email\":\"john@example.com\",\"password\":\"SecurePass123!\"}"
                        },
                        "description": "Generate an API token for authenticated requests.\nRequires a verified email address.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"token\": \"1|abc123...\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"message\": \"Registration successful. Please check your email to verify your account.\",\n  \"redirect_link\": \"https:\/\/frontend.example.com\/register?email=john%40example.com\",\n  \"needsEmailVerification\": true\n}",
                            "name": "Email not verified"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The provided credentials are incorrect.\",\n  \"errors\": {\n    \"email\": [\"The provided credentials are incorrect.\"]\n  }\n}",
                            "name": "Invalid credentials"
                        }
                    ]
                },
                {
                    "name": "Verify Email",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/email\/verify",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/email\/verify"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"email\":\"john@example.com\",\"code\":\"1234\"}"
                        },
                        "description": "Verify user's email address using the 4-digit code sent via email.\nReturns an API token on successful verification.\nVerification link is sent via email. \/verify-email?code=1234&email=john@example.com",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Email verified successfully.\",\n  \"token\": \"1|abc123...\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Email already verified.\",\n  \"token\": \"1|abc123...\"\n}",
                            "name": "Already verified"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"Invalid verification code.\",\n  \"errors\": {\n    \"code\": [\"Invalid verification code.\"]\n  }\n}",
                            "name": "Invalid code"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"Verification code has expired. Please request a new one.\",\n  \"errors\": {\n    \"code\": [\"Verification code has expired. Please request a new one.\"]\n  }\n}",
                            "name": "Expired code"
                        }
                    ]
                },
                {
                    "name": "Resend Verification Code",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/email\/resend",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/email\/resend"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"email\":\"john@example.com\"}"
                        },
                        "description": "Send a new 4-digit verification code to the user's email.\nCode expires in 60 minutes.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Verification code sent.\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Email already verified.\"\n}",
                            "name": "Already verified"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"No account found with this email.\",\n  \"errors\": {\n    \"email\": [\"No account found with this email.\"]\n  }\n}",
                            "name": "User not found"
                        }
                    ]
                },
                {
                    "name": "Authenticate with Google",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/auth\/google",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/auth\/google"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"token\":\"eyJhbGciOiJSUzI1NiIs...\",\"intent\":\"login\",\"appsumo_registration_token\":\"architecto\"}"
                        },
                        "description": "Verify a Google ID token and log in or register based on intent.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"token\": \"1|abc123...\",\n  \"user\": {\n    \"name\": \"John Doe\",\n    \"email\": \"john@example.com\",\n    \"avatar\": \"https:\/\/lh3.googleusercontent.com\/...\"\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"message\": \"Invalid Google token.\"\n}",
                            "name": "Invalid token"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"message\": \"This account is linked to a different Google account.\"\n}",
                            "name": "Google account conflict"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"code\": \"ACCOUNT_NOT_FOUND\",\n  \"message\": \"Account not found.\",\n  \"errors\": {\n    \"email\": [\"No account exists for this Google email.\"]\n  }\n}",
                            "name": "Account not found"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"code\": \"ACCOUNT_ALREADY_EXISTS\",\n  \"message\": \"An account with this email already exists. Please log in.\",\n  \"errors\": {\n    \"email\": [\"An account with this email already exists. Please log in.\"]\n  }\n}",
                            "name": "Account already exists"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The token field is required.\",\n  \"errors\": {\n    \"token\": [\"The token field is required.\"]\n  }\n}",
                            "name": "Validation error"
                        }
                    ]
                },
                {
                    "name": "Authenticate with LinkedIn",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/auth\/linkedin",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/auth\/linkedin"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"token\":\"AQV...\",\"intent\":\"login\",\"appsumo_registration_token\":\"architecto\"}"
                        },
                        "description": "Verify a LinkedIn access token and log in or register based on intent.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"token\": \"1|abc123...\",\n  \"user\": {\n    \"name\": \"John Doe\",\n    \"email\": \"john@example.com\",\n    \"avatar\": \"https:\/\/media.licdn.com\/...\"\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"message\": \"Invalid LinkedIn token.\"\n}",
                            "name": "Invalid token"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"message\": \"This account is linked to a different LinkedIn account.\"\n}",
                            "name": "LinkedIn account conflict"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"code\": \"ACCOUNT_NOT_FOUND\",\n  \"message\": \"Account not found.\",\n  \"errors\": {\n    \"email\": [\"No account exists for this LinkedIn email.\"]\n  }\n}",
                            "name": "Account not found"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"code\": \"ACCOUNT_ALREADY_EXISTS\",\n  \"message\": \"An account with this email already exists. Please log in.\",\n  \"errors\": {\n    \"email\": [\"An account with this email already exists. Please log in.\"]\n  }\n}",
                            "name": "Account already exists"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The token field is required.\",\n  \"errors\": {\n    \"token\": [\"The token field is required.\"]\n  }\n}",
                            "name": "Validation error"
                        }
                    ]
                },
                {
                    "name": "Change Password",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/auth\/change-password",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/auth\/change-password"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"current_password\":\"SecurePass123!\",\"password\":\"NewSecurePass123!\"}"
                        },
                        "description": "Change password for an authenticated API user and return a fresh token."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Password updated successfully.\",\n  \"token\": \"1|abc123...\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthenticated"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The given data was invalid.\",\n  \"errors\": {\n    \"current_password\": [\"The provided password does not match your current password.\"]\n  }\n}",
                            "name": "Current password is incorrect"
                        }
                    ]
                },
                {
                    "name": "Set Password",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/auth\/set-password",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/auth\/set-password"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"password\":\"NewSecurePass123!\",\"password_confirmation\":\"NewSecurePass123!\"}"
                        },
                        "description": "Set a password for an authenticated user who signed up via Google or LinkedIn.\nPlaintext is never required for the previous random placeholder password."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Password set successfully.\",\n  \"token\": \"1|abc123...\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"A password is already set. Use change-password instead.\",\n  \"error\": {\n    \"code\": \"password_already_set\"\n  }\n}",
                            "name": "Password already set"
                        }
                    ]
                },
                {
                    "name": "Complete Profile",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/auth\/complete-profile",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/auth\/complete-profile"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Jane Doe\",\"password\":\"NewSecurePass123!\",\"job_role\":\"founder_ceo\",\"company_name\":\"Acme Corporation\",\"phone\":\"+14155552671\",\"agree_to_terms\":true,\"agree_to_marketing\":false,\"password_confirmation\":\"NewSecurePass123!\"}"
                        },
                        "description": "Fill in the profile details collected on the \"About you\" step right after email-only\nregistration (see CreateNewUser::create()). Password is only required the first time --\nonce hasUsablePassword() is true, omit it and use change-password instead."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Profile completed successfully.\",\n  \"token\": \"1|abc123...\",\n  \"user\": {}\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"A password is already set. Use change-password instead.\",\n  \"error\": {\n    \"code\": \"password_already_set\"\n  }\n}",
                            "name": "Password already set"
                        }
                    ]
                },
                {
                    "name": "Register with Invite",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invites\/accept",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invites\/accept"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"token\":\"eEtgjrcdtubjCu4817MfGiimvC2DQLBgaI7LpY1g5kdDMK5wJlQank7ZJ6PWurmb\",\"name\":\"John Doe\",\"email\":\"user@example.com\",\"password\":\"SecurePass123!\",\"password_confirmation\":\"SecurePass123!\"}"
                        },
                        "description": "Accept an invitation and create a new user account. The email address must match\nthe email address on the invite. After successful registration, the user will be\nadded to the organisation or project and will receive an email verification code.\n\nNote: This endpoint bypasses the business email requirement since the invitation\nitself validates the user's legitimacy.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"message\": \"Registration successful. Please check your email to verify your account.\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Invite not found.\",\n  \"errors\": {\n    \"token\": [\"The invite token is invalid or does not exist.\"]\n  }\n}",
                            "name": "Token not found"
                        },
                        {
                            "header": [],
                            "code": 410,
                            "body": "{\n  \"message\": \"Invite has expired.\",\n  \"errors\": {\n    \"token\": [\"This invite has expired. Please request a new invitation.\"]\n  }\n}",
                            "name": "Invite expired"
                        },
                        {
                            "header": [],
                            "code": 410,
                            "body": "{\n  \"message\": \"Invite has already been accepted.\",\n  \"errors\": {\n    \"token\": [\"This invite has already been accepted.\"]\n  }\n}",
                            "name": "Invite already accepted"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The email address does not match the invitation.\",\n  \"errors\": {\n    \"email\": [\"The email address must match the email on the invitation.\"]\n  }\n}",
                            "name": "Email mismatch"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The name field is required.\",\n  \"errors\": {\n    \"name\": [\"The name field is required.\"]\n  }\n}",
                            "name": "Validation error"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The email has already been taken.\",\n  \"errors\": {\n    \"email\": [\"The email has already been taken.\"]\n  }\n}",
                            "name": "Email already registered"
                        }
                    ]
                },
                {
                    "name": "Get Current User",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/user",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/user"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Get the authenticated user's details including organisation and subscription information."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"name\": \"John Doe\",\n  \"email\": \"john@example.com\",\n  \"email_verified_at\": \"2025-12-04T12:00:00.000000Z\",\n  \"created_at\": \"2025-12-04T10:00:00.000000Z\",\n  \"organisation\": {\n    \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"name\": \"Acme Inc\",\n    \"website\": \"https:\/\/acme.com\",\n    \"product_logo\": \"https:\/\/example.com\/logo.png\"\n  },\n  \"role\": \"organisation_owner\",\n  \"subscription\": {\n    \"id\": 1,\n    \"stripe_price_id\": \"price_1234567890\",\n    \"name\": \"Pro Plan\",\n    \"status\": \"active\",\n    \"expiration_date\": \"2025-12-31T23:59:59.000000Z\",\n    \"trial_end_date\": \"2025-12-11T23:59:59.000000Z\"\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthenticated"
                        }
                    ]
                },
                {
                    "name": "Update Profile",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/user",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/user"
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"first_name\":\"Jane\",\"last_name\":\"Doe\",\"phone\":\"+1 555 123 4567\",\"job_role\":\"Marketing\",\"company_name\":\"Acme Inc\"}"
                        },
                        "description": "Update the authenticated user's own profile fields. `name` is kept in sync as\n\"{first_name} {last_name}\" for every other place in the app that still reads it."
                    },
                    "response": []
                },
                {
                    "name": "Delete Account",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/user",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/user"
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Permanently delete the authenticated user's own account. Any organisation this user is\nthe sole member of is deleted along with it (see UserDeletionService); shared organisations\nare left intact for the remaining members."
                    },
                    "response": []
                },
                {
                    "name": "Log In",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "login",
                            "query": [],
                            "raw": "{{baseUrl}}\/login"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"email\":\"john@example.com\",\"password\":\"SecurePass123!\",\"remember\":true}"
                        },
                        "description": "Authenticate with your email and password to start a session. On success, you receive a token for subsequent requests.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "",
                            "name": "Login successful. Session started."
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"These credentials do not match our records.\",\"errors\":{\"email\":[\"These credentials do not match our records.\"]}}",
                            "name": "Invalid credentials."
                        }
                    ]
                },
                {
                    "name": "Log Out",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "logout",
                            "query": [],
                            "raw": "{{baseUrl}}\/logout"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "End your current session. You will need to log in again to access protected resources."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "",
                            "name": "Logged out successfully."
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": "Not logged in."
                        }
                    ]
                }
            ]
        },
        {
            "name": "Password Reset",
            "description": "Recover access to your account if you forgot your password.",
            "item": [
                {
                    "name": "Request Password Reset",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "forgot-password",
                            "query": [],
                            "raw": "{{baseUrl}}\/forgot-password"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"email\":\"john@example.com\"}"
                        },
                        "description": "Send a password reset link to your email. The link expires after 60 minutes. Same response for security even if email not found.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"status\":\"We have emailed your password reset link.\"}",
                            "name": "Reset link sent."
                        }
                    ]
                },
                {
                    "name": "Reset Password",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "reset-password",
                            "query": [],
                            "raw": "{{baseUrl}}\/reset-password"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"token\":\"a1b2c3d4e5f6g7h8i9j0\",\"email\":\"john@example.com\",\"password\":\"NewSecurePass123!\",\"password_confirmation\":\"NewSecurePass123!\"}"
                        },
                        "description": "Set a new password using the token from your email. Token is valid for 60 minutes.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"status\":\"Your password has been reset.\"}",
                            "name": "Password reset successful."
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"This password reset token is invalid.\",\"errors\":{\"email\":[\"This password reset token is invalid.\"]}}",
                            "name": "Invalid or expired token."
                        }
                    ]
                }
            ]
        },
        {
            "name": "AI Traffic",
            "description": "\nThe AI Traffics dashboard's GA4-sourced overview -- see GoogleAnalyticsTrafficReportService\nfor which fields are real (GA4 rollups) vs placeholders pending the bot-crawler pipeline.",
            "item": [
                {
                    "name": "Traffic Overview",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/traffic",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/traffic",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"date_from\":\"architecto\",\"date_to\":\"architecto\",\"granularity\":\"architecto\"}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Traffic Pages",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/traffic\/pages",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/traffic\/pages",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"date_from\":\"architecto\",\"date_to\":\"architecto\",\"providers\":[\"architecto\"],\"sort_by\":\"architecto\",\"sort_direction\":\"architecto\",\"per_page\":16,\"page\":16}"
                        },
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "AI Visibility - Chats",
            "description": "\nThe org-wide \"Chats\" tab -- every AI response (execution or radar pull) across every prompt,\nwith brand-mention\/citation\/web-search summary stats and a filterable, paginated, exportable\nlist. Deliberately separate from AiVisibilityPromptAnalyticsController's responses()\/\nexportResponses(): those are hard-scoped to one prompt and gap-fill against that single\nprompt's own check cadence (AiVisibilityResponseGapFill) -- a concept that doesn't generalize\nacross an org's many prompts with different frequencies. This controller queries the raw\nexecution\/radar rows directly with no gap-fill, and duplicates the small amount of\nrow-mapping\/CSV logic it needs rather than pulling in that per-prompt machinery.",
            "item": [
                {
                    "name": "Chats \u2014 List",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/chats",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/chats",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"providers\":[\"architecto\"],\"date_from\":\"architecto\",\"date_to\":\"architecto\",\"topic_ids\":[16],\"brand_ids\":[16],\"sources\":[\"architecto\"],\"search\":\"architecto\",\"page\":16,\"per_page\":16}"
                        },
                        "description": "Paginated, org-wide list of every AI response (execution or radar pull), newest first."
                    },
                    "response": []
                },
                {
                    "name": "Chats \u2014 Overview",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/chats\/overview",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/chats\/overview",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "The 4 header cards (Total chats, Brand mentioned, Answers with web search, Average\ncitations), each with a period-over-period change against the filters' comparison window.\nbrand_ids narrows the cards the same way it narrows the table below (top filter bar).\nDeliberately still ignores sources\/search -- those remain table-only refinements."
                    },
                    "response": []
                },
                {
                    "name": "Chats \u2014 Export",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/chats\/export",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/chats\/export",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "CSV of the full filtered set (not just the current page)."
                    },
                    "response": []
                },
                {
                    "name": "Chats \u2014 Filters",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/chats\/filters",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/chats\/filters",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Distinct citation domains ever seen across the org's chats (execution + radar), for the\n\"All sources\" dropdown. Not date-scoped -- a filter's option list is the full universe of\nvalues, not just what the current date range happens to show."
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Chats \u2014 Detail",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/chats\/:chat",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/chats\/:chat",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "chat",
                                    "key": "chat",
                                    "value": "execution-42",
                                    "description": "The composite chat id from a list row."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "A single chat, keyed by the same composite id the list\/export rows carry\n(\"execution-{id}\" or \"radar-{id}\") -- there's no single backend table a chat lives in, so\nthe id itself says which one to look up."
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "AI Visibility - Competitor",
            "description": "\nCompetitor tab \u2014 brand list with visibility\/SOV\/position metrics and CRUD.",
            "item": [
                {
                    "name": "Competitor overview",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/competitors",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/competitors",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"date_from\":\"architecto\",\"date_to\":\"architecto\",\"provider\":\"architecto\",\"page\":16,\"per_page\":16,\"search\":\"architecto\"}"
                        },
                        "description": "Returns all tracked brands (own + competitors) with visibility, share-of-voice, and\naverage-position metrics for the requested date window, plus change deltas vs the\npreceding window of equal length."
                    },
                    "response": []
                },
                {
                    "name": "Add competitor",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/competitor-brands",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/competitor-brands",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Acme Corp\",\"website\":\"acme.com\",\"social_profiles\":[{\"platform\":\"instagram\",\"url\":\"https:\\\/\\\/instagram.com\\\/acme\"}],\"location_scope\":\"architecto\",\"location_ids\":[16],\"track_globally\":false}"
                        },
                        "description": "Either website or social_profiles is required (a competitor with no website can still be\ntracked via its social profiles, same as the own brand's onboarding modes) -- see\nCitationClassifier for how social_profiles feeds 'competitor' citation classification."
                    },
                    "response": []
                },
                {
                    "name": "Update competitor",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/competitor-brands\/:brand",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/competitor-brands\/:brand",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": ""
                                },
                                {
                                    "id": "brand",
                                    "key": "brand",
                                    "value": "16",
                                    "description": "The brand ID."
                                }
                            ]
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"architecto\",\"website\":\"architecto\",\"social_profiles\":[{\"platform\":\"instagram\",\"url\":\"https:\\\/\\\/instagram.com\\\/acme\"}],\"location_scope\":\"architecto\",\"location_ids\":[16],\"track_globally\":false}"
                        },
                        "description": "Either website or social_profiles is required, same rule as Add Competitor -- editing a\ncompetitor from website-tracked to social-tracked (or vice versa) is a supported mode\nswitch, not just a field edit."
                    },
                    "response": []
                },
                {
                    "name": "Delete competitor",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/competitor-brands\/:brand",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/competitor-brands\/:brand",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": ""
                                },
                                {
                                    "id": "brand",
                                    "key": "brand",
                                    "value": "16",
                                    "description": "The brand ID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Override a competitor's store match",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/competitor-brands\/:brand\/locations\/:location\/store-match",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/competitor-brands\/:brand\/locations\/:location\/store-match",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": ""
                                },
                                {
                                    "id": "brand",
                                    "key": "brand",
                                    "value": "16",
                                    "description": "The competitor brand ID."
                                },
                                {
                                    "id": "location",
                                    "key": "location",
                                    "value": "16",
                                    "description": "The organisation's own location ID."
                                }
                            ]
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"status\":\"matched\",\"matched_place_id\":\"architecto\",\"matched_name\":\"architecto\",\"matched_address\":\"architecto\"}"
                        },
                        "description": "Lets an org admin correct a wrong auto-match (or manually set\/clear one) for one of the\norganisation's own locations. Always sets is_manual_override, so\nMatchAiVisibilityCompetitorStoreJob never revisits this (brand, location) pair again -- see\nits own docblock. Upserts, same shape as the job's own persist() method, since an admin may\nset a match before the job has ever run for this pair."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "AI Visibility - Dashboard",
            "description": "\nTicket 7 \u2014 the Visibility tab. Reads exclusively from `ai_visibility_daily_metrics` (Ticket 5),\nnever live-joins execution tables \u2014 see AiVisibilityMetricsAggregateQuery.",
            "item": [
                {
                    "name": "Visibility Tab",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/visibility",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/visibility",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"date_from\":\"2026-06-01\",\"date_to\":\"2026-06-30\",\"compare_from\":\"architecto\",\"compare_to\":\"architecto\",\"provider\":\"openai\",\"model\":\"architecto\",\"prompt_id\":16,\"country\":\"architecto\",\"language\":\"architecto\",\"source\":\"architecto\",\"prompt_type\":\"architecto\"}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Platforms Tab",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/platforms",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/platforms",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"date_from\":\"architecto\",\"date_to\":\"architecto\"}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Sentiment Tab",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/sentiment",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/sentiment",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"brand\":16,\"per_page\":16}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Export Sentiment Sources",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/sentiment\/sources\/export",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/sentiment\/sources\/export",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Citations Tab",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/citations",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/citations",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Citations \u2014 Domains Overview",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/domains-overview",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/domains-overview",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Cards, retrievals trend, top domains and the domain-type breakdown for the Domains main\nscreen \u2014 the domain-scoped counterpart of index()'s combined payload, so that screen isn't\npulling URL-scoped fields it never renders."
                    },
                    "response": []
                },
                {
                    "name": "Citations \u2014 URLs Overview",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/urls-overview",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/urls-overview",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "URL-scoped counterpart of domainsOverview() above, for the URLs main screen."
                    },
                    "response": []
                },
                {
                    "name": "Citations \u2014 Domains",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/domains",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/domains",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"per_page\":16}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Citations \u2014 URLs",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/urls",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/urls",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"per_page\":16}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Export Citation URLs",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/urls\/export",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/urls\/export",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"domain\":\"architecto\"}"
                        },
                        "description": "Flat, one-row-per-citation-occurrence export matching the format competitor tools like\nOtterly.ai use -- not the on-screen URL rollup, which aggregates many occurrences of the\nsame URL into one summary row and can't carry per-occurrence fields like Prompt\/Date."
                    },
                    "response": []
                },
                {
                    "name": "Export Citation Domains",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/domains\/export",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/domains\/export",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Flat, one-row-per-citation-occurrence export matching the format competitor tools like\nOtterly.ai use -- not the on-screen domain rollup, which aggregates many occurrences of the\nsame domain into one summary row and can't carry per-occurrence fields like Prompt\/Date."
                    },
                    "response": []
                },
                {
                    "name": "Citations \u2014 Domain Detail",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/domain-detail",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/domain-detail",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"domain\":\"reddit.com\"}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Citations \u2014 URLs for a Domain (paginated)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/domain-urls",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/domain-urls",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"domain\":\"architecto\"}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Citations \u2014 URL Detail",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/url-detail",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/url-detail",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"url\":\"http:\\\/\\\/www.bailey.biz\\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Citations \u2014 AI Responses that cited a URL (paginated)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/url-responses",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/url-responses",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"url\":\"http:\\\/\\\/www.bailey.biz\\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Export AI Responses that cited a URL",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/url-responses\/export",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/citations\/url-responses\/export",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"url\":\"http:\\\/\\\/www.bailey.biz\\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"}"
                        },
                        "description": "One row per citation occurrence (a citation URL from a specific prompt\/service\/date),\nmatching the flat format competitor tools like Otterly.ai export -- not one row per\nresponse, since a single response can cite several URLs."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "AI Visibility - Fanout Queries",
            "description": "\nThe org-wide \"Fanout Query\" tab -- every sub-query an AI engine ran behind the scenes to\nanswer a tracked prompt, across both the active LLM pipeline (ai_visibility_fanout_queries)\nand the radar\/google_ai_overviews pipeline (ai_visibility_radar_fanout_queries). See\nAiVisibilityFanoutQueryAggregateQuery's class doc for exactly which providers ever populate\neither table and why.",
            "item": [
                {
                    "name": "Fanout Queries: List",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/fanout",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/fanout",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"providers\":[\"architecto\"],\"date_from\":\"architecto\",\"date_to\":\"architecto\",\"search\":\"architecto\",\"type\":\"architecto\",\"topic_id\":16,\"page\":16,\"per_page\":16}"
                        },
                        "description": "Paginated, searchable, org-wide list of distinct query fanouts, most-occurring first.\nPass topic_id to page through just one topic's group of queries (the \"Group by Topics\" UI\nexpands one topic at a time and lazy-loads its own page via this same endpoint) -- the\ntopic list itself (with in-scope prompt counts) is served by topics() below."
                    },
                    "response": []
                },
                {
                    "name": "Fanout Queries: Overview",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/fanout\/overview",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/fanout\/overview",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"providers\":[\"architecto\"],\"date_from\":\"architecto\",\"date_to\":\"architecto\"}"
                        },
                        "description": "The 4 header cards, each with a period-over-period change against the filters' comparison\nwindow."
                    },
                    "response": []
                },
                {
                    "name": "Fanout Queries: Topic Groups",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/fanout\/topics",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/fanout\/topics",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Powers the \"Group by Topics\" accordion -- only topics that actually have a fanout query in\nthe current filtered scope, each with its distinct-prompt count (the \"N Prompts\" badge).\nDistinct from GET \/ai-visibility\/topics (every topic, unscoped prompt-status counts): that\nendpoint doesn't know about date\/provider filters or fanout data at all."
                    },
                    "response": []
                },
                {
                    "name": "Fanout Queries: Brand Mentioned",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/fanout\/brand-mentioned",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/fanout\/brand-mentioned",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Donut-chart-shaped brand breakdown: each tracked brand's share of the executions\/radar\npulls behind the in-scope fanout queries that mentioned it. Every slice sums to 100%, same\ninvariant as Visibility's share-of-voice donut."
                    },
                    "response": []
                },
                {
                    "name": "Fanout Queries: Common Terms",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/fanout\/common-terms",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/fanout\/common-terms",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Most frequent 2-3 word phrases across every fanout query's text in scope."
                    },
                    "response": []
                },
                {
                    "name": "Fanout Queries: Export",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/fanout\/export",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/fanout\/export",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "CSV of the full filtered, grouped query list (not just the current page)."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "AI Visibility - Locations",
            "description": "\nSettings > Account and Workspaces \"Locations\" list -- unlike onboarding's Step 1 (where every\nlocation is collected client-side and submitted in one batch because the organisation doesn't\nexist yet), the organisation already exists here, so each location is a real, immediate call.",
            "item": [
                {
                    "name": "Visibility by location",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/locations",
                            "query": [
                                {
                                    "key": "date_from",
                                    "value": "architecto",
                                    "description": "Optional start date (Y-m-d). Default: 30 days ago.",
                                    "disabled": false
                                },
                                {
                                    "key": "date_to",
                                    "value": "architecto",
                                    "description": "Optional end date (Y-m-d). Default: today.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/locations?date_from=architecto&date_to=architecto",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "One visibility\/SOV\/rank row per location for the Home \"Locations\" card -- not a raw location\nlist (see workspaceSummary() for that). Empty for an org with no locations."
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Add a location",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/locations",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/locations",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Times Square\",\"country_code\":\"US\",\"locality\":\"New York, United States\",\"formatted_address\":\"architecto\",\"google_place_id\":\"architecto\",\"outlet_page_url\":\"http:\\\/\\\/www.bailey.biz\\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"}"
                        },
                        "description": "The address is resolved client-side first via the existing Google Places lookup endpoints\n(GooglePlacesLookupController, unchanged) -- this endpoint only persists the already-resolved\nfields, it never calls the Google Places API itself."
                    },
                    "response": []
                },
                {
                    "name": "Workspace locations summary",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/locations",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/locations",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Settings' \"Locations\" card and the multi-location gate (`useWorkspaceLocations`): the own\nbrand's workspace type, every location with its tracked prompt\/competitor counts, and the\norg-wide Global (no-location) counts. A `single` workspace always returns an empty\n`locations` array, regardless of how many rows exist (there shouldn't be any)."
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Add a location (frontend contract)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/locations",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/locations",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"architecto\",\"country_code\":\"architecto\",\"city\":\"architecto\",\"address\":\"architecto\",\"place_id\":\"architecto\",\"outlet_url\":\"http:\\\/\\\/www.bailey.biz\\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"}"
                        },
                        "description": "Same persistence path as store(), just the field names the dashboard's \"Add location\" modal\nactually sends (`address`\/`city`\/`place_id`\/`outlet_url` instead of\n`formatted_address`\/`locality`\/`google_place_id`\/`outlet_page_url`)."
                    },
                    "response": []
                },
                {
                    "name": "Edit a location (frontend contract)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/locations\/:location",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/locations\/:location",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "location",
                                    "key": "location",
                                    "value": "16",
                                    "description": "The location ID."
                                }
                            ]
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"country_code\":\"ng\",\"city\":\"z\",\"address\":\"m\",\"place_id\":\"i\",\"outlet_url\":\"http:\\\/\\\/www.okon.com\\\/accusantium-harum-mollitia-modi-deserunt-aut-ab\"}"
                        },
                        "description": "No equivalent existed before this -- Phase 1 only ever shipped create\/list. Same field\nrename as storeForFrontend()."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "AI Visibility - Prompt Detail",
            "description": "\nTicket 7 \u2014 the prompt-detail scrollable page (overview\/citations\/responses) and the top-level\nexecution detail view. Kept separate from AiVisibilityPromptController (already ~1700 lines,\nand owns a different, older payload shape via show()\/executionShow()) \u2014 these are new endpoints\nwith their own contract, built on the same Ticket 5 aggregate-table services as the rest of\nTicket 7 rather than that controller's live-join helpers.",
            "item": [
                {
                    "name": "Prompt Overview",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/overview",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/overview",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "1",
                                    "description": "The prompt ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Prompt Filter Options",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/filters",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/filters",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "1",
                                    "description": "The prompt ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Distinct providers, models, countries and languages that have actually run for this prompt.\nUsed to populate the filter dropdowns on the prompt detail page."
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Prompt Citations",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/citations",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/citations",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "1",
                                    "description": "The prompt ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Same shape as `POST \/ai-visibility\/citations`, scoped to this prompt."
                    },
                    "response": []
                },
                {
                    "name": "Prompt Citation Domains (paginated)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/citations\/domains",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/citations\/domains",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "1",
                                    "description": "The prompt ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"per_page\":16,\"page\":16}"
                        },
                        "description": "Same shape as `POST \/ai-visibility\/citations\/domains`, scoped to this prompt."
                    },
                    "response": []
                },
                {
                    "name": "Prompt Citation URLs (paginated)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/citations\/urls",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/citations\/urls",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "1",
                                    "description": "The prompt ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"per_page\":16,\"page\":16}"
                        },
                        "description": "Same shape as `POST \/ai-visibility\/citations\/urls`, scoped to this prompt."
                    },
                    "response": []
                },
                {
                    "name": "Export Prompt Citation URLs",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/citations\/export",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/citations\/export",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "1",
                                    "description": "The prompt ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "GET api\/organisations\/{organisation_uuid}\/ai-visibility\/prompts\/{prompt}\/responses",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/responses",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/responses",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "architecto",
                                    "description": "The prompt."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Prompt Response Detail",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/responses\/:execution",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/responses\/:execution",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "1",
                                    "description": "The prompt ID."
                                },
                                {
                                    "id": "execution",
                                    "key": "execution",
                                    "value": "42",
                                    "description": "The execution ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Full detail for a single execution \u2014 backs the \"AI Response\" modal on the prompt responses tab."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"execution_id\":42,\"prompt_title\":\"How does Notion help teams?\",\"provider\":\"openai\",\"model\":\"gpt-4o\",\"date\":\"2026-06-25 09:00:00\",\"detected_brands\":[{\"name\":\"Notion\",\"website\":\"notion.com\"}],\"sentiment\":\"positive\",\"is_brand_mentioned\":true,\"response_content\":\"Notion helps teams...\",\"citations\":[{\"rank\":1,\"url\":\"https:\/\/notion.so\/blog\",\"title\":\"Notion Blog\",\"domain\":\"notion.so\",\"page_type\":\"references\"}]}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Full detail for a single radar (Google AI Overview) response.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/radar-responses\/:radarResponse",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/radar-responses\/:radarResponse",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": ""
                                },
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "16",
                                    "description": ""
                                },
                                {
                                    "id": "radarResponse",
                                    "key": "radarResponse",
                                    "value": "16",
                                    "description": "The radar_response id."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Export Prompt Responses",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/responses\/export",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/responses\/export",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "1",
                                    "description": "The prompt ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Execution Detail",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/executions\/:execution",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/executions\/:execution",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "execution",
                                    "key": "execution",
                                    "value": "501",
                                    "description": "The execution ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Not scoped to a prompt and exempt from the dashboard cache \u2014 reads live, per Ticket 7's\nspec. Full detail (including inline citation segments) is available regardless of whether\nraw_response has since been pruned by retention (Ticket 8) \u2014 citation_segments is derived\nonce at normalization time (see NormalizeAiVisibilityExecutionJob) and persisted alongside\ngenerated_answer, neither of which the prune command ever touches."
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "AI Visibility - Prompts",
            "description": "\nAPIs for managing AI Visibility prompts, their scheduled executions, and execution detail.",
            "item": [
                {
                    "name": "List Prompts",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts",
                            "query": [
                                {
                                    "key": "topic_id",
                                    "value": "16",
                                    "description": "Optional - filter by topic.",
                                    "disabled": false
                                },
                                {
                                    "key": "status",
                                    "value": "active",
                                    "description": "Optional - filter by status (active, paused, archived).",
                                    "disabled": false
                                },
                                {
                                    "key": "search",
                                    "value": "pricing",
                                    "description": "Optional - keyword search on prompt text.",
                                    "disabled": false
                                },
                                {
                                    "key": "per_page",
                                    "value": "20",
                                    "description": "Optional - results per page. Default: 20.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts?topic_id=16&status=active&search=pricing&per_page=20",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create Prompt",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"text\":\"How does our product compare to competitors?\",\"topic_id\":16,\"tag_ids\":[16],\"country\":\"NG\",\"language\":\"en\",\"frequency\":\"weekly\",\"providers\":[\"openai\",\"perplexity\"],\"skip_first_run\":true,\"location_scope\":\"architecto\",\"location_ids\":[16]}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"data\": {\n    \"id\": 1,\n    \"text\": \"How does our product compare to competitors?\",\n    \"topic_id\": 16,\n    \"country\": \"NG\",\n    \"language\": \"en\",\n    \"frequency\": \"weekly\",\n    \"status\": \"active\",\n    \"providers\": [\"openai\", \"perplexity\"]\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"AI Visibility is not enabled for this organisation.\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"Active prompt limit reached for this plan.\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Bulk Import Prompts",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/bulk-import",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/bulk-import",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"topic_id\":16,\"prompts\":[\"architecto\"],\"activate\":false,\"topics\":[\"g\"],\"tags\":[[\"z\"]],\"locations\":[{\"scope\":\"architecto\",\"location_ids\":[16]}]}"
                        },
                        "description": "Accepts a flat list of prompt texts assigned to a single topic, split against the plan\nactive-prompt limit: prompts that fit are created as active and dispatched on the priority\nqueue; any overflow is created as paused. Case-insensitive exact duplicates are skipped."
                    },
                    "response": []
                },
                {
                    "name": "Bulk Delete Prompts",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/bulk-delete",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/bulk-delete",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"prompt_ids\":[16]}"
                        },
                        "description": "Deletes multiple tracked prompts at once, purging each one's historical visibility\/\nsentiment\/citation contribution the same way a single delete does (see\nAiVisibilityPromptDataPurger). An ID that doesn't belong to this organisation is silently\nskipped rather than failing the whole batch -- same \"unowned resource is invisible, not an\nerror\" posture as findPromptOrFail()'s 404 on the single-delete endpoint, just non-fatal\nhere since a bulk selection can't assume every ID is still valid by the time it's submitted."
                    },
                    "response": []
                },
                {
                    "name": "Get Organisation-Level Execution Status",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/execution-status",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/execution-status",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Polling endpoint for the frontend to show a banner (\"results are being recalculated\")\nwhile any AI Visibility execution across the organisation is still in progress. Bounded by\nupdated_at (not scheduled_at -- recurring prompts get scheduled_at pinned to midnight, so\nthat column can't tell \"just went pending\/running\" apart from \"queued 10 hours ago\") to a\nrecent window rather than all-time, since any legitimate in-flight execution resolves\n(completes, fails, or gets reaped by ai-visibility:reap-stale-executions) well within it.\nAlso counts radar (Google AI Overview) rows still in 'pending' status.\n\nin_progress_count is the number of distinct prompts still in flight, not the number of\nrows -- a single prompt fans out to one execution row per provider (openai, perplexity,\n...) plus its own radar row, so counting rows would overstate how many prompts are\nactually still running.\n\nAlways queried fresh (no caching layer, no-store response header) \u2014 every poll reflects\nthe current DB state exactly.\n\nreprocessing is a second, independent signal folded into the same `in_progress` flag: true\nwhile a brand\/competitor\/workspace rename's ReprocessAiVisibilityOrganisationJob fan-out is\nstill working through this org's historical executions\/radar responses (see\nAiVisibilityReprocessingTracker). Surfaced separately from in_progress_count since it isn't\na count of prompts in flight -- the frontend banner shows different copy for it."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"in_progress\": true,\n    \"in_progress_count\": 2,\n    \"reprocessing\": false,\n    \"in_progress_prompt_ids\": [\"101\", \"104\"]\n  }\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Regions In Use",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/regions",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/regions",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Distinct region\/country codes actually configured on this organisation's own prompts --\nNOT the full curated config('ai_visibility.supported_regions') list that\nOrganisationController::supportedRegions() returns (that one backs region *pickers* on\ncreation forms, where every supported region is a valid choice). This backs the AI\nVisibility dashboard's region *filter* dropdowns (Platforms\/Visibility\/Sentiment\/\nCitations), which should only ever offer a region that at least one of this org's prompts\ncould actually produce data for -- offering the full global list there let an org filter by\na region with zero prompts and see an always-empty result with no indication why.\n\nScoped to active\/paused prompts only, same default scope as index() -- an archived prompt's\nregion isn't a live filtering concern."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\"value\": \"US\", \"label\": \"United States\"},\n    {\"value\": \"GB\", \"label\": \"United Kingdom\"}\n  ]\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get Prompt",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "1",
                                    "description": "The prompt ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Prompt not found.\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update Prompt",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "1",
                                    "description": "The prompt ID."
                                }
                            ]
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"text\":\"How does our product compare to competitors?\",\"topic_id\":16,\"tag_ids\":[16],\"country\":\"NG\",\"language\":\"en\",\"frequency\":\"weekly\",\"status\":\"active\",\"providers\":[\"openai\",\"perplexity\"]}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Prompt not found.\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"This frequency is not allowed on the current plan.\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Duplicate Prompt",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/duplicate",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/duplicate",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "1",
                                    "description": "The prompt ID to duplicate."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Creates a paused copy of the prompt with the same topic, tags, text, country, language,\nfrequency and providers."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Prompt not found.\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"Active prompt limit reached for this plan.\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete Prompt",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "1",
                                    "description": "The prompt ID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "{}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Prompt not found.\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Run Prompt Now",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/run",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/run",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "1",
                                    "description": "The prompt ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Manually dispatches a fresh execution for this prompt across all of its allowed providers,\nindependent of the scheduler."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 202,
                            "body": "{\n  \"data\": {\n    \"prompt_id\": 1,\n    \"execution_ids\": [501, 502]\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Prompt not found.\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"No allowed and available provider could run this prompt.\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List Prompt Executions",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/executions",
                            "query": [
                                {
                                    "key": "provider",
                                    "value": "openai",
                                    "description": "Optional - filter by provider.",
                                    "disabled": false
                                },
                                {
                                    "key": "status",
                                    "value": "completed",
                                    "description": "Optional - filter by execution status.",
                                    "disabled": false
                                },
                                {
                                    "key": "per_page",
                                    "value": "20",
                                    "description": "Optional - results per page. Default: 20.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/executions?provider=openai&status=completed&per_page=20",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "1",
                                    "description": "The prompt ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "\"All Responses\" list \u2014 one row per execution (\"chat\") run for this prompt, newest first."
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Prompt not found.\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get Prompt Execution Detail",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/executions\/:execution",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/executions\/:execution",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "1",
                                    "description": "The prompt ID."
                                },
                                {
                                    "id": "execution",
                                    "key": "execution",
                                    "value": "501",
                                    "description": "The execution ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "\"Edit Responses\" chat detail \u2014 full generated answer, citations, and per-brand mentions\nfor a single execution."
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Execution not found.\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get Prompt Execution Status",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/execution-status",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/:prompt\/execution-status",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "1",
                                    "description": "The prompt ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Polling endpoint for the frontend to show a loading skeleton while a prompt's latest run\nis still in progress. \"In progress\" covers both an execution that hasn't finished calling\nits provider yet, and one that has (status=completed) but whose citations\/brand-mentions\nhaven't been written yet by the normalization job that runs right after \u2014 status alone\nflips to completed before that data exists, so this checks processing_version too rather\nthan reporting \"ready\" before there's anything real to show. Also folds in the org's latest\nradar (Google AI Overview) pull for this prompt, if radar is enabled on its plan \u2014 radar\nrows live in a separate table (ai_visibility_radar_responses) with their own\npending\/normalised\/failed lifecycle, but ai_visibility_radar_responses.prompt_id is a real\nFK to this same prompt, so it belongs in this prompt's status too.\n\nAlways queried fresh (no caching layer, no-store response header) \u2014 every poll reflects\nthe current DB state exactly."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"status\": \"in_progress\",\n    \"scheduled_at\": \"2026-08-14 12:23:00\",\n    \"providers\": [\n      {\"provider\": \"openai\", \"status\": \"in_progress\", \"location_id\": null},\n      {\"provider\": \"perplexity\", \"status\": \"ready\", \"location_id\": null},\n      {\"provider\": \"google_ai_overviews\", \"status\": \"ready\", \"location_id\": null}\n    ]\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Prompt not found.\"\n}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "AI Visibility - Saved Views",
            "description": "\nNamed filter-state snapshots for the AI Visibility Overview page (date range\/providers\/brands\/\ntopics\/tags\/regions\/prompt_type) -- \"Weekly review\", \"US market\", etc. Shared across the\norganisation: any member can save, see, and delete a view, same as tags\/topics. There is no\npersisted \"Default\" row -- that's the frontend's own reset state, never saved here.",
            "item": [
                {
                    "name": "List Saved Views",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/saved-views",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/saved-views",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\n      \"id\": 1,\n      \"name\": \"Weekly review\",\n      \"filters\": {\"date_preset\": \"last_30_days\", \"providers\": [], \"brand_ids\": [], \"topic_ids\": [], \"tag_ids\": [], \"regions\": [], \"prompt_type\": null},\n      \"created_at\": \"2026-10-08T10:00:00.000000Z\",\n      \"updated_at\": \"2026-10-08T10:00:00.000000Z\"\n    }\n  ]\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Save Current View",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/saved-views",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/saved-views",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Weekly review\",\"filters\":[]}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"data\": {\n    \"id\": 1,\n    \"name\": \"Weekly review\",\n    \"filters\": {\"date_preset\": \"last_30_days\", \"providers\": [], \"brand_ids\": [], \"topic_ids\": [], \"tag_ids\": [], \"regions\": [], \"prompt_type\": null},\n    \"created_at\": \"2026-10-08T10:00:00.000000Z\",\n    \"updated_at\": \"2026-10-08T10:00:00.000000Z\"\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The name field is required. (and 1 more error)\",\n  \"errors\": {\"name\": [\"\\\"Weekly review\\\" already exists. Pick another name or use the existing view.\"]}\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete Saved View",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/saved-views\/:saved_view",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/saved-views\/:saved_view",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "saved_view",
                                    "key": "saved_view",
                                    "value": "1",
                                    "description": "The saved view ID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Owner-only -- unlike creating a view (Owner or Member), deleting one is restricted to\norganisation owners, regardless of who created it. See\nOrganisationPolicy::deleteAiVisibilitySavedView()."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "{}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"You must be an organisation owner to delete a saved view.\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Saved view not found.\"\n}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "AI Visibility - Suggestions",
            "description": "\nPrompt and topic suggestions generated by GenerateAiVisibilitySuggestionsJob. Suggestions start\nas `completed` and move to `accepted` or `dismissed` when the user acts on them.",
            "item": [
                {
                    "name": "List prompt suggestions",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/suggested",
                            "query": [
                                {
                                    "key": "exclude_categories[0]",
                                    "value": "branded",
                                    "description": "Optional categories to exclude.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/suggested?exclude_categories[0]=branded",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns every prompt suggestion with status `completed` for the organisation, ordered by\nsource (radar first), then volume descending, then most recent. This backs the full\n\"Suggested\" tab (search + accept\/dismiss over the whole set), so it is not capped the way\nthe onboarding preview endpoints are -- `meta.total` always equals `count(data)`."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1,\"text\":\"What is the best tool for notes and docs?\",\"category\":\"awareness\",\"source\":\"radar\",\"volume\":12000,\"status\":\"completed\",\"generated_at\":\"2026-06-01 00:00:00\"}],\"meta\":{\"total\":1}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Refetch suggestions",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/suggested\/refetch",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/suggested\/refetch",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "A separate, standalone generation path from GenerateAiVisibilitySuggestionsJob (the\nonboarding job) \u2014 deliberately not shared code, so this can never change that job's\nbehavior. Two differences from onboarding generation: (1) previously dismissed suggestions\nare deleted first so a fresh batch can take their place \u2014 an upsert alone would otherwise\nleave a dismissed row's regenerated duplicate stuck as dismissed forever, since the upsert\nnever touches `status`; `completed`\/`accepted` suggestions are left untouched. (2) an LLM\nfailure here is a real error, not silently swallowed into the generic fallback set \u2014 a user\nwho clicks \"refetch\" wants real, freshly-generated suggestions, and substituting the generic\nfallback would look like a genuine refresh when it isn't one.\n\nRate-limited to once per 10 minutes per org: a successful call holds its lock for the full\ncooldown (not released in a finally) so a second click can't trigger another LLM call too\nsoon; a failed call releases immediately since it never produced anything worth protecting.\nA request that lands inside an active cooldown isn't rejected \u2014 it gets back the same\nexisting (still-valid) suggestions with `cached: true`, rather than a bare error."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"topics\":[{\"id\":1,\"name\":\"Feature Discovery\",\"description\":\"...\",\"source\":\"llm\",\"status\":\"completed\",\"generated_at\":\"2026-06-01 00:00:00\"}],\"prompts\":[{\"id\":1,\"text\":\"What is the best tool for notes and docs?\",\"category\":\"awareness\",\"source\":\"llm\",\"status\":\"completed\",\"generated_at\":\"2026-06-01 00:00:00\"}]}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"topics\":[],\"prompts\":[]},\"cached\":true}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"No own brand found for this organisation.\"}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 502,
                            "body": "{\"message\":\"Failed to generate suggestions. Please try again.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Accept a prompt suggestion",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/suggested\/:suggestion\/accept",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/suggested\/:suggestion\/accept",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "suggestion",
                                    "key": "suggestion",
                                    "value": "1",
                                    "description": "The suggestion ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"frequency\":\"daily\",\"providers\":[\"openai\"],\"topic_id\":3,\"country\":\"US\",\"language\":\"en\",\"skip_first_run\":false,\"location_scope\":\"architecto\",\"location_ids\":[16]}"
                        },
                        "description": "Creates a live prompt from the suggestion, dispatches an immediate first run, and marks the\nsuggestion as `accepted`. Returns the new prompt's ID and settings."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\"data\":{\"prompt_id\":42,\"text\":\"What is the best tool for notes and docs?\",\"topic_id\":3,\"frequency\":\"daily\",\"providers\":[\"openai\"],\"country\":\"US\",\"language\":\"en\"}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"Active prompt limit reached for this plan.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Dismiss a prompt suggestion",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/suggested\/:suggestion",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/prompts\/suggested\/:suggestion",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "suggestion",
                                    "key": "suggestion",
                                    "value": "1",
                                    "description": "The suggestion ID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Marks the suggestion as `dismissed`. It will no longer appear in the suggestions list."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "{}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Onboarding suggestions",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/onboarding\/suggestions",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/onboarding\/suggestions",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns both topic and prompt suggestions for the onboarding wizard in a single call.\nDispatch `GenerateAiVisibilitySuggestionsJob` for the org before calling this endpoint to\nensure suggestions are populated."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"topics\":[{\"id\":1,\"name\":\"Feature Discovery\",\"description\":\"...\",\"category\":\"feature\",\"source\":\"llm\",\"status\":\"completed\",\"generated_at\":\"2026-06-01 00:00:00\"}],\"prompts\":[{\"id\":1,\"text\":\"What is the best tool for notes?\",\"category\":\"awareness\",\"source\":\"radar\",\"volume\":12000,\"status\":\"completed\",\"generated_at\":\"2026-06-01 00:00:00\"}]}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Onboarding kickoff",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/onboarding\/kickoff",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/onboarding\/kickoff",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Dispatches first-run executions on the priority queue for all active prompts the org\naccepted during onboarding (those created with skip_first_run=true). Call this from the\nBrandAnalysisProgress loading screen, after the user has committed to onboarding (step 4),\nso we don't waste compute on users who abandon after the suggestion step."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 202,
                            "body": "{\"data\":{\"dispatched\":5}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Onboarding analysis status",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/onboarding\/status",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/onboarding\/status",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns how many of the org's active prompt executions have completed and a live\nvisibility percentage computed directly from execution_brands rows (no daily_metrics\naggregation needed \u2014 available as soon as the first execution is normalised).\n\nPoll this from BrandAnalysisProgress until `ready` is true."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"ready\":true,\"executions_total\":10,\"executions_completed\":8,\"visibility_pct\":45.0}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Onboarding improvement estimate",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/onboarding\/improvement",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/onboarding\/improvement",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "One-shot, synchronous LLM call \u2014 no queue, no polling. Call this once from the onboarding\nscreen right when onboardingStatus() first reports has_own_brand_data (i.e. the real,\naggregated visibility_pct is already showing), so the estimate stays grounded in the exact\nsame number the dashboard will show after login. Cached for 30 days, so a repeat call\n(re-entering onboarding, a second tab) returns instantly without re-running the LLM. Returns\npotential_visibility_pct: null if there isn't enough own-brand data yet, or if the estimate\ngenuinely can't be computed (LLM call failed, no headroom found)."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"potential_visibility_pct\":45.0}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"potential_visibility_pct\":null}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List suggested competitors",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/competitors\/suggested",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/competitors\/suggested",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns up to 10 pending competitor suggestions for the organisation, most recent first.\nPopulated by SuggestAiVisibilityCompetitorsJob (dispatched at onboarding and daily\nthereafter via ai-visibility:suggest-competitors)."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1,\"name\":\"Acme Corp\",\"website\":\"acme.com\",\"reason\":\"Direct competitor in the same market.\",\"generated_at\":\"2026-07-09 00:00:00\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Accept a suggested competitor",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/competitors\/suggested\/:suggestion\/accept",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/competitors\/suggested\/:suggestion\/accept",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "suggestion",
                                    "key": "suggestion",
                                    "value": "1",
                                    "description": "The competitor suggestion ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"location_scope\":\"architecto\",\"location_ids\":[16]}"
                        },
                        "description": "Creates a real, tracked competitor brand from the suggestion (source=manual, same as one\nadded directly via the Competitor tab), backfills its historical mention data across every\ncompleted execution so far, and marks the suggestion accepted."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\"data\":{\"brand_id\":42,\"name\":\"Acme Corp\",\"website\":\"acme.com\"}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"This suggestion has already been accepted.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Dismiss a suggested competitor",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/competitors\/suggested\/:suggestion",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/competitors\/suggested\/:suggestion",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "suggestion",
                                    "key": "suggestion",
                                    "value": "1",
                                    "description": "The competitor suggestion ID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Marks the competitor suggestion as `rejected`. It will no longer appear in the suggestions\nlist, and the name will never be suggested again for this organisation."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "{}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List topic suggestions",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/topics\/suggested",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/topics\/suggested",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns up to 10 topic suggestions with status `completed` for the organisation,\nordered by most recent first."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1,\"name\":\"Feature Discovery\",\"description\":\"Questions about discovering features in productivity tools\",\"category\":\"feature\",\"source\":\"llm\",\"status\":\"completed\",\"generated_at\":\"2026-06-01 00:00:00\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Accept a topic suggestion",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/topics\/suggested\/:suggestion\/accept",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/topics\/suggested\/:suggestion\/accept",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "suggestion",
                                    "key": "suggestion",
                                    "value": "1",
                                    "description": "The topic suggestion ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Creates a real topic from the suggestion and marks it as `accepted`.\nReturns the new topic's ID and details."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\"data\":{\"topic_id\":5,\"name\":\"Feature Discovery\",\"description\":\"Questions about discovering features in productivity tools\"}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\":\"This suggestion has already been accepted.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Dismiss a topic suggestion",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/topics\/suggested\/:suggestion",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/topics\/suggested\/:suggestion",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "suggestion",
                                    "key": "suggestion",
                                    "value": "1",
                                    "description": "The topic suggestion ID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Marks the topic suggestion as `dismissed`. It will no longer appear in the suggestions list."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "{}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "AI Visibility - Tags",
            "description": "\nAPIs for managing tags used to group AI Visibility prompts within an organisation. Unlike\nai_visibility_topics (one nullable topic per prompt), a prompt can carry several tags --\nsee ai_visibility_prompt_tags.",
            "item": [
                {
                    "name": "List Tags",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/tags",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/tags",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\n      \"id\": 1,\n      \"name\": \"Comparison\",\n      \"color\": \"blue\",\n      \"created_at\": \"2026-06-05T10:00:00.000000Z\",\n      \"updated_at\": \"2026-06-05T10:00:00.000000Z\",\n      \"prompts_connected\": 14\n    }\n  ]\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create Tag",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/tags",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/tags",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Comparison\",\"color\":\"blue\"}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"data\": {\n    \"id\": 1,\n    \"name\": \"Comparison\",\n    \"color\": \"blue\",\n    \"created_at\": \"2026-06-05T10:00:00.000000Z\",\n    \"updated_at\": \"2026-06-05T10:00:00.000000Z\"\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The name field is required. (and 1 more error)\",\n  \"errors\": {\"name\": [\"\\\"Comparison\\\" already exists. Pick another name or use the existing tag.\"]}\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update Tag",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/tags\/:tag",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/tags\/:tag",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "tag",
                                    "key": "tag",
                                    "value": "1",
                                    "description": "The tag ID."
                                }
                            ]
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Comparison\",\"color\":\"blue\"}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"id\": 1,\n    \"name\": \"Comparison\",\n    \"color\": \"blue\",\n    \"created_at\": \"2026-06-05T10:00:00.000000Z\",\n    \"updated_at\": \"2026-06-05T10:00:00.000000Z\"\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Tag not found.\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete Tag",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/tags\/:tag",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/tags\/:tag",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "tag",
                                    "key": "tag",
                                    "value": "1",
                                    "description": "The tag ID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Removes the tag from every prompt it's attached to (ai_visibility_prompt_tags cascades) --\nthe prompts themselves, and their execution history\/results, are untouched. Unlike\nAiVisibilityTopicController::destroy(), this is never blocked by active prompts: a tag is a\nloose label, not the single required grouping a topic is."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "{}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Tag not found.\"\n}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "AI Visibility - Topics",
            "description": "\nAPIs for managing topics used to group AI Visibility prompts within an organisation.",
            "item": [
                {
                    "name": "List Topics",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/topics",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/topics",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\n      \"id\": 1,\n      \"name\": \"Competitor comparisons\",\n      \"description\": \"Prompts comparing us against competitors\",\n      \"created_at\": \"2026-06-05T10:00:00.000000Z\",\n      \"updated_at\": \"2026-06-05T10:00:00.000000Z\",\n      \"active_count\": 3,\n      \"inactive_count\": 1,\n      \"suggested_count\": 0\n    },\n    {\n      \"id\": null,\n      \"name\": \"Unassigned\",\n      \"description\": null,\n      \"created_at\": null,\n      \"updated_at\": null,\n      \"active_count\": 2,\n      \"inactive_count\": 0,\n      \"suggested_count\": 0\n    }\n  ]\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create Topic",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/topics",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/topics",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Competitor comparisons\",\"description\":\"Prompts comparing us against competitors\"}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"data\": {\n    \"id\": 1,\n    \"name\": \"Competitor comparisons\",\n    \"description\": \"Prompts comparing us against competitors\",\n    \"created_at\": \"2026-06-05T10:00:00.000000Z\",\n    \"updated_at\": \"2026-06-05T10:00:00.000000Z\"\n  }\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update Topic",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/topics\/:topic",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/topics\/:topic",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "topic",
                                    "key": "topic",
                                    "value": "1",
                                    "description": "The topic ID."
                                }
                            ]
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Competitor comparisons\",\"description\":\"Prompts comparing us against competitors\"}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"id\": 1,\n    \"name\": \"Competitor comparisons\",\n    \"description\": \"Prompts comparing us against competitors\",\n    \"created_at\": \"2026-06-05T10:00:00.000000Z\",\n    \"updated_at\": \"2026-06-05T10:00:00.000000Z\"\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Topic not found.\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete Topic",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/topics\/:topic",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/topics\/:topic",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "topic",
                                    "key": "topic",
                                    "value": "1",
                                    "description": "The topic ID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "{}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Topic not found.\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"Cannot delete a topic with active prompts assigned to it.\"\n}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "AI Visibility \u2014 Addon Access",
            "description": "",
            "item": [
                {
                    "name": "GET \/organisations\/{organisation_uuid}\/ai-visibility\/addon-access",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/addon-access",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/addon-access",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"enabled_addon_kinds\": [\"grok\"],\n    \"purchased_addon_kinds\": [\"grok\", \"gemini\"],\n    \"owned_addon_kinds\": []\n  }\n}",
                            "name": "success"
                        }
                    ]
                },
                {
                    "name": "POST \/organisations\/{organisation_uuid}\/ai-visibility\/addon-access",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/addon-access",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/addon-access",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"kind\":\"architecto\",\"enabled\":false}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"enabled_addon_kinds\": [\"grok\"],\n    \"purchased_addon_kinds\": [\"grok\", \"gemini\"],\n    \"owned_addon_kinds\": []\n  }\n}",
                            "name": "success"
                        }
                    ]
                }
            ]
        },
        {
            "name": "API Keys",
            "description": "\nAPIs for managing production API keys for the current organisation's billing group. A key is\nalways generated from (and owned by) the group's billing-anchor organisation, but each key is\nindependently scoped to whichever subset of the group's organisations (workspaces) was chosen\nwhen it was created -- a billing group can hold several keys, each covering a different subset,\nfor different integrations.",
            "item": [
                {
                    "name": "List every production API key generated for this billing group.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/api-keys",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/api-keys"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "X-Organisation-Id",
                                "value": "string required The organisation UUID."
                            },
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns every non-revoked key generated from the billing-anchor organisation of whichever\norganisation was selected via X-Organisation-Id, each with the workspaces it's scoped to.\nPlaintext API keys are never returned from this endpoint."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\n      \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n      \"environment\": \"live\",\n      \"status\": \"active\",\n      \"key\": null,\n      \"masked_key\": \"sk_live_****************************Ab12\",\n      \"last_four\": \"Ab12\",\n      \"plain_text_available\": false,\n      \"idempotent_replay\": false,\n      \"rotation_expires_at\": null,\n      \"expires_at\": null,\n      \"revoked_at\": null,\n      \"organisations\": [\n        {\"uuid\": \"660e8400-e29b-41d4-a716-446655440000\", \"name\": \"Acme Inc\", \"is_primary\": true}\n      ],\n      \"created_at\": \"2026-06-05T10:00:00.000000Z\",\n      \"updated_at\": \"2026-06-05T10:00:00.000000Z\"\n    }\n  ]\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Generate a production API key scoped to a chosen subset of this billing group's\norganisations. Plaintext is returned only on first creation.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/api-keys\/generate",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/api-keys\/generate"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "X-Organisation-Id",
                                "value": "string required The organisation UUID."
                            },
                            {
                                "key": "Idempotency-Key",
                                "value": "string optional Safe retry key for this generation request."
                            },
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Claude Desktop MCP\",\"confirmed\":true,\"organisation_uuids\":[\"architecto\"]}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"message\": \"API key generated successfully.\",\n  \"data\": {\n    \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"environment\": \"live\",\n    \"status\": \"active\",\n    \"key\": \"sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    \"masked_key\": \"sk_live_****************************Ab12\",\n    \"last_four\": \"Ab12\",\n    \"plain_text_available\": true,\n    \"idempotent_replay\": false,\n    \"organisations\": [\n      {\"uuid\": \"660e8400-e29b-41d4-a716-446655440000\", \"name\": \"Acme Inc\", \"is_primary\": true}\n    ],\n    \"created_at\": \"2026-06-05T10:00:00.000000Z\",\n    \"updated_at\": \"2026-06-05T10:00:00.000000Z\"\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"One or more selected workspaces are not part of this account's billing group.\",\n  \"error\": {\n    \"code\": \"organisation_not_in_billing_scope\"\n  }\n}",
                            "name": "Workspace outside this billing group"
                        }
                    ]
                },
                {
                    "name": "Rotate one production API key. Plaintext is returned only on first rotation. The new key\nkeeps the exact same workspace scope as the key it replaces.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/api-keys\/:apiKey_uuid\/rotate",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/api-keys\/:apiKey_uuid\/rotate",
                            "variable": [
                                {
                                    "id": "apiKey_uuid",
                                    "key": "apiKey_uuid",
                                    "value": "36010381-2db5-4553-8459-ec8e089eb331",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "X-Organisation-Id",
                                "value": "string required The organisation UUID."
                            },
                            {
                                "key": "Idempotency-Key",
                                "value": "string optional Safe retry key for this rotation request."
                            },
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Creates a new active production key immediately and keeps the previous key valid\nfor 24 hours before it is auto-revoked."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"message\": \"API key rotated successfully.\",\n  \"data\": {\n    \"current_key\": {\n      \"uuid\": \"660e8400-e29b-41d4-a716-446655440000\",\n      \"environment\": \"live\",\n      \"status\": \"active\",\n      \"key\": \"sk_live_yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy\",\n      \"masked_key\": \"sk_live_****************************Cd34\",\n      \"last_four\": \"Cd34\",\n      \"plain_text_available\": true,\n      \"idempotent_replay\": false\n    },\n    \"previous_key\": {\n      \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n      \"environment\": \"live\",\n      \"status\": \"rotating\",\n      \"key\": null,\n      \"masked_key\": \"sk_live_****************************Ab12\",\n      \"last_four\": \"Ab12\",\n      \"plain_text_available\": false,\n      \"idempotent_replay\": false,\n      \"rotation_expires_at\": \"2026-06-06T10:00:00.000000Z\"\n    }\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 409,
                            "body": "{\n  \"message\": \"This idempotency key was already used for a different API key action.\",\n  \"error\": {\n    \"code\": \"idempotency_key_conflict\"\n  }\n}",
                            "name": "Idempotency key conflict"
                        }
                    ]
                },
                {
                    "name": "Revoke one production API key immediately (and its still-rotating predecessor, if any).",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/api-keys\/:apiKey_uuid\/revoke",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/api-keys\/:apiKey_uuid\/revoke",
                            "variable": [
                                {
                                    "id": "apiKey_uuid",
                                    "key": "apiKey_uuid",
                                    "value": "36010381-2db5-4553-8459-ec8e089eb331",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "X-Organisation-Id",
                                "value": "string required The organisation UUID."
                            },
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"confirmation\":\"REVOKE\"}"
                        },
                        "description": "The request must include the exact confirmation text REVOKE."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"API key revoked successfully.\",\n  \"data\": {\n    \"revoked_count\": 1\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The selected confirmation is invalid.\",\n  \"errors\": {\n    \"confirmation\": [\n      \"The selected confirmation is invalid.\"\n    ]\n  }\n}",
                            "name": "Missing confirmation"
                        }
                    ]
                },
                {
                    "name": "Replace one production API key's workspace scope entirely -- adds any newly-listed\nworkspace and drops any workspace no longer listed, in one call. Does not affect the key\nitself (its value, status, or expiry).",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/api-keys\/:apiKey_uuid\/workspaces",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/api-keys\/:apiKey_uuid\/workspaces",
                            "variable": [
                                {
                                    "id": "apiKey_uuid",
                                    "key": "apiKey_uuid",
                                    "value": "36010381-2db5-4553-8459-ec8e089eb331",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "X-Organisation-Id",
                                "value": "string required The organisation UUID."
                            },
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"organisation_uuids\":[\"architecto\"]}"
                        },
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"API key workspaces updated successfully.\",\n  \"data\": {\n    \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"organisations\": [\n      {\"uuid\": \"660e8400-e29b-41d4-a716-446655440000\", \"name\": \"Acme Inc\", \"is_primary\": true},\n      {\"uuid\": \"770e8400-e29b-41d4-a716-446655440000\", \"name\": \"Acme Support\", \"is_primary\": false}\n    ]\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"One or more selected workspaces are not part of this account's billing group.\",\n  \"error\": {\n    \"code\": \"organisation_not_in_billing_scope\"\n  }\n}",
                            "name": "Workspace outside this billing group"
                        }
                    ]
                }
            ]
        },
        {
            "name": "AppSumo",
            "description": "\nAPIs for AppSumo lifetime-deal tier comparison and license redemption",
            "item": [
                {
                    "name": "Read-only preview so the FE can show \"you're redeeming Tier 2 -- here's what you get\"\nbefore the user commits. No writes.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/appsumo\/licenses\/validate",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/appsumo\/licenses\/validate"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"license_key\":\"architecto\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST api\/appsumo\/licenses\/redeem",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/appsumo\/licenses\/redeem",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/appsumo\/licenses\/redeem"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"license_key\":\"architecto\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "GET api\/appsumo\/licenses\/current",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/appsumo\/licenses\/current",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/appsumo\/licenses\/current"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List AppSumo tiers",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/appsumo\/plans",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/appsumo\/plans"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Unauthenticated tier comparison listing (name\/price\/reviews\/mentions\/credits per tier) for\na marketing\/comparison page -- unlike GET \/subscription-plans, deliberately does not filter\non is_active, since every AppSumo tier is seeded with is_active=false (see\nAppSumoPlanSeeder) precisely so it's excluded from that general, checkout-oriented listing.\nOrdered tier 1 -> 4 by config('billing.appsumo_tier_price_ids') key order, not by id.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\n      \"tier\": 1,\n      \"stripe_price_id\": \"price_internal_appsumo_tier1\",\n      \"name\": \"AppSumo Lifetime - Tier 1\",\n      \"description\": \"AppSumo lifetime deal, Tier 1 - 1,200 reviews, 1,000 mentions, 10 tracked prompts, 240 lifetime AI credits\",\n      \"amount\": 4900,\n      \"currency\": \"usd\",\n      \"plan_threshold\": {}\n    }\n  ]\n}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Endpoints",
            "description": "",
            "item": [
                {
                    "name": "Send a reset link to the given user.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/auth\/forgot-password",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/auth\/forgot-password"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Reset the user's password.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/auth\/reset-password",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/auth\/reset-password"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"token\":\"architecto\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Bulk Deactivate Brands (Temporary)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/brands\/deactivate-bulk-temporary",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/brands\/deactivate-bulk-temporary"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "X-Temporary-Bulk-Token",
                                "value": "{token}"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"chunk_size\":1,\"dry_run\":false}"
                        },
                        "description": "Disabled unless TEMP_BULK_BRAND_DEACTIVATE_ENABLED is set. When TEMP_BULK_BRAND_DEACTIVATE_TOKEN\nis set, the request must include a matching X-Temporary-Bulk-Token header.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Send a test webhook (manual trigger).",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/outbound-webhooks\/:webhook\/test",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/outbound-webhooks\/:webhook\/test",
                            "variable": [
                                {
                                    "id": "webhook",
                                    "key": "webhook",
                                    "value": "architecto",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "List outbound webhooks for the current organisation.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/outbound-webhooks",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/outbound-webhooks"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create an outbound webhook.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/outbound-webhooks",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/outbound-webhooks"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"url\":\"http:\\\/\\\/www.bailey.biz\\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\",\"headers\":[\"i\"],\"auth_type\":\"bearer\",\"auth_token\":\"k\",\"secret\":\"h\",\"is_active\":false}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Show a single outbound webhook.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/outbound-webhooks\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/outbound-webhooks\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the outbound webhook."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update an outbound webhook.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/outbound-webhooks\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/outbound-webhooks\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the outbound webhook."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"url\":\"http:\\\/\\\/www.bailey.biz\\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\",\"headers\":[\"i\"],\"auth_type\":\"bearer\",\"auth_token\":\"k\",\"secret\":\"h\",\"is_active\":false}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Delete an outbound webhook.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/outbound-webhooks\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/outbound-webhooks\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the outbound webhook."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Lets the frontend resolve the org's own tracked brand_id on its own -- every agent\nendpoint requires it (see AgentRegistry::baseInputSchema()), but there's exactly one\nis_own_brand row per org and nothing today returns just that id without also computing\na full competitor\/metrics payload (AiVisibilityCompetitorController::index).",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/agents\/own-brand",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/agents\/own-brand",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Populates the run form's \"Try our AI Recommendations\" chips with real, org-specific\nobservations (see AgentSuggestedPromptGenerator) instead of the agent's static\nsuggestedPrompts() copy. Meaningful for root_cause_analysis and competitive_benchmark --\nother agents fall back to their registry-declared suggestedPrompts() unchanged since\nnothing generates dynamic ones for them yet.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/agents\/:key\/suggested-prompts",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/agents\/:key\/suggested-prompts",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "key",
                                    "key": "key",
                                    "value": "architecto",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"brand_id\":16,\"timeframe\":\"7d\",\"data_source\":[\"google_ai_mode\"]}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "POST api\/organisations\/{organisation_uuid}\/agents\/{key}\/runs",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/agents\/:key\/runs",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/agents\/:key\/runs",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "key",
                                    "key": "key",
                                    "value": "architecto",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Ticket 5's Recent Outputs listing endpoint -- never built alongside show()\/download(),\nso that page has been stuck on hardcoded demo rows. Matches the mockup's columns exactly:\nFocus Topics, Agents, Status, Date created. Filterable by agent_type\/status per Ticket 5's\ndefinition of done; paginated the same way AiVisibilityCompetitorController::index() is.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/agent-runs",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/agent-runs",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Pulled forward from Ticket 5's full listing\/polling scope -- the Root Cause Analysis run\npage needs to poll run_plan step-by-step progress and read result once completed, and\nnothing else in Ticket 5 (agent listing, Recent Outputs table) is needed for that yet.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/agent-runs\/:run_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/agent-runs\/:run_id",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "run_id",
                                    "key": "run_id",
                                    "value": "17",
                                    "description": "The ID of the run."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Ticket 4\/5's own definition of done requires this endpoint, but it was never actually\nbuilt alongside RenderAgentReportPdfJob -- the PDF existed with nothing to fetch it\nthrough. Never returns a permanent URL, only a signed one generated on demand.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/agent-runs\/:run_id\/download",
                            "query": [
                                {
                                    "key": "format",
                                    "value": "docx",
                                    "description": "Optional - 'pdf' (default) or 'docx'.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/agent-runs\/:run_id\/download?format=docx",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "run_id",
                                    "key": "run_id",
                                    "value": "17",
                                    "description": "The ID of the run."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Backs both the frontend's Download button (open-and-forget) and Share button (copy the\nlink to hand to someone without a Subsig login) -- one URL serves both, so the expiry has\nto be long enough for a genuinely shared link to still work hours later, not just a quick\nclick. 24h, matching this feature's other \"good enough, not permanent\" TTLs (see\nAgentSuggestedPromptGenerator's suggestion cache).",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Radar Usage",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/ai-visibility\/radar\/usage",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/ai-visibility\/radar\/usage",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns this month's SerpApi spend for the organisation's passive brand radar,\nbroken down against the plan budget cap (null when uncapped).",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Exchange the single-use `code` AppSumo redirects buyers with (after \"Activate now\") for a\nlicense_key + status. Unauthenticated -- a brand-new buyer has no subsig session yet.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/appsumo\/oauth\/exchange",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/appsumo\/oauth\/exchange"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"code\":\"architecto\"}"
                        },
                        "description": "AppSumo's own `status` field flips to \"active\" as soon as our webhook responds 200 to their\n`activate` event -- which happens independently of whether this specific person has ever\nbeen through our OAuth flow (AppSumoWebhookController always 200s that event). So it does\nNOT mean \"this browser's user already has a subsig account\" -- every first-time buyer would\nincorrectly see \"active\" before ever signing up. `already_redeemed` is the real signal:\nwhether *our own* AppSumoLicense record has an organisation attached yet.\n\nFrontend branches on `already_redeemed` for new-vs-returning, and on `status === \"deactivated\"`\n(still AppSumo's own billing-state field, legitimately authoritative for this one case) to\nblock a cancelled\/refunded license outright regardless of redemption state.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST api\/webhook",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/webhook",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/webhook"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "GET api\/v1\/workspaces",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/workspaces",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/workspaces"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-request-id",
                                    "value": "59236191-44ef-4ab7-b2c7-acae8c37d895"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"error\":{\"code\":\"unauthorized\",\"message\":\"Unauthorized.\",\"docs_url\":\"https:\\\/\\\/docs.subsig.com\\\/errors\\\/unauthorized\",\"request_id\":\"59236191-44ef-4ab7-b2c7-acae8c37d895\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "GET api\/v1\/ai-visibility\/topics",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/ai-visibility\/topics",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/ai-visibility\/topics"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-request-id",
                                    "value": "32d32f0d-b949-47a7-b4ee-706454e30a96"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"error\":{\"code\":\"unauthorized\",\"message\":\"Unauthorized.\",\"docs_url\":\"https:\\\/\\\/docs.subsig.com\\\/errors\\\/unauthorized\",\"request_id\":\"32d32f0d-b949-47a7-b4ee-706454e30a96\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "GET api\/v1\/ai-visibility\/prompts",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/ai-visibility\/prompts",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/ai-visibility\/prompts"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-request-id",
                                    "value": "fb5734a9-b59c-444f-9624-0e1ce910644b"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"error\":{\"code\":\"unauthorized\",\"message\":\"Unauthorized.\",\"docs_url\":\"https:\\\/\\\/docs.subsig.com\\\/errors\\\/unauthorized\",\"request_id\":\"fb5734a9-b59c-444f-9624-0e1ce910644b\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "GET api\/v1\/ai-visibility\/prompts\/{prompt}",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/ai-visibility\/prompts\/:prompt",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/ai-visibility\/prompts\/:prompt",
                            "variable": [
                                {
                                    "id": "prompt",
                                    "key": "prompt",
                                    "value": "564",
                                    "description": "The prompt."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-request-id",
                                    "value": "9603b0bc-dbc0-4841-8b72-6ea70e36af5c"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"error\":{\"code\":\"unauthorized\",\"message\":\"Unauthorized.\",\"docs_url\":\"https:\\\/\\\/docs.subsig.com\\\/errors\\\/unauthorized\",\"request_id\":\"9603b0bc-dbc0-4841-8b72-6ea70e36af5c\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Every brand tracked by AI Visibility (own brand + registered competitors), ranked, with\nvisibility %\/share-of-voice %\/average position for each \u2014 the discovery step before digging\ninto a specific brand via show() or into sentiment\/citations for it. Built on the same\nAiVisibilityBrandRankService::brandMetrics()\/AiVisibilityRanker::rankComposite() combination\nthe session-auth AiVisibilityCompetitorController::index() (Competitor tab) already uses.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/ai-visibility\/brands",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/ai-visibility\/brands"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-request-id",
                                    "value": "93ef386b-6c04-42c5-a1d6-7308b6e284a8"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"error\":{\"code\":\"unauthorized\",\"message\":\"Unauthorized.\",\"docs_url\":\"https:\\\/\\\/docs.subsig.com\\\/errors\\\/unauthorized\",\"request_id\":\"93ef386b-6c04-42c5-a1d6-7308b6e284a8\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "GET api\/v1\/ai-visibility\/overview",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/ai-visibility\/overview",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/ai-visibility\/overview"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-request-id",
                                    "value": "7da1cf55-1913-4403-a15c-f6d2c6f74430"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"error\":{\"code\":\"unauthorized\",\"message\":\"Unauthorized.\",\"docs_url\":\"https:\\\/\\\/docs.subsig.com\\\/errors\\\/unauthorized\",\"request_id\":\"7da1cf55-1913-4403-a15c-f6d2c6f74430\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Detail for a single brand tracked by AI Visibility: own brand or a specific competitor,\nresolved by name against the SAME ai_visibility_brands-backed set index() draws its\ncompetitors list from. The 404 below says so explicitly rather than leaving the caller to\nguess why a name wasn't found.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/ai-visibility\/brand",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/ai-visibility\/brand"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-request-id",
                                    "value": "58bd3bf8-f29f-4ad3-8e11-fd98fadcc9cb"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"error\":{\"code\":\"unauthorized\",\"message\":\"Unauthorized.\",\"docs_url\":\"https:\\\/\\\/docs.subsig.com\\\/errors\\\/unauthorized\",\"request_id\":\"58bd3bf8-f29f-4ad3-8e11-fd98fadcc9cb\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "GET api\/v1\/ai-visibility\/platforms",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/ai-visibility\/platforms",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/ai-visibility\/platforms"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-request-id",
                                    "value": "926b8bec-4859-4ab6-86cf-73df513401e9"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"error\":{\"code\":\"unauthorized\",\"message\":\"Unauthorized.\",\"docs_url\":\"https:\\\/\\\/docs.subsig.com\\\/errors\\\/unauthorized\",\"request_id\":\"926b8bec-4859-4ab6-86cf-73df513401e9\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "GET api\/v1\/ai-visibility\/sentiment",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/ai-visibility\/sentiment",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/ai-visibility\/sentiment"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-request-id",
                                    "value": "67e50fff-e461-44b8-9668-556678c03ebf"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"error\":{\"code\":\"unauthorized\",\"message\":\"Unauthorized.\",\"docs_url\":\"https:\\\/\\\/docs.subsig.com\\\/errors\\\/unauthorized\",\"request_id\":\"67e50fff-e461-44b8-9668-556678c03ebf\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "GET api\/v1\/ai-visibility\/citations",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/ai-visibility\/citations",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/ai-visibility\/citations"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-request-id",
                                    "value": "865aa301-3553-4b57-a479-282b6c97e039"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"error\":{\"code\":\"unauthorized\",\"message\":\"Unauthorized.\",\"docs_url\":\"https:\\\/\\\/docs.subsig.com\\\/errors\\\/unauthorized\",\"request_id\":\"865aa301-3553-4b57-a479-282b6c97e039\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "GET api\/v1\/ai-visibility\/status",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/ai-visibility\/status",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/ai-visibility\/status"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-request-id",
                                    "value": "cd967501-0453-4af9-b139-734fc11d49df"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"error\":{\"code\":\"unauthorized\",\"message\":\"Unauthorized.\",\"docs_url\":\"https:\\\/\\\/docs.subsig.com\\\/errors\\\/unauthorized\",\"request_id\":\"cd967501-0453-4af9-b139-734fc11d49df\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "GET api\/v1\/agent-reports",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/agent-reports",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/agent-reports"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-request-id",
                                    "value": "8fd5e405-1d4d-4d4f-8684-b488fc96ef54"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"error\":{\"code\":\"unauthorized\",\"message\":\"Unauthorized.\",\"docs_url\":\"https:\\\/\\\/docs.subsig.com\\\/errors\\\/unauthorized\",\"request_id\":\"8fd5e405-1d4d-4d4f-8684-b488fc96ef54\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "GET api\/v1\/agent-reports\/{run_id}",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/agent-reports\/:run_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/agent-reports\/:run_id",
                            "variable": [
                                {
                                    "id": "run_id",
                                    "key": "run_id",
                                    "value": "17",
                                    "description": "The ID of the run."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-request-id",
                                    "value": "14cea592-93af-4fa1-9aa2-b895aa01179c"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"error\":{\"code\":\"unauthorized\",\"message\":\"Unauthorized.\",\"docs_url\":\"https:\\\/\\\/docs.subsig.com\\\/errors\\\/unauthorized\",\"request_id\":\"14cea592-93af-4fa1-9aa2-b895aa01179c\"}}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "External",
            "description": "\nTrusted external onboarding (API key): create a verified user and complete onboarding in one request.",
            "item": [
                {
                    "name": "Create User And Complete Claim Onboarding",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/external\/claim-onboarding",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/external\/claim-onboarding"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"John Doe\",\"email\":\"john@example.com\",\"organisation_name\":\"Acme Inc\",\"product_name\":\"Acme CRM\",\"product_website\":\"https:\\\/\\\/acme.com\",\"product_logo\":\"https:\\\/\\\/cdn.example.com\\\/logo.png\"}"
                        },
                        "description": "Creates a user (or reuses an existing one), then either:\n- completes onboarding, or\n- if a matching non-competitor project already exists under the user account, skips onboarding\n  and returns a magic link for direct sign-in flow.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"message\": \"Onboarding completed successfully.\",\n  \"token\": \"1|abc123...\",\n  \"magic_link\": \"https:\/\/subsig-frontend.vercel.app\/login?qid=1%7Cabc123...&is_claim_profile=1&org_id=550e8400-e29b-41d4-a716-446655440000\",\n  \"data\": {\n    \"organisation_uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"product_uuid\": \"660e8400-e29b-41d4-a716-446655440001\"\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"message\": \"Unauthorized.\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"Provided organisation does not match the existing claimed profile context.\",\n  \"errors\": {\n    \"organisation_name\": [\"Organisation does not match existing profile project.\"]\n  }\n}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Google Analytics Integration",
            "description": "\nOrg-scoped via the `X-Organisation-Id` header (see ResolveOrganisation middleware), same\npattern as the Slack integration -- no organisation_uuid path segment, $request->organisation\nis already resolved and access-checked by the time these methods run.",
            "item": [
                {
                    "name": "Connect Google Analytics Account",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/integrations\/google-analytics\/connect",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/integrations\/google-analytics\/connect"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"code\":\"4\\\/0Ab_...\",\"redirect_uri\":\"architecto\"}"
                        },
                        "description": "Exchanges an authorization code (obtained by the frontend's own OAuth flow) for tokens and\ncreates or updates the connection. Supports multiple Google accounts per organisation --\na second call with a different account creates a second connection, not a collision.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\"data\": {\"id\": \"...\", \"account_email\": \"user@example.com\", \"status\": \"connected\", \"connected_at\": \"...\", \"selected_property\": null}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List Google Analytics Connections",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/integrations\/google-analytics\/connections",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/integrations\/google-analytics\/connections"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "No properties included -- lazy-loaded separately per connection when its row is expanded.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List GA4 Properties For A Connection",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/integrations\/google-analytics\/connections\/:connection\/properties",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/integrations\/google-analytics\/connections\/:connection\/properties",
                            "variable": [
                                {
                                    "id": "connection",
                                    "key": "connection",
                                    "value": "architecto",
                                    "description": "The connection's uuid."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Fetched live from Google on first row-expand, briefly cached after (see\nGoogleAnalyticsService::listProperties()). Not eagerly included in the connections list.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\": [{\"id\": \"properties\/123\", \"name\": \"Subsig - GA4\", \"domain\": \"subscribed.fyi\", \"sessions_per_month\": 12400, \"matches_site\": true}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Select GA4 Property For A Connection",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/integrations\/google-analytics\/connections\/:connection\/property",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/integrations\/google-analytics\/connections\/:connection\/property",
                            "variable": [
                                {
                                    "id": "connection",
                                    "key": "connection",
                                    "value": "architecto",
                                    "description": "The connection's uuid."
                                }
                            ]
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"property_id\":\"architecto\"}"
                        },
                        "description": "Validated against the connection's own real property list -- a customer can only select a\nproperty their own connected account actually has. Historical rows already collected under\na previously selected property are never reassigned by changing this.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\": {\"id\": \"...\", \"account_email\": \"...\", \"status\": \"connected\", \"connected_at\": \"...\", \"selected_property\": {\"id\": \"properties\/123\", \"name\": \"Subsig - GA4\"}}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Disconnect Google Analytics Account",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/integrations\/google-analytics\/connections\/:connection",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/integrations\/google-analytics\/connections\/:connection",
                            "variable": [
                                {
                                    "id": "connection",
                                    "key": "connection",
                                    "value": "architecto",
                                    "description": "The connection's uuid."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Best-effort revoke on Google's side, then removes the connection regardless of whether the\nrevoke call succeeds.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "{}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Home",
            "description": "\nFeeds the standalone Recommendations page, AI-Visibility-only. All the actual signal-gathering\nand recommendation logic lives in AiVisibilityRecommendationService, shared by nothing else, so\nthis stays a thin request\/response adapter.",
            "item": [
                {
                    "name": "GET api\/organisations\/{organisation_uuid}\/agents\/recommendations",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/agents\/recommendations",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/agents\/recommendations",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "The Recommendations page's top stat-card row (High priority \/ Open recommendations \/\nCompleted this month \/ AI readiness score). Pools Off-Page's Engage + Editorial cards and\nOn-Page's cards (Technical isn't included: its checks are a pass\/fail audit, not\nDone\/Decline task-state cards -- see recommendationsForTab()'s 'technical' branch). Always\na full, uncapped pull (limit: PHP_INT_MAX) since every card needs counting, not just the\nfirst page a tab would normally show.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/agents\/recommendations\/summary",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/agents\/recommendations\/summary",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Off-Page\/On-Page\/Technical recommendation tabs -- see\ndocs\/zerorank-style-recommendations-plan.md. Separate from recommendations() above: that\nendpoint serves the existing flat trend-insight list (visibility drop, content-gap, etc),\nthis one serves the new tabbed, task-tracked cards. 'off_page' (Phase 2) and 'on_page'\n(Phase 3) are built; 'technical' is reserved by the route's tab constraint but returns 501\nuntil Phase 4 lands, rather than a misleading empty list.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/agents\/recommendations\/:tab",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/agents\/recommendations\/:tab",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "tab",
                                    "key": "tab",
                                    "value": "off_page%7Con_page%7Ctechnical",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 404,
                            "body": "{\n    \"message\": \"The route api\/organisations\/2958b10e-6a80-4903-868f-79b048b5e0c4\/agents\/recommendations\/off_page|on_page|technical could not be found.\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "ZeroRank's per-domain \"Sources\" table, shown when a card in the Off-Page sidebar is\nselected. Same cache\/501 shape as recommendationsForTab() above.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/agents\/recommendations\/:tab\/sources",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/agents\/recommendations\/:tab\/sources",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "tab",
                                    "key": "tab",
                                    "value": "off_page%7Con_page%7Ctechnical",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 404,
                            "body": "{\n    \"message\": \"The route api\/organisations\/2958b10e-6a80-4903-868f-79b048b5e0c4\/agents\/recommendations\/off_page|on_page|technical\/sources could not be found.\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "One domain's actionable cards (thread-specific, plus a subreddit-specific one for\nreddit.com) -- see AiVisibilityOffPageRecommendationService::cardsForDomain(). Same\ncache\/501 shape as recommendationSources() above.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/agents\/recommendations\/:tab\/action-cards",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/agents\/recommendations\/:tab\/action-cards",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "tab",
                                    "key": "tab",
                                    "value": "off_page%7Con_page%7Ctechnical",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 404,
                            "body": "{\n    \"message\": \"The route api\/organisations\/2958b10e-6a80-4903-868f-79b048b5e0c4\/agents\/recommendations\/off_page|on_page|technical\/action-cards could not be found.\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "ZeroRank's \"Top Subreddits\" panel -- only ever non-empty for a reddit.com domain. Same\ncache\/501 shape as recommendationSources() above.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/agents\/recommendations\/:tab\/subreddits",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/agents\/recommendations\/:tab\/subreddits",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "tab",
                                    "key": "tab",
                                    "value": "off_page%7Con_page%7Ctechnical",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 404,
                            "body": "{\n    \"message\": \"The route api\/organisations\/2958b10e-6a80-4903-868f-79b048b5e0c4\/agents\/recommendations\/off_page|on_page|technical\/subreddits could not be found.\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "\"Who AI recommends from X\" stacked bar -- own-brand vs named competitors vs \"Others\", for\none Off-Page domain. Off-Page only (On-Page\/Technical have no equivalent chart in the\ndesign), same cache\/501 shape as recommendationSubreddits() above.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/agents\/recommendations\/:tab\/who-recommends",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/agents\/recommendations\/:tab\/who-recommends",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "tab",
                                    "key": "tab",
                                    "value": "off_page%7Con_page%7Ctechnical",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 404,
                            "body": "{\n    \"message\": \"The route api\/organisations\/2958b10e-6a80-4903-868f-79b048b5e0c4\/agents\/recommendations\/off_page|on_page|technical\/who-recommends could not be found.\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "On-Page's \"Phrases, themes and domains\" panel -- bundles all three into one response since\nthe frontend always needs them together for the selected content type. Off-Page\/Technical\nhave no equivalent, same 501 shape as the other tab-scoped endpoints.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/agents\/recommendations\/:tab\/content-insights",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/agents\/recommendations\/:tab\/content-insights",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "tab",
                                    "key": "tab",
                                    "value": "off_page%7Con_page%7Ctechnical",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 404,
                            "body": "{\n    \"message\": \"The route api\/organisations\/2958b10e-6a80-4903-868f-79b048b5e0c4\/agents\/recommendations\/off_page|on_page|technical\/content-insights could not be found.\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Technical tab's \"Re-check\" button -- forces a fresh site audit, bypassing the 24h cache.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/agents\/recommendations\/:tab\/recheck",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/agents\/recommendations\/:tab\/recheck",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "tab",
                                    "key": "tab",
                                    "value": "off_page%7Con_page%7Ctechnical",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Write-shaped (an on-demand, potentially slow re-crawl of the org's own site via PageSpeed\nInsights + several Http::get() calls), so requires manage access like updateRecommendation\nTaskStatus() below, not just view access.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Marks one Off-Page\/On-Page\/Technical recommendation card Done\/Declined\/Todo -- see\nAiVisibilityRecommendationTaskStateService's docblock for why \"todo\" deletes rather than\nstores a row. Write action (changes state other users with access to this org would also\nsee), so this requires manage access, not just view access.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/agents\/recommendations\/:tab\/status",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/agents\/recommendations\/:tab\/status",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "tab",
                                    "key": "tab",
                                    "value": "off_page%7Con_page%7Ctechnical",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"item_key\":\"b\",\"status\":\"architecto\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Invites",
            "description": "\nAPIs for managing invites",
            "item": [
                {
                    "name": "Validate Invite",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invites\/validate\/:token",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invites\/validate\/:token",
                            "variable": [
                                {
                                    "id": "token",
                                    "key": "token",
                                    "value": "abc123def456...",
                                    "description": "The invite token."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Validate an invite token and return the associated email if the invite is valid.\nAlso returns whether a user account already exists for the invite email,\nso the frontend can route to login vs signup.\nThis endpoint is public and does not require authentication.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"email\": \"user@example.com\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Invite not found.\"\n}",
                            "name": "Invite not found"
                        },
                        {
                            "header": [],
                            "code": 410,
                            "body": "{\n  \"message\": \"This invite has expired.\"\n}",
                            "name": "Invite expired"
                        },
                        {
                            "header": [],
                            "code": 410,
                            "body": "{\n  \"message\": \"This invite is no longer valid.\"\n}",
                            "name": "Invite no longer valid"
                        }
                    ]
                },
                {
                    "name": "Accept Invite (Existing User)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invites\/accept-invite",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invites\/accept-invite"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"token\":\"eEtgjrcdtubjCu4817MfGiimvC2DQLBgaI7LpY1g5kdDMK5wJlQank7ZJ6PWurmb\"}"
                        },
                        "description": "Accept an invitation as an already-registered, authenticated user.\nThe authenticated user's email must match the invite email.\nThe user will be added to the organisation or project specified in the invite."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Invite accepted successfully.\",\n  \"data\": {\n    \"organisation\": {\n      \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n      \"name\": \"Acme Inc\"\n    }\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"This invite was sent to a different email address.\",\n  \"errors\": {\n    \"email\": [\"The invite email does not match your account email.\"]\n  }\n}",
                            "name": "Email mismatch"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Invite not found.\",\n  \"errors\": {\n    \"token\": [\"The invite token is invalid or does not exist.\"]\n  }\n}",
                            "name": "Token not found"
                        },
                        {
                            "header": [],
                            "code": 410,
                            "body": "{\n  \"message\": \"Invite has expired.\",\n  \"errors\": {\n    \"token\": [\"This invite has expired. Please request a new invitation.\"]\n  }\n}",
                            "name": "Invite expired"
                        },
                        {
                            "header": [],
                            "code": 410,
                            "body": "{\n  \"message\": \"Invite has already been accepted.\",\n  \"errors\": {\n    \"token\": [\"This invite has already been accepted.\"]\n  }\n}",
                            "name": "Invite already accepted"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"You are already a member of this organisation.\",\n  \"errors\": {\n    \"organisation\": [\"You are already a member of this organisation.\"]\n  }\n}",
                            "name": "Already a member"
                        }
                    ]
                },
                {
                    "name": "List Invites",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invites",
                            "query": [
                                {
                                    "key": "organisation_id",
                                    "value": "550e8400-e29b-41d4-a716-446655440000",
                                    "description": "Optional. Organisation UUID to list invites for. If omitted, organisation is taken from X-Organisation-Id header or the user's current organisation.",
                                    "disabled": false
                                },
                                {
                                    "key": "project_id",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "Optional. Filter invites by project UUID.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/invites?organisation_id=550e8400-e29b-41d4-a716-446655440000&project_id=660e8400-e29b-41d4-a716-446655440001"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Get invites based on context:\n- Organisation level (no project_id): Returns all organisation invites + all project invites for the organisation\n- Project level (with project_id): Returns only invites for the specified project"
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "[\n  {\n    \"id\": 1,\n    \"email\": \"user@example.com\",\n    \"type\": \"organisation\",\n    \"status\": \"pending\",\n    \"expires_at\": \"2025-12-31T10:00:00.000000Z\",\n    \"organisation_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"organisation\": {\n      \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n      \"name\": \"Acme Corp\"\n    },\n    \"project_id\": null,\n    \"project\": null,\n    \"inviter\": {\n      \"name\": \"John Admin\",\n      \"email\": \"admin@acme.com\"\n    },\n    \"created_at\": \"2025-12-24T10:00:00.000000Z\",\n    \"updated_at\": \"2025-12-24T10:00:00.000000Z\"\n  },\n  {\n    \"id\": 2,\n    \"email\": \"developer@example.com\",\n    \"type\": \"project\",\n    \"status\": \"pending\",\n    \"expires_at\": \"2025-12-31T10:00:00.000000Z\",\n    \"organisation_id\": null,\n    \"organisation\": null,\n    \"project_id\": \"660e8400-e29b-41d4-a716-446655440001\",\n    \"project\": {\n      \"uuid\": \"660e8400-e29b-41d4-a716-446655440001\",\n      \"name\": \"My Product\"\n    },\n    \"inviter\": {\n      \"name\": \"John Admin\",\n      \"email\": \"admin@acme.com\"\n    },\n    \"created_at\": \"2025-12-24T10:00:00.000000Z\",\n    \"updated_at\": \"2025-12-24T10:00:00.000000Z\"\n  }\n]",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"You do not have access to this project.\"\n}",
                            "name": "No access to project"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"You do not have access to this organisation.\"\n}",
                            "name": "No access to organisation"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Project not found.\"\n}",
                            "name": "Project not found"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Organisation not found.\"\n}",
                            "name": "Organisation not found"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"No organisation context found.\",\n  \"errors\": {\n    \"organisation\": [\"Please select an organisation or set current organisation.\"]\n  }\n}",
                            "name": "No organisation context"
                        }
                    ]
                },
                {
                    "name": "Create Invite",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invites",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invites"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"email\":\"user@example.com\",\"type\":\"organisation\",\"organisation_id\":\"550e8400-e29b-41d4-a716-446655440000\",\"project_id\":\"660e8400-e29b-41d4-a716-446655440001\"}"
                        },
                        "description": "Create a new invite for a user to join an organisation or project.\nFor organisation invites, the organisation is determined from the provided organisation UUID."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"message\": \"Invite created successfully.\",\n  \"data\": {\n    \"id\": 1,\n    \"email\": \"user@example.com\",\n    \"type\": \"organisation\",\n    \"status\": \"pending\",\n    \"token\": \"abc123...\",\n    \"expires_at\": \"2025-12-31T10:00:00.000000Z\",\n    \"organisation_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"project_id\": null,\n    \"created_at\": \"2025-12-24T10:00:00.000000Z\",\n    \"updated_at\": \"2025-12-24T10:00:00.000000Z\"\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"You are not permitted to send invites at this time.\"\n}",
                            "name": "Inviter not whitelisted"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"No organisation context found.\",\n  \"errors\": {\n    \"organisation\": [\"Please select an organisation or set current organisation.\"]\n  }\n}",
                            "name": "No organisation context"
                        }
                    ]
                },
                {
                    "name": "Delete Invite",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/invites\/:invite_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/invites\/:invite_id",
                            "variable": [
                                {
                                    "id": "invite_id",
                                    "key": "invite_id",
                                    "value": "1",
                                    "description": "The invite ID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Delete an invite. Only the inviter or organisation owners can delete invites."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Invite deleted successfully.\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"You are not authorized to delete this invite.\"\n}",
                            "name": "Not authorized"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Invite not found.\"\n}",
                            "name": "Invite not found"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"No organisation context found.\",\n  \"errors\": {\n    \"organisation\": [\"Please select an organisation or set current organisation.\"]\n  }\n}",
                            "name": "No organisation context"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Links",
            "description": "\nAPIs for managing project links",
            "item": [
                {
                    "name": "List Project Links",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/projects\/:project_uuid\/links",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/projects\/:project_uuid\/links",
                            "variable": [
                                {
                                    "id": "project_uuid",
                                    "key": "project_uuid",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The project UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Get all links associated with a specific project."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\n      \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n      \"platform\": \"g2\",\n      \"url\": \"https:\/\/g2.com\/products\/acme\",\n      \"enabled\": true,\n      \"created_at\": \"2026-01-22T10:00:00.000000Z\",\n      \"updated_at\": \"2026-01-22T10:00:00.000000Z\"\n    }\n  ]\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"You do not have access to this project.\"\n}",
                            "name": "No Access"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Project not found.\"\n}",
                            "name": "Project Not Found"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Onboarding",
            "description": "\nAPIs for user onboarding flow",
            "item": [
                {
                    "name": "Complete Onboarding",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/onboarding",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/onboarding"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"organisation_name\":\"Acme Inc\",\"product_name\":\"Acme CRM\",\"identity_source\":\"website\",\"product_website\":\"https:\\\/\\\/acme.com\",\"product_logo\":\"https:\\\/\\\/cdn.brandfetch.io\\\/acme.com\\\/fallback\\\/lettermark\\\/icon?c=BRANDFETCH_CLIENT_ID\",\"social_profiles\":[{\"platform\":\"instagram\",\"url\":\"https:\\\/\\\/instagram.com\\\/acme\"}],\"threshold_consumption_date\":\"last_14_days. Allowed: last_14_days, last_3_months, last_6_months, last_12_months, last_2_years, last_3_years, all_time\"}"
                        },
                        "description": "Create an organisation and project in a single step during onboarding.\nThe authenticated user becomes the organisation owner."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"message\": \"Onboarding completed successfully.\",\n  \"data\": {\n    \"organisation_uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"product_uuid\": \"660e8400-e29b-41d4-a716-446655440001\",\n    \"organisation\": {\n      \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n      \"name\": \"Acme Inc\",\n      \"website\": \"https:\/\/acme.com\",\n      \"threshold_consumption_date\": \"2026-05-11\"\n    },\n    \"project\": {\n      \"uuid\": \"660e8400-e29b-41d4-a716-446655440001\",\n      \"product_name\": \"Acme CRM\",\n      \"product_website\": \"https:\/\/acme.com\",\n      \"product_logo\": \"https:\/\/cdn.brandfetch.io\/acme.com\/fallback\/lettermark\/icon?c=BRANDFETCH_CLIENT_ID\"\n    }\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The organisation name field is required.\",\n  \"errors\": {\n    \"organisation_name\": [\"The organisation name field is required.\"]\n  }\n}",
                            "name": "Validation error"
                        }
                    ]
                },
                {
                    "name": "Update Onboarding",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/onboarding",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/onboarding"
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"organisation_name\":\"Acme Inc\",\"product_name\":\"Acme CRM\",\"identity_source\":\"website\",\"product_website\":\"https:\\\/\\\/acme.com\",\"product_logo\":\"https:\\\/\\\/cdn.brandfetch.io\\\/acme.com\\\/fallback\\\/lettermark\\\/icon?c=BRANDFETCH_CLIENT_ID\",\"social_profiles\":[{\"platform\":\"instagram\",\"url\":\"https:\\\/\\\/instagram.com\\\/acme\"}],\"threshold_consumption_date\":\"last_6_months\"}"
                        },
                        "description": "Update the current organisation and project for the authenticated user."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Onboarding updated successfully.\",\n  \"data\": {\n    \"organisation\": {\n      \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n      \"name\": \"Acme Inc\",\n      \"website\": \"https:\/\/acme.com\",\n      \"threshold_consumption_date\": \"2026-02-25\"\n    },\n    \"project\": {\n      \"uuid\": \"660e8400-e29b-41d4-a716-446655440001\",\n      \"product_name\": \"Acme CRM\",\n      \"product_website\": \"https:\/\/acme.com\",\n      \"product_logo\": \"https:\/\/cdn.brandfetch.io\/acme.com\/fallback\/lettermark\/icon?c=BRANDFETCH_CLIENT_ID\"\n    }\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"No organisation or project found for the current user.\"\n}",
                            "name": "No organisation or project found"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The organisation name field is required.\",\n  \"errors\": {\n    \"organisation_name\": [\"The organisation name field is required.\"]\n  }\n}",
                            "name": "Validation error"
                        }
                    ]
                },
                {
                    "name": "Search Google Business\/Maps listings",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/onboarding\/google-places\/search",
                            "query": [
                                {
                                    "key": "query",
                                    "value": "Aura+Bangkok+Clinic+Asok",
                                    "description": "The search text.",
                                    "disabled": false
                                },
                                {
                                    "key": "region",
                                    "value": "TH",
                                    "description": "Optional ISO 3166-1 alpha-2 region code to bias results.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/onboarding\/google-places\/search?query=Aura+Bangkok+Clinic+Asok&region=TH"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"query\":\"b\",\"region\":\"ng\"}"
                        },
                        "description": "Returns candidate Places for a picker UI, given a free-text query (e.g. a business name)."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"place_id\":\"ChIJ...\",\"name\":\"Aura Bangkok Clinic Asok\",\"formatted_address\":\"Exchange Tower, Bangkok, Thailand\",\"types\":[\"medical_clinic\"]}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Resolve a pasted Google Maps\/Place link",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/onboarding\/google-places\/resolve-url",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/onboarding\/google-places\/resolve-url"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"url\":\"https:\\\/\\\/www.google.com\\\/maps\\\/place\\\/Aura+Bangkok+Clinic\\\/@13.7,100.5,17z\"}"
                        },
                        "description": "For the \"paste a link\" flow (same input as Instagram\/LinkedIn\/etc.) -- detects a Google\nMaps\/Place URL, resolves it to a real business via Text Search + Place Details, and returns\nthe same shape as show() for the frontend to autofill Brand Name \/ switch to Website mode."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"place_id\":\"ChIJ...\",\"name\":\"Aura Bangkok Clinic Asok\",\"primary_type\":\"medical_clinic\",\"types\":[\"medical_clinic\"],\"formatted_address\":\"Exchange Tower, Bangkok, Thailand\",\"website_uri\":\"https:\/\/aurabangkokclinic.com\",\"photo_names\":[]}}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"message\":\"Could not resolve a business from that link.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Address autocomplete for the \"Add location\" modal",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/onboarding\/google-places\/autocomplete",
                            "query": [
                                {
                                    "key": "input",
                                    "value": "350+5th+Ave",
                                    "description": "The partial address\/place text typed so far.",
                                    "disabled": false
                                },
                                {
                                    "key": "country",
                                    "value": "US",
                                    "description": "ISO 3166-1 alpha-2 country code to scope results to.",
                                    "disabled": false
                                },
                                {
                                    "key": "session_token",
                                    "value": "3fa4159e-...",
                                    "description": "Caller-generated token shared across this typeahead session and the one details() call that follows it (Google's session-based billing).",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/onboarding\/google-places\/autocomplete?input=350+5th+Ave&country=US&session_token=3fa4159e-..."
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"input\":\"b\",\"country\":\"ng\",\"session_token\":\"z\"}"
                        },
                        "description": "Search-as-you-type predictions for a location's physical address, scoped to one country.\nDistinct from search() above (which finds a whole business listing) -- this is purely an\naddress\/place-name typeahead for onboarding's multi-location \"Add location\" flow."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":[{\"place_id\":\"ChIJ...\",\"primary_text\":\"350 5th Ave\",\"secondary_text\":\"New York, NY, USA\"}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Address details for a picked autocomplete suggestion",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/onboarding\/google-places\/details",
                            "query": [
                                {
                                    "key": "place_id",
                                    "value": "ChIJ...",
                                    "description": "The Place ID from the autocomplete results.",
                                    "disabled": false
                                },
                                {
                                    "key": "session_token",
                                    "value": "3fa4159e-...",
                                    "description": "The same session token used for the preceding autocomplete() call.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/onboarding\/google-places\/details?place_id=ChIJ...&session_token=3fa4159e-..."
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"place_id\":\"b\",\"session_token\":\"n\"}"
                        },
                        "description": "Resolves one chosen autocomplete prediction to its full address\/coordinates, for the\nonboarding \"Add location\" modal. Must be called with the SAME session_token as the\nautocomplete() call that produced $placeId."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"place_id\":\"ChIJ...\",\"formatted_address\":\"350 5th Ave, New York, NY 10118, USA\",\"city\":\"New York\",\"region\":\"New York\",\"country_code\":\"US\",\"lat\":40.7484,\"lng\":-73.9857}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get Google Business\/Maps listing details",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/onboarding\/google-places\/:placeId",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/onboarding\/google-places\/:placeId",
                            "variable": [
                                {
                                    "id": "placeId",
                                    "key": "placeId",
                                    "value": "ChIJ...",
                                    "description": "The Place ID from the search results."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Resolves one chosen Place's details for prefilling the onboarding form."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"place_id\":\"ChIJ...\",\"name\":\"Aura Bangkok Clinic Asok\",\"primary_type\":\"medical_clinic\",\"types\":[\"medical_clinic\"],\"formatted_address\":\"Exchange Tower, Bangkok, Thailand\",\"website_uri\":\"https:\/\/aurabangkokclinic.com\",\"photo_names\":[]}}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Organisations",
            "description": "\nAPIs for managing organisations",
            "item": [
                {
                    "name": "Supported Regions",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/supported-regions",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/supported-regions"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Curated list of region\/country codes usable for an organisation's `region` (and, by\nfallback, a prompt's `country` -- see AiVisibilityPromptController::store()). Backs the\nfrontend's region\/country picker so it never offers a value the backend would then reject.\nSee config('ai_visibility.supported_regions')'s docblock for why this list isn't simply\n\"every ISO 3166-1 alpha-2 code\" or restricted to any one provider's own narrower support.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\"value\": \"US\", \"label\": \"United States\"},\n    {\"value\": \"GB\", \"label\": \"United Kingdom\"}\n  ],\n  \"provider_region_exceptions\": {\n    \"anthropic\": [\"IE\", \"LU\"],\n    \"deepseek\": [\"IE\", \"LU\"]\n  }\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "List Organisations",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Get all organisations the authenticated user belongs to."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\n      \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n      \"name\": \"Acme Inc\",\n      \"website\": \"https:\/\/acme.com\",\n      \"role\": \"organisation_owner\",\n      \"created_at\": \"2025-12-10T10:00:00.000000Z\",\n      \"updated_at\": \"2025-12-10T10:00:00.000000Z\"\n    }\n  ]\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create Organisation",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Acme Inc\",\"website\":\"https:\\\/\\\/acme.com\",\"region\":\"architecto\",\"language\":\"ngzmiy\"}"
                        },
                        "description": "Create a new organisation. The authenticated user becomes the admin."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"message\": \"Organisation created successfully.\",\n  \"data\": {\n    \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"name\": \"Acme Inc\",\n    \"website\": \"https:\/\/acme.com\",\n    \"role\": \"organisation_owner\",\n    \"created_at\": \"2025-12-10T10:00:00.000000Z\",\n    \"updated_at\": \"2025-12-10T10:00:00.000000Z\"\n  }\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get Organisation",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:uuid",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:uuid",
                            "variable": [
                                {
                                    "id": "uuid",
                                    "key": "uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "organisation",
                                    "key": "organisation",
                                    "value": "550e8400-e29b-41d4-a716-446655440000",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Get details of a specific organisation."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"name\": \"Acme Inc\",\n    \"website\": \"https:\/\/acme.com\",\n    \"role\": \"organisation_owner\",\n    \"created_at\": \"2025-12-10T10:00:00.000000Z\",\n    \"updated_at\": \"2025-12-10T10:00:00.000000Z\"\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"You do not have access to this organisation.\"\n}",
                            "name": "No access"
                        }
                    ]
                },
                {
                    "name": "Update Organisation",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:uuid",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:uuid",
                            "variable": [
                                {
                                    "id": "uuid",
                                    "key": "uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "organisation",
                                    "key": "organisation",
                                    "value": "550e8400-e29b-41d4-a716-446655440000",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Acme Corp\",\"identity_source\":\"architecto\",\"website\":\"https:\\\/\\\/acme.com\",\"social_profiles\":[{\"platform\":\"instagram\",\"url\":\"https:\\\/\\\/instagram.com\\\/acme\"}]}"
                        },
                        "description": "Update an organisation's details. Requires admin role."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Organisation updated successfully.\",\n  \"data\": {\n    \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"name\": \"Acme Corp\",\n    \"website\": \"https:\/\/acme.com\",\n    \"role\": \"organisation_owner\",\n    \"created_at\": \"2025-12-10T10:00:00.000000Z\",\n    \"updated_at\": \"2025-12-10T10:00:00.000000Z\"\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"You must be an organisation admin to perform this action.\"\n}",
                            "name": "Not admin"
                        }
                    ]
                },
                {
                    "name": "Delete Organisation",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:uuid",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:uuid",
                            "variable": [
                                {
                                    "id": "uuid",
                                    "key": "uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "organisation",
                                    "key": "organisation",
                                    "value": "550e8400-e29b-41d4-a716-446655440000",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Delete an organisation and its projects (cascaded). Requires organisation owner role.\nCannot delete the authenticated user's current (primary) workspace; switch first."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Organisation deleted successfully.\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"You do not have access to this organisation.\"\n}",
                            "name": "No access"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"You must be an organisation admin to perform this action.\"\n}",
                            "name": "Not owner"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"You cannot delete your current workspace. Switch to another organisation first.\"\n}",
                            "name": "Current workspace"
                        }
                    ]
                },
                {
                    "name": "Switch Current Organisation",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/switch",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/switch",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "organisation",
                                    "key": "organisation",
                                    "value": "550e8400-e29b-41d4-a716-446655440000",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Set the user's current organisation for subsequent requests."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Switched to organisation successfully.\",\n  \"data\": {\n    \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"name\": \"Acme Inc\"\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"You do not have access to this organisation.\"\n}",
                            "name": "No access"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Platforms",
            "description": "\nAPIs for managing platforms",
            "item": [
                {
                    "name": "List All Platforms",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/platforms",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/platforms"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Get all platforms."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "[\n  {\n    \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"name\": \"G2\",\n    \"created_at\": \"2026-01-08T10:00:00.000000Z\",\n    \"updated_at\": \"2026-01-08T10:00:00.000000Z\"\n  }\n]",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create Platform",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/platforms",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/platforms"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"G2\"}"
                        },
                        "description": "Create a new platform."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"message\": \"Platform created successfully.\",\n  \"data\": {\n    \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"name\": \"G2\",\n    \"created_at\": \"2026-01-08T10:00:00.000000Z\",\n    \"updated_at\": \"2026-01-08T10:00:00.000000Z\"\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The name has already been taken.\",\n  \"errors\": {\n    \"name\": [\"The name has already been taken.\"]\n  }\n}",
                            "name": "Validation Error"
                        }
                    ]
                },
                {
                    "name": "Update Platform",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/platforms\/:uuid",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/platforms\/:uuid",
                            "variable": [
                                {
                                    "id": "uuid",
                                    "key": "uuid",
                                    "value": "550e8400-e29b-41d4-a716-446655440000",
                                    "description": "The platform UUID."
                                }
                            ]
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Capterra\"}"
                        },
                        "description": "Update a platform's details."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Platform updated successfully.\",\n  \"data\": {\n    \"uuid\": \"550e8400-e29b-41d4-a716-446655440000\",\n    \"name\": \"Capterra\",\n    \"created_at\": \"2026-01-08T10:00:00.000000Z\",\n    \"updated_at\": \"2026-01-08T10:30:00.000000Z\"\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Platform not found.\"\n}",
                            "name": "Not Found"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The name has already been taken.\",\n  \"errors\": {\n    \"name\": [\"The name has already been taken.\"]\n  }\n}",
                            "name": "Validation Error"
                        }
                    ]
                },
                {
                    "name": "Delete Platform",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/platforms\/:uuid",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/platforms\/:uuid",
                            "variable": [
                                {
                                    "id": "uuid",
                                    "key": "uuid",
                                    "value": "550e8400-e29b-41d4-a716-446655440000",
                                    "description": "The platform UUID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Delete a platform."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Platform deleted successfully.\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"Platform not found.\"\n}",
                            "name": "Not Found"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Projects",
            "description": "\nAPIs for managing projects within organisations",
            "item": [
                {
                    "name": "List Projects",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/projects",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/projects",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "organisation",
                                    "key": "organisation",
                                    "value": "550e8400-e29b-41d4-a716-446655440000",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Get all projects in an organisation that the user has access to."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\n      \"uuid\": \"660e8400-e29b-41d4-a716-446655440001\",\n      \"product_name\": \"Acme App\",\n      \"product_website\": \"https:\/\/acme.com\",\n      \"created_at\": \"2025-12-10T10:00:00.000000Z\",\n      \"updated_at\": \"2025-12-10T10:00:00.000000Z\"\n    }\n  ]\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Create Project",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/projects",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/projects",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "organisation",
                                    "key": "organisation",
                                    "value": "550e8400-e29b-41d4-a716-446655440000",
                                    "description": "The organisation UUID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"product_name\":\"Acme App\",\"product_website\":\"https:\\\/\\\/acme.com\",\"product_logo\":\"https:\\\/\\\/cdn.brandfetch.io\\\/acme.com\\\/fallback\\\/lettermark\\\/icon?c=BRANDFETCH_CLIENT_ID\"}"
                        },
                        "description": "Create a new project in an organisation. Requires organisation admin role."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"message\": \"Project created successfully.\",\n  \"data\": {\n    \"uuid\": \"660e8400-e29b-41d4-a716-446655440001\",\n    \"product_name\": \"Acme App\",\n    \"product_website\": \"https:\/\/acme.com\",\n    \"product_logo\": \"https:\/\/cdn.brandfetch.io\/acme.com\/fallback\/lettermark\/icon?c=BRANDFETCH_CLIENT_ID\",\n    \"is_competitor\": false,\n    \"created_at\": \"2025-12-10T10:00:00.000000Z\",\n    \"updated_at\": \"2025-12-10T10:00:00.000000Z\"\n  }\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get Project",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/projects\/:uuid",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/projects\/:uuid",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "uuid",
                                    "key": "uuid",
                                    "value": "b2b0131c-f2cb-42fa-ad1e-00605ce7c898",
                                    "description": ""
                                },
                                {
                                    "id": "organisation",
                                    "key": "organisation",
                                    "value": "550e8400-e29b-41d4-a716-446655440000",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "project",
                                    "key": "project",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The project UUID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Get details of a specific project."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"uuid\": \"660e8400-e29b-41d4-a716-446655440001\",\n    \"product_name\": \"Acme App\",\n    \"product_website\": \"https:\/\/acme.com\",\n    \"created_at\": \"2025-12-10T10:00:00.000000Z\",\n    \"updated_at\": \"2025-12-10T10:00:00.000000Z\"\n  }\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Update Project",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/projects\/:uuid",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/projects\/:uuid",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "uuid",
                                    "key": "uuid",
                                    "value": "b2b0131c-f2cb-42fa-ad1e-00605ce7c898",
                                    "description": ""
                                },
                                {
                                    "id": "organisation",
                                    "key": "organisation",
                                    "value": "550e8400-e29b-41d4-a716-446655440000",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "project",
                                    "key": "project",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The project UUID."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"product_name\":\"Acme App Pro\",\"product_website\":\"https:\\\/\\\/acme.com\",\"product_logo\":\"https:\\\/\\\/cdn.brandfetch.io\\\/acme.com\\\/fallback\\\/lettermark\\\/icon?c=BRANDFETCH_CLIENT_ID\"}"
                        },
                        "description": "Update a project's details. Requires organisation admin role."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Project updated successfully.\",\n  \"data\": {\n    \"uuid\": \"660e8400-e29b-41d4-a716-446655440001\",\n    \"product_name\": \"Acme App Pro\",\n    \"product_website\": \"https:\/\/acme.com\",\n    \"product_logo\": \"https:\/\/cdn.brandfetch.io\/acme.com\/fallback\/lettermark\/icon?c=BRANDFETCH_CLIENT_ID\",\n    \"is_competitor\": false,\n    \"created_at\": \"2025-12-10T10:00:00.000000Z\",\n    \"updated_at\": \"2025-12-10T10:00:00.000000Z\"\n  }\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Delete Project",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/organisations\/:organisation_uuid\/projects\/:uuid",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/organisations\/:organisation_uuid\/projects\/:uuid",
                            "variable": [
                                {
                                    "id": "organisation_uuid",
                                    "key": "organisation_uuid",
                                    "value": "2958b10e-6a80-4903-868f-79b048b5e0c4",
                                    "description": ""
                                },
                                {
                                    "id": "uuid",
                                    "key": "uuid",
                                    "value": "b2b0131c-f2cb-42fa-ad1e-00605ce7c898",
                                    "description": ""
                                },
                                {
                                    "id": "organisation",
                                    "key": "organisation",
                                    "value": "550e8400-e29b-41d4-a716-446655440000",
                                    "description": "The organisation UUID."
                                },
                                {
                                    "id": "project",
                                    "key": "project",
                                    "value": "660e8400-e29b-41d4-a716-446655440001",
                                    "description": "The project UUID."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Delete a project. Requires organisation admin role."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Project deleted successfully.\"\n}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Slack Integration",
            "description": "\nAPIs for connecting and managing Slack workspace integration",
            "item": [
                {
                    "name": "Slack OAuth Callback",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/integrations\/slack\/callback",
                            "query": [
                                {
                                    "key": "code",
                                    "value": "123456789.abcdef",
                                    "description": "The authorization code from Slack.",
                                    "disabled": false
                                },
                                {
                                    "key": "state",
                                    "value": "abc123...",
                                    "description": "The state parameter for CSRF protection.",
                                    "disabled": false
                                },
                                {
                                    "key": "error",
                                    "value": "access_denied",
                                    "description": "OAuth error if user denied access.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/integrations\/slack\/callback?code=123456789.abcdef&state=abc123...&error=access_denied"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"code\":\"architecto\",\"state\":\"ngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzsnrwtujwvlxjklqppwqbewt\",\"error\":\"architecto\"}"
                        },
                        "description": "Handles the OAuth callback from Slack after user authorization.\nExchanges the authorization code for an access token.\nThis endpoint is unauthenticated - uses cached state for auth context.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 302,
                            "body": "Redirects to \/dashboard\/notification\/overview?slack_connected=true&workspace={name}",
                            "name": "Success"
                        },
                        {
                            "header": [],
                            "code": 302,
                            "body": "Redirects to \/dashboard\/notification\/overview?slack_error={error_code}",
                            "name": "Error"
                        },
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "location",
                                    "value": "https:\/\/app.subsig.com\/dashboard\/notification\/overview?slack_error=architecto"
                                },
                                {
                                    "key": "content-type",
                                    "value": "text\/html; charset=utf-8"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 302,
                            "body": "<!DOCTYPE html>\n<html>\n    <head>\n        <meta charset=\"UTF-8\" \/>\n        <meta http-equiv=\"refresh\" content=\"0;url='https:\/\/app.subsig.com\/dashboard\/notification\/overview?slack_error=architecto'\" \/>\n\n        <title>Redirecting to https:\/\/app.subsig.com\/dashboard\/notification\/overview?slack_error=architecto<\/title>\n    <\/head>\n    <body>\n        Redirecting to <a href=\"https:\/\/app.subsig.com\/dashboard\/notification\/overview?slack_error=architecto\">https:\/\/app.subsig.com\/dashboard\/notification\/overview?slack_error=architecto<\/a>.\n    <\/body>\n<\/html>",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Initiate Slack OAuth",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/integrations\/slack\/connect",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/integrations\/slack\/connect"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Starts the OAuth flow to connect a Slack workspace.\nRedirects to Slack's authorization page."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 302,
                            "body": "Redirects to Slack OAuth page",
                            "name": "Redirect to Slack"
                        },
                        {
                            "header": [],
                            "code": 400,
                            "body": "{\n  \"error\": \"configuration\",\n  \"message\": \"Slack integration is not configured.\"\n}",
                            "name": "Not configured"
                        },
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "vary",
                                    "value": "Origin"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"Organisation context required.\"\n}",
                            "name": "No organisation"
                        }
                    ]
                },
                {
                    "name": "Get Slack Connection Status",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/integrations\/slack\/status",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/integrations\/slack\/status"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the current Slack connection status for the organisation."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"connected\": true,\n  \"team_id\": \"T123456789\",\n  \"team_name\": \"My Workspace\",\n  \"scopes\": \"chat:write,channels:read\",\n  \"connected_at\": \"2025-01-01T12:00:00Z\"\n}",
                            "name": "Connected"
                        },
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"connected\": false\n}",
                            "name": "Not connected"
                        },
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"connected\": false,\n  \"error\": \"token_invalid\",\n  \"message\": \"Slack connection needs to be re-authorized.\"\n}",
                            "name": "Invalid token"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"Organisation context required.\"\n}",
                            "name": "No organisation"
                        }
                    ]
                },
                {
                    "name": "Disconnect Slack",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/integrations\/slack\/disconnect",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/integrations\/slack\/disconnect"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Removes the Slack workspace connection for the organisation."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"success\": true,\n  \"message\": \"Slack connection removed.\"\n}",
                            "name": "Success"
                        },
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"success\": true,\n  \"message\": \"No Slack connection found.\"\n}",
                            "name": "Not connected"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"Organisation context required.\"\n}",
                            "name": "No organisation"
                        }
                    ]
                },
                {
                    "name": "List Slack Channels",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/integrations\/slack\/channels",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/integrations\/slack\/channels"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Fetches the list of channels from the connected Slack workspace."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"ok\": true,\n  \"channels\": [\n    {\"id\": \"C123456789\", \"name\": \"general\", \"is_member\": true},\n    {\"id\": \"C987654321\", \"name\": \"random\", \"is_member\": false}\n  ]\n}",
                            "name": "Success"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"ok\": false,\n  \"error\": \"not_connected\",\n  \"message\": \"Not connected to Slack.\"\n}",
                            "name": "Not connected"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"ok\": false,\n  \"error\": \"token_invalid\",\n  \"message\": \"Slack connection needs to be re-authorized.\"\n}",
                            "name": "Invalid token"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"Organisation context required.\"\n}",
                            "name": "No organisation"
                        }
                    ]
                },
                {
                    "name": "Send a message to Slack",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/integrations\/slack\/send",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/integrations\/slack\/send"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"channel_id\":\"b\",\"status\":\"architecto\",\"process_id\":\"architecto\",\"created_at\":\"architecto\",\"data\":[]}"
                        },
                        "description": "Accepts a payload in either Reviews format (data = array of reviews) or\nMentions format (data = object with posts and\/or comments) and posts\na Block Kit message to the given Slack channel via the notification dispatcher."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"ok\": true, \"message\": \"Message sent.\"}",
                            "name": "Success"
                        },
                        {
                            "header": [],
                            "code": 400,
                            "body": "{\"ok\": false, \"error\": \"...\", \"message\": \"...\"}",
                            "name": "Slack API error"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\"ok\": false, \"error\": \"not_connected\", \"message\": \"Not connected to Slack.\"}",
                            "name": "Not connected"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"message\": \"Invalid payload: data must be reviews array or mentions object.\"}",
                            "name": "Invalid payload"
                        },
                        {
                            "header": [],
                            "code": 500,
                            "body": "{\"message\": \"Failed to send message.\"}",
                            "name": "Server error"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Subscriptions",
            "description": "\nAPIs for managing subscriptions",
            "item": [
                {
                    "name": "List Subscription Plans",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/subscription-plans",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/subscription-plans"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Get all available subscription plans."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\n      \"id\": 1,\n      \"stripe_price_id\": \"price_internal_free\",\n      \"name\": \"Free\",\n      \"description\": \"Post-trial free tier\",\n      \"amount\": 0,\n      \"currency\": \"usd\",\n      \"interval\": \"month\",\n      \"plan_threshold\": {}\n    }\n  ]\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get Threshold Usage",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/subscriptions\/threshold-usage",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/subscriptions\/threshold-usage"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns plan soft limits in `threshold` and `limits.*_soft`.\nUsage is all-time across organisations owned by the billing user.\nPer-platform breakdowns are uncapped; they may sum above the top-level totals."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"threshold\": {\n      \"competitor_brands_limit\": 3,\n      \"history_months\": 6,\n      \"refresh_interval\": \"daily\",\n      \"users_limit\": null,\n      \"workspaces_limit\": null,\n      \"data_export_type\": null,\n      \"ai_visibility_prompts_limit\": 20\n    },\n    \"limits\": {\n      \"ai_visibility_prompts_soft\": 20\n    },\n    \"usage\": {\n      \"mentions\": 1000,\n      \"mentions_per_platform\": {\"reddit\": 200},\n      \"competitor_brands\": 0,\n      \"ai_visibility_prompts\": 7,\n      \"workspaces\": 1,\n      \"users\": 1\n    },\n    \"usage_period\": {\n      \"scope\": \"all_time\",\n      \"start\": \"2025-01-01\",\n      \"end\": \"2026-04-02\"\n    },\n    \"trial_days_left\": 3\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"You do not have access to this organisation.\"\n}",
                            "name": "No organisation access"
                        }
                    ]
                },
                {
                    "name": "POST api\/subscriptions\/checkout",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/subscriptions\/checkout",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/subscriptions\/checkout"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"plan_id\":16,\"success_url\":\"http:\\\/\\\/bailey.com\\\/\",\"cancel_url\":\"http:\\\/\\\/rempel.com\\\/sunt-nihil-accusantium-harum-mollitia\",\"addons\":{\"ai_visibility_prompts\":{\"price\":23,\"quantity\":64}}}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Update Subscription Add-ons",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/subscriptions\/addons",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/subscriptions\/addons"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"addons\":{\"ai_visibility_prompts\":{\"price\":14000,\"quantity\":1000}},\"proration_date\":1715000000}"
                        },
                        "description": "Update add-ons on the organisation's current active subscription.\nSupports optional `proration_date` to control Stripe proration timing."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"id\": 1,\n    \"stripe_subscription_id\": \"sub_1234567890\",\n    \"status\": \"active\",\n    \"addons\": [\n      {\n        \"id\": 10,\n        \"product_id\": \"prod_ai_visibility_prompts_123\",\n        \"stripe_price_id\": \"price_inline_ai_visibility_prompts_1\",\n        \"price\": 2000,\n        \"ai_visibility_prompts_quantity\": 1,\n        \"status\": \"active\"\n      }\n    ]\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"You must be an organisation owner to manage subscriptions.\"\n}",
                            "name": "Not owner or no organisation access"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"No active subscription found for this organisation.\"\n}",
                            "name": "No active subscription"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The given data was invalid.\"\n}",
                            "name": "Validation error"
                        }
                    ]
                },
                {
                    "name": "Preview Add-on Proration",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/subscriptions\/addons\/preview-proration",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/subscriptions\/addons\/preview-proration"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"addons\":{\"ai_visibility_prompts\":{\"price\":14000,\"quantity\":1000}},\"proration_date\":1715000000}"
                        },
                        "description": "Preview Stripe prorated invoice impact for add-on changes\nwithout applying the subscription update."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"amount_due\": 2400,\n    \"subtotal\": 2400,\n    \"total\": 2400,\n    \"currency\": \"usd\",\n    \"proration_lines\": [\n      {\n        \"id\": \"il_proration_123\",\n        \"amount\": 2400,\n        \"currency\": \"usd\",\n        \"description\": \"Proration adjustment\"\n      }\n    ]\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"You must be an organisation owner to manage subscriptions.\"\n}",
                            "name": "Not owner or no organisation access"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"No active subscription found for this organisation.\"\n}",
                            "name": "No active subscription"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The given data was invalid.\"\n}",
                            "name": "Validation error"
                        }
                    ]
                },
                {
                    "name": "AI Platforms Pricing",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/subscriptions\/ai-platforms\/pricing",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/subscriptions\/ai-platforms\/pricing"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Cents-per-prompt rate for each AI platform add-on, keyed in the frontend's own provider\nvocabulary (GetMoreAiPlatformsModal.tsx multiplies this by the org's current AI Visibility\nPrompts quantity to render its preview) -- this is now also the exact table\nrepriceAiPlatformsAddons() uses server-side to compute the real charge in updateAddons(),\nso the preview and the actual charge can never drift out of sync."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"openai\": 0, \"perplexity\": 0, \"google_ai_overviews\": 0, \"bing_copilot\": 0,\n    \"google_ai_mode\": 43, \"gemini\": 161, \"claude\": 142, \"deepseek\": 12, \"grok\": 120\n  }\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get Current Subscription",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/subscriptions\/current",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/subscriptions\/current"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Get the current subscription for the organisation."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"id\": 1,\n    \"stripe_subscription_id\": \"sub_1234567890\",\n    \"status\": \"active\",\n    \"current_period_start\": \"2025-12-01T00:00:00.000000Z\",\n    \"current_period_end\": \"2026-01-01T00:00:00.000000Z\",\n    \"plan\": {\n      \"id\": 1,\n      \"stripe_price_id\": \"price_1234567890\",\n      \"description\": \"Professional features\",\n      \"name\": \"Pro Plan\",\n      \"amount\": 2999,\n      \"currency\": \"usd\",\n      \"interval\": \"month\",\n      \"features\": [\"Feature 1\", \"Feature 2\"]\n    }\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"You do not have access to this organisation.\"\n}",
                            "name": "No organisation access"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"No subscription found for this organisation.\"\n}",
                            "name": "No subscription"
                        }
                    ]
                },
                {
                    "name": "Refresh subscription from Stripe",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/subscriptions\/refresh",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/subscriptions\/refresh"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Fetch the organisation's current subscription from Stripe and sync to the database.\nUse after the user returns from the billing portal so subscription and threshold data are up to date."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"id\": 1,\n    \"stripe_subscription_id\": \"sub_xxx\",\n    \"status\": \"active\",\n    \"current_period_start\": \"2025-12-01T00:00:00.000000Z\",\n    \"current_period_end\": \"2026-01-01T00:00:00.000000Z\",\n    \"canceled_at\": null,\n    \"ends_at\": null,\n    \"plan\": { \"id\": 1, \"stripe_price_id\": \"price_xxx\", \"name\": \"Pro - Monthly\", ... }\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{ \"message\": \"You must be an organisation owner to manage subscriptions.\" }",
                            "name": "Not owner"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{ \"message\": \"No active subscription found for this organisation.\" }",
                            "name": "No subscription"
                        }
                    ]
                },
                {
                    "name": "Get Billing Portal URL",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/subscriptions\/billing-portal",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/subscriptions\/billing-portal"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"return_url\":\"https:\\\/\\\/app.example.com\\\/settings\\\/billing\"}"
                        },
                        "description": "Create a Stripe Billing Portal session for the organisation's customer.\nThe portal allows customers to manage their subscription, update payment methods,\nview invoices, and cancel their subscription."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"portal_url\": \"https:\/\/billing.stripe.com\/p\/session\/...\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"You must be an organisation owner to manage subscriptions.\"\n}",
                            "name": "Not owner"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"No active subscription found for this organisation.\"\n}",
                            "name": "No subscription"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Utilities",
            "description": "",
            "item": [
                {
                    "name": "Validate URL Reachability",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/validate-url",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/validate-url"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"url\":\"https:\\\/\\\/example.com\"}"
                        },
                        "description": "Validates URL format and checks if the URL is reachable."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"valid\": true,\n  \"status_code\": 200,\n  \"message\": \"URL is valid and reachable\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"valid\": false,\n  \"message\": \"Invalid URL format\"\n}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Webhook Tools",
            "description": "\nUtility endpoints for webhook signature testing.",
            "item": [
                {
                    "name": "Generate webhook signature",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/tools\/webhook-signatures",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/tools\/webhook-signatures"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"target\":\"social\",\"raw_body\":\"{\\\"status\\\":\\\"SUCCESS\\\",\\\"process_id\\\":76445,\\\"created_at\\\":\\\"2026-01-19 14:23:11\\\",\\\"link_url\\\":\\\"https:\\\/\\\/www.trustpilot.com\\\/review\\\/example.com\\\",\\\"data\\\":[]}\"}"
                        },
                        "description": "Generate `X-Scraper-Signature` using HMAC SHA256 from the exact `raw_body` string you send.\nUse this for Swagger testing before calling scrape webhook endpoints."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"signature\": \"8e1b1b0d7c6c1b3b8c9a...\"\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The given data was invalid.\",\n  \"errors\": {\n    \"target\": [\"The selected target is invalid.\"]\n  }\n}",
                            "name": ""
                        }
                    ]
                }
            ]
        }
    ],
    "auth": {
        "type": "bearer",
        "bearer": [
            {
                "key": "key",
                "type": "string"
            }
        ]
    }
}