{
  "headers": [
    {
      "source": "/api/site-tag/(event|conversion|heatmap|rum|page-seen|page-links|nav-structure|seo-monitor|issue-evidence|ai-session|schema|audit-overlay)",
      "headers": [
        { "key": "Access-Control-Allow-Origin", "value": "*" },
        { "key": "Access-Control-Allow-Methods", "value": "POST, OPTIONS" },
        { "key": "Access-Control-Allow-Headers", "value": "Content-Type" },
        { "key": "Access-Control-Max-Age", "value": "86400" }
      ]
    },
    {
      "source": "/api/collect",
      "headers": [
        { "key": "Access-Control-Allow-Origin", "value": "*" },
        { "key": "Access-Control-Allow-Methods", "value": "POST, OPTIONS" },
        { "key": "Access-Control-Allow-Headers", "value": "Content-Type" },
        { "key": "Access-Control-Max-Age", "value": "86400" }
      ]
    },
    {
      "source": "/api/public-audit",
      "headers": [
        { "key": "Access-Control-Allow-Origin", "value": "*" },
        { "key": "Access-Control-Allow-Methods", "value": "POST, OPTIONS" },
        { "key": "Access-Control-Allow-Headers", "value": "Content-Type" },
        { "key": "Access-Control-Max-Age", "value": "86400" }
      ]
    }
  ],
  "functions": {
    "src/app/api/technical-audit/run/route.ts": { "maxDuration": 800 },
    "src/app/api/admin/audits/**": { "maxDuration": 800 },
    "src/app/api/admin/audits/*/*/route.ts": { "maxDuration": 800 },
    "src/app/api/public-audit/**": { "maxDuration": 800 },
    "src/app/api/cron/cleanup-stale-audits/route.ts": { "maxDuration": 60 },
    "src/app/api/site-tag/analytics/route.ts": { "maxDuration": 60 },
    "src/app/api/site-tag/confidence/route.ts": { "maxDuration": 60 },
    "src/app/api/dashboard/route.ts": { "maxDuration": 60 },
    "src/app/api/conversion-intelligence/route.ts": { "maxDuration": 60 },
    "src/app/api/site-tag/route.ts": { "maxDuration": 60 },
    "src/app/api/site-tag/heartbeat/route.ts": { "maxDuration": 10 },
    "src/app/api/source-status/route.ts": { "maxDuration": 60 },
    "src/app/api/brands/[brandId]/external-converters/route.ts": { "maxDuration": 60 },
    "src/app/api/brands/[brandId]/health-alert/route.ts": { "maxDuration": 60 },
    "src/app/api/cron/site-tag-rollup/route.ts": { "maxDuration": 300 },
    "src/app/api/site-audit/[runId]/process/route.ts": { "maxDuration": 800 }
  },
  "crons": [
    {
      "path": "/api/cron/cleanup-stale-audits",
      "schedule": "*/2 * * * *"
    },
    {
      "path": "/api/cron/refresh-tokens",
      "schedule": "*/45 * * * *"
    },
    {
      "path": "/api/cron/integration-sync",
      "schedule": "0 5 * * *"
    },
    {
      "path": "/api/cron/platform-snapshot",
      "schedule": "0 2 * * *"
    },
    {
      "path": "/api/cron/rank-check",
      "schedule": "0 6 * * *"
    },
    {
      "path": "/api/cron/signal-detection",
      "schedule": "0 */6 * * *"
    },
    {
      "path": "/api/cron/signals-site-tag-ai",
      "schedule": "0 */4 * * *"
    },
    {
      "path": "/api/cron/signals-competitor-regional",
      "schedule": "0 */6 * * *"
    },
    {
      "path": "/api/cron/data-retention",
      "schedule": "0 3 * * *"
    },
    {
      "path": "/api/cron/brand-sitemap-crawl",
      "schedule": "0 4 * * *"
    },
    {
      "path": "/api/cron/check-alerts",
      "schedule": "0 */3 * * *"
    },
    {
      "path": "/api/cron/competitor-crawl",
      "schedule": "0 7 * * *"
    },
    {
      "path": "/api/cron/compute-benchmarks",
      "schedule": "0 8 * * 0"
    },
    {
      "path": "/api/cron/email-reports",
      "schedule": "0 9 * * 1"
    },
    {
      "path": "/api/cron/track-outcomes",
      "schedule": "0 10 * * *"
    },
    {
      "path": "/api/cron/paid-media-rebuild",
      "schedule": "0 3 * * *"
    },
    {
      "path": "/api/cron/industry-intel",
      "schedule": "0 11 * * 1"
    },
    {
      "path": "/api/cron/ai-visibility",
      "schedule": "0 12 * * *"
    },
    {
      "path": "/api/cron/backlink-sync",
      "schedule": "0 8 * * *"
    },
    {
      "path": "/api/cron/gbp-sync",
      "schedule": "0 6 * * *"
    },
    {
      "path": "/api/cron/ai-citation-check",
      "schedule": "0 9 * * 1"
    },
    {
      "path": "/api/cron/ai-strategy-recommendations",
      "schedule": "0 11 * * *"
    },
    {
      "path": "/api/cron/nango-sync",
      "schedule": "0 6 * * *"
    },
    {
      "path": "/api/cron/precompute-dashboard",
      "schedule": "*/30 * * * *"
    },
    {
      "path": "/api/cron/dedup-conversions",
      "schedule": "0 * * * *"
    },
    {
      "path": "/api/cron/competitor-discovery-queue",
      "schedule": "0 0 1 1 *"
    },
    {
      "path": "/api/cron/brand-health",
      "schedule": "0 * * * *"
    },
    {
      "path": "/api/cron/site-tag-rollup",
      "schedule": "0 * * * *"
    },
    {
      "path": "/api/cron/site-audit-cleanup",
      "schedule": "*/5 * * * *"
    }
  ]
}
