A management token: ds_mgmt_ followed by 40 lowercase hexadecimal characters, created by an owner in Settings → Management tokens. Opaque: send it as is, in the Authorization header only.
The site's bare domain, normalized like the console form (trimmed, lowercase). www.news-site.example and news-site.example are two different sites. A domain that is not a site of this organisation — absent, another organisation's, or not a valid domain — is 404, except on PUT /v1/sites/{domain}, which creates the site and answers 422 for an invalid domain.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"doubleshift","description":"doubleshift is an ABC (Agentic Branded Content) provider — your site serves a sponsored brand card to AI agents only, humans see the page unchanged.","colors":{"primary":"#1263A6","light":"#6EB6FF","dark":"#0274C7"},"logo":{"light":"https://mintcdn.com/doubleshift/YAZWbQ8Q5hILdsf8/logo/wordmark-light.png?fit=max\u0026auto=format\u0026n=YAZWbQ8Q5hILdsf8\u0026q=85\u0026s=d44cfae4cd4da22ccb7a4a4fcace5cc7","dark":"https://mintcdn.com/doubleshift/YAZWbQ8Q5hILdsf8/logo/wordmark-dark.png?fit=max\u0026auto=format\u0026n=YAZWbQ8Q5hILdsf8\u0026q=85\u0026s=1e810315892ab0848fdf9665ba0aa33e","href":"https://doubleshift.to"},"favicon":"https://mintcdn.com/doubleshift/YAZWbQ8Q5hILdsf8/logo/favicon.svg?fit=max\u0026auto=format\u0026n=YAZWbQ8Q5hILdsf8\u0026q=85\u0026s=abe9ea7efd9d8237bb4e9e7ffa920800","api":{"playground":{"display":"simple"},"examples":{"languages":["curl"]}},"appearance":{"default":"light"},"background":{"color":{"light":"#F0F6FE","dark":"#090D15"}},"navbar":{"primary":{"type":"button","label":"Open the console","href":"https://app.shftd2.com"}},"footer":{"links":[{"header":"doubleshift","items":[{"label":"Console","href":"https://app.shftd2.com"},{"label":"doubleshift.to","href":"https://doubleshift.to"},{"label":"Terms","href":"https://doubleshift.to/legal"},{"label":"Changelog","href":"/changelog"}]}]},"search":{"prompt":"Search the doubleshift docs…"},"seo":{"metatags":{"robots":"noindex, nofollow","googlebot":"noindex, nofollow, noarchive, nosnippet"},"indexing":"navigable","trailingSlash":false},"fonts":{"family":"Inter","source":"fonts/inter-var-latin.woff2","format":"woff2"},"icons":{"library":"lucide"},"styling":{"eyebrows":"breadcrumbs","codeblocks":{"theme":{"light":"css-variables","dark":"css-variables"}},"latex":false},"errors":{"404":{"redirect":false,"title":"Page not found","description":"That page does not exist. Start from the [documentation home](/)."}},"contextual":{"options":["copy","view","chatgpt","claude","mcp","add-mcp","download-spec"],"display":"header"},"thumbnails":{"preset":"classic","surface":"neutral"},"variables":{"edgeVersion":"1.1.4","edgeSha256":"d4db890cbf27a2da1977d3ba76e0585ab3bf7cc78111eaddc71019527114e9d1","cloudfrontKitVersion":"0.1.0-rc.3","cloudfrontKitZipSha256":"8120c973e8203cb499a06718d5a47500f281030a11139520a88ce1da12c1d7b7","cloudfrontKitManifestSha256":"7acf833bd67b0920052ed6a5b0daf084c14df6119ab3ff2e7c4ab27710ac4f34"},"markdown":{"instructions":["Publishers integrate one API: GET https://api.shftd2.com/v1/fragment?partner_id=\u003caccount id>\u0026page_url=\u003cpage URL>, called from their edge for AI-agent requests only, with the API key in the X-API-Key header, never in the query string.","A 200 carries the card. A 204 means no card: serve the page unchanged.","The management API (https://api.shftd2.com/v1/me, /v1/sites, /v1/cards, /v1/keys) is optional tooling for scripting setup. It takes its own management token (Authorization: Bearer ds_mgmt_…). Its limits (120 requests and 60 writes per minute per token) do not apply to the delivery API.","Delivery logs reach doubleshift only through direct delivery logs (POST https://logs.shftd2.com/v1/beacon with a logs token; the edge library with a logsToken is its provided client, and a custom sender may use the same endpoint) or a Cloudflare Logpush job configured with doubleshift. Otherwise doubleshift sees only its own API activity."]},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"doubleshift","hasAudioNarration":false,"actualSubdomain":"doubleshift","customDomains":["docs.shftd2.com"],"gitSource":{"type":"github","owner":"shftd2-pre","repo":"app-doubleshift","deployBranch":"main","contentDirectory":"docs-mintlify","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae3034b35bfd7dda39f7e84","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"API reference","count":25},{"language":"default","tag":"Management API","count":19},{"language":"default","tag":"Endpoints","count":18},{"language":"default","tag":"Guides","count":14},{"language":"default","tag":"Delivery API","count":4},{"language":"default","tag":"Integrate","count":4},{"language":"default","tag":"Routing rules","count":4},{"language":"default","tag":"Configure","count":3},{"language":"default","tag":"Operate","count":3},{"language":"default","tag":"Start","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('/fonts/inter-var-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('/fonts/inter-var-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/jetbrains-mono-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/jetbrains-mono-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/jetbrains-mono-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/jetbrains-mono-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}:root{--ds-fg: #1A1E24;--ds-fg-muted: #494D54;--ds-fg-meta: #676C73;--ds-accent: #1263A6;--ds-accent-hover: #0C528C;--ds-accent-text: #1263A6;--ds-on-accent: #FFFFFF;--ds-surface: #FFFFFF}.dark{--ds-fg: #F0F6FE;--ds-fg-muted: #A9AEB6;--ds-fg-meta: #898E96;--ds-surface: #1A1E24;--ds-accent: #0274C7;--ds-accent-hover: #1263A6;--ds-accent-text: #6EB6FF;--ds-on-accent: #FFFFFF}:root{--font-paper-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--mint-foreground: var(--ds-fg);--mint-background: var(--ds-surface);--mint-token-keyword: var(--ds-fg);--mint-token-function: var(--ds-fg);--mint-token-constant: var(--ds-fg);--mint-token-punctuation: var(--ds-fg-muted);--mint-token-comment: var(--ds-fg-meta);--mint-token-string: var(--ds-accent-text);--mint-token-string-expression: var(--ds-accent-text)}#content [data-component-part=\"frame-caption\"]{color:var(--ds-fg-meta)}#topbar-cta-button a{background-color:var(--ds-accent)}#topbar-cta-button a:hover{opacity:1;background-color:var(--ds-accent-hover)}#topbar-cta-button a span{color:var(--ds-on-accent)}img.sidebar-group-icon{width:1rem;height:1rem}html.dark img[src*=\"/icons/\"]{filter:invert(1) hue-rotate(180deg) brightness(1.09)}#content table code{font-size:0.8125rem}html:not(.dark) :is(.card,.callout),html.dark :is(.card,.callout){background-color:var(--ds-surface)}"}],"page":{"pagePath":"management-reference/routing-rules/list-a-sites-routing-rules","slug":"/management-reference/routing-rules/list-a-sites-routing-rules","pageMetadata":{"title":"List a site's routing rules","description":"Every routing rule of the site, in byte order of path, then match mode. Complete: no pagination.","deprecated":null,"version":null,"openapi":"/openapi-management.json get /v1/sites/{domain}/routes","href":"/management-reference/routing-rules/list-a-sites-routing-rules","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Every routing rule of the site, in byte order of path, then match mode. Complete: no pagination.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"css-variables","dark":"css-variables"}},"config":{},"pageMetadata":{"title":"List a site's routing rules","description":"Every routing rule of the site, in byte order of path, then match mode. Complete: no pagination.","deprecated":null,"version":null,"openapi":"/openapi-management.json get /v1/sites/{domain}/routes","href":"/management-reference/routing-rules/list-a-sites-routing-rules","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"listRoutes","tags":["Routing rules"],"summary":"List a site's routing rules","description":"Every routing rule of the site, in byte order of path, then match mode. Complete: no pagination.","responses":{"200":"66b9eb61-2a22-438f-a70a-728cd4a44c9a","401":"01d64e0d-eb42-40eb-b280-c7a30e3a463a","404":"8ef7c8ca-bc1e-4a82-8b40-c96ba4d96abe","429":"40023b06-6582-43bf-bd2e-5d6083555be1","500":"198cf4de-634b-45dc-a576-965161b897c4"},"x-codeSamples":[{"lang":"bash","label":"curl","source":"curl -sS \"https://api.shftd2.com/v1/sites/news-site.example/routes\" \\\n -H \"Authorization: Bearer $DS_MANAGEMENT_TOKEN\""}],"method":"get","type":"path","servers":["0bdf2788-74ac-44ce-9447-9dda4464209b"],"security":["cfbcce85-3f9c-4d58-a587-5ae96330e4e1"],"path":"/v1/sites/{domain}/routes","baseUrlOptions":["https://api.shftd2.com"],"title":"List a site's routing rules","codeSamples":[{"label":"curl","lang":"bash","source":"curl -sS \"https://api.shftd2.com/v1/sites/news-site.example/routes\" \\\n -H \"Authorization: Bearer $DS_MANAGEMENT_TOKEN\""}],"requestExampleLanguages":["bash"],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"ca22b3b2-47ee-4a39-b452-89018c740241":{"name":"domain","in":"path","required":true,"description":"The site's bare domain, normalized like the console form (trimmed, lowercase). `www.news-site.example` and `news-site.example` are two different sites. A domain that is not a site of this organisation — absent, another organisation's, or not a valid domain — is `404`, except on `PUT /v1/sites/{domain}`, which creates the site and answers `422` for an invalid domain.","schema":{"type":"string","isRequired":true,"description":"The site's bare domain, normalized like the console form (trimmed, lowercase). `www.news-site.example` and `news-site.example` are two different sites. A domain that is not a site of this organisation — absent, another organisation's, or not a valid domain — is `404`, except on `PUT /v1/sites/{domain}`, which creates the site and answers `422` for an invalid domain.","uniqueKey":"","typeLabel":"string"},"example":"news-site.example"}},"responses":{"66b9eb61-2a22-438f-a70a-728cd4a44c9a":{"description":"The rules.","headers":{"Cache-Control":{"description":"On every response of this API.","schema":{"type":"string","const":"private, no-store"}},"RateLimit-Policy":{"description":"On every response of this API: 120 requests and 60 writes per 60 seconds per token (IETF draft ratelimit-headers syntax). No remaining count is sent.","schema":{"type":"string","const":"\"token\";q=120;w=60, \"write\";q=60;w=60"}}},"content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"type":"object","description":"A routing rule of a site: a path and a match mode that resolve to one fragment of the site.","required":["id","path_prefix","match","fragment_ref","fragment_id"],"properties":{"id":{"type":"string","description":"The rule id. `PUT …/routes` gives every rule a new id.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].id","typeLabel":"string"},"path_prefix":{"type":"string","description":"The canonical path: lowercase, starting and ending with `/`, each segment percent-encoded (`Actualite/` is stored as `/actualite/`).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].path_prefix","typeLabel":"string"},"match":{"type":"string","enum":["exact","prefix"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].match","typeLabel":"enum\u003cstring>"},"fragment_ref":{"oneOf":[{"type":"string","description":"The target fragment reference, or null when that fragment has no reference.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].fragment_ref.oneOf.0","typeLabel":"string"},{"type":"null","description":"The target fragment reference, or null when that fragment has no reference.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].fragment_ref.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].fragment_ref","typeLabel":"string | null"},"fragment_id":{"type":"string","description":"The target fragment id (`frg_…`).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].fragment_id","typeLabel":"string"}},"example":{"id":"00000000-0000-4000-8000-000000000001","path_prefix":"/politics/","match":"prefix","fragment_ref":"/1234567/news-site/organic/politics","fragment_id":"frg_examplefr1"},"uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"\\items","typeLabel":"object[]"}},"example":{"items":[{"id":"00000000-0000-4000-8000-000000000001","path_prefix":"/politics/","match":"prefix","fragment_ref":"/1234567/news-site/organic/politics","fragment_id":"frg_examplefr1"},{"id":"00000000-0000-4000-8000-000000000002","path_prefix":"/sports/","match":"prefix","fragment_ref":"/1234567/news-site/organic/sports","fragment_id":"frg_examplefr2"}]},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"items":[{"id":"00000000-0000-4000-8000-000000000001","path_prefix":"/politics/","match":"prefix","fragment_ref":"/1234567/news-site/organic/politics","fragment_id":"frg_examplefr1"},{"id":"00000000-0000-4000-8000-000000000002","path_prefix":"/sports/","match":"prefix","fragment_ref":"/1234567/news-site/organic/sports","fragment_id":"frg_examplefr2"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"01d64e0d-eb42-40eb-b280-c7a30e3a463a":{"description":"`missing_token`: no `Authorization: Bearer` header. `invalid_token`: anything else that is not a live management token of an organisation — malformed, unknown, revoked or expired, or a delivery API key (`ds_live_…`). Cookies are never read. Carries `WWW-Authenticate: Bearer realm=\"doubleshift\"`.","headers":{"Cache-Control":{"description":"On every response of this API.","schema":{"type":"string","const":"private, no-store"}},"RateLimit-Policy":{"description":"On every response of this API: 120 requests and 60 writes per 60 seconds per token (IETF draft ratelimit-headers syntax). No remaining count is sent.","schema":{"type":"string","const":"\"token\";q=120;w=60, \"write\";q=60;w=60"}},"WWW-Authenticate":{"description":"On every 401.","schema":{"type":"string","const":"Bearer realm=\"doubleshift\""}}},"content":{"application/json":{"schema":{"type":"object","description":"Every error of this API. Like every response, it carries `Cache-Control: private, no-store` and `RateLimit-Policy: \"token\";q=120;w=60, \"write\";q=60;w=60`.","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["unsupported_media_type","body_too_large","invalid_json","unknown_field","missing_token","invalid_token","platform_card","not_found","conflict","validation","rate_limited","internal"],"description":"Stable, machine-readable code. Branch on it, not on `message`.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation, the console wording where the console has one. May change.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"field":{"type":"string","description":"The field at fault, nested ones included (`routes[3].path_prefix`, `fragments[0].ref`). Present on `unknown_field`, `validation` and `conflict`; absent otherwise.","uniqueKey":"error.field","typeLabel":"string"},"retry_after":{"type":"integer","const":60,"description":"Seconds to wait. Present on `rate_limited` only.","uniqueKey":"error.retry_after","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"example":{"error":{"code":"validation","message":"Choose a fragment of this site","field":"routes[0].ref"}},"uniqueKey":"","typeLabel":"object"},"examples":{"missing_token":{"title":"missing_token","value":{"error":{"code":"missing_token","message":"missing management token — send \"Authorization: Bearer ds_mgmt_…\""}}},"invalid_token":{"title":"invalid_token","value":{"error":{"code":"invalid_token","message":"invalid management token"}}}},"exampleType":"examples"}},"exampleType":"examples"},"8ef7c8ca-bc1e-4a82-8b40-c96ba4d96abe":{"description":"No site of this organisation has this domain.","headers":{"Cache-Control":{"description":"On every response of this API.","schema":{"type":"string","const":"private, no-store"}},"RateLimit-Policy":{"description":"On every response of this API: 120 requests and 60 writes per 60 seconds per token (IETF draft ratelimit-headers syntax). No remaining count is sent.","schema":{"type":"string","const":"\"token\";q=120;w=60, \"write\";q=60;w=60"}}},"content":{"application/json":{"schema":{"type":"object","description":"Every error of this API. Like every response, it carries `Cache-Control: private, no-store` and `RateLimit-Policy: \"token\";q=120;w=60, \"write\";q=60;w=60`.","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["unsupported_media_type","body_too_large","invalid_json","unknown_field","missing_token","invalid_token","platform_card","not_found","conflict","validation","rate_limited","internal"],"description":"Stable, machine-readable code. Branch on it, not on `message`.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation, the console wording where the console has one. May change.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"field":{"type":"string","description":"The field at fault, nested ones included (`routes[3].path_prefix`, `fragments[0].ref`). Present on `unknown_field`, `validation` and `conflict`; absent otherwise.","uniqueKey":"error.field","typeLabel":"string"},"retry_after":{"type":"integer","const":60,"description":"Seconds to wait. Present on `rate_limited` only.","uniqueKey":"error.retry_after","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"example":{"error":{"code":"validation","message":"Choose a fragment of this site","field":"routes[0].ref"}},"uniqueKey":"","typeLabel":"object"},"examples":{"not_found":{"title":"not_found","value":{"error":{"code":"not_found","message":"not found"}}}},"exampleType":"examples"}},"exampleType":"examples"},"40023b06-6582-43bf-bd2e-5d6083555be1":{"description":"A limit was reached (per token: 120 requests or 60 writes per minute; per IP address: 30 failed authentications or 600 requests presenting a well-formed token per minute). Nothing was written. Carries `Retry-After: 60`, and `retry_after: 60` in the body: wait that long before retrying.","headers":{"Cache-Control":{"description":"On every response of this API.","schema":{"type":"string","const":"private, no-store"}},"RateLimit-Policy":{"description":"On every response of this API: 120 requests and 60 writes per 60 seconds per token (IETF draft ratelimit-headers syntax). No remaining count is sent.","schema":{"type":"string","const":"\"token\";q=120;w=60, \"write\";q=60;w=60"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","const":60}}},"content":{"application/json":{"schema":{"type":"object","description":"Every error of this API. Like every response, it carries `Cache-Control: private, no-store` and `RateLimit-Policy: \"token\";q=120;w=60, \"write\";q=60;w=60`.","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["unsupported_media_type","body_too_large","invalid_json","unknown_field","missing_token","invalid_token","platform_card","not_found","conflict","validation","rate_limited","internal"],"description":"Stable, machine-readable code. Branch on it, not on `message`.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation, the console wording where the console has one. May change.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"field":{"type":"string","description":"The field at fault, nested ones included (`routes[3].path_prefix`, `fragments[0].ref`). Present on `unknown_field`, `validation` and `conflict`; absent otherwise.","uniqueKey":"error.field","typeLabel":"string"},"retry_after":{"type":"integer","const":60,"description":"Seconds to wait. Present on `rate_limited` only.","uniqueKey":"error.retry_after","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"example":{"error":{"code":"validation","message":"Choose a fragment of this site","field":"routes[0].ref"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"rate_limited","message":"rate limited — retry after 60 seconds","retry_after":60}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"rate_limited","message":"rate limited — retry after 60 seconds","retry_after":60}}}},"exampleType":"examples"}},"exampleType":"examples"},"198cf4de-634b-45dc-a576-965161b897c4":{"description":"An unexpected server error. The message is fixed and carries no detail.","headers":{"Cache-Control":{"description":"On every response of this API.","schema":{"type":"string","const":"private, no-store"}},"RateLimit-Policy":{"description":"On every response of this API: 120 requests and 60 writes per 60 seconds per token (IETF draft ratelimit-headers syntax). No remaining count is sent.","schema":{"type":"string","const":"\"token\";q=120;w=60, \"write\";q=60;w=60"}}},"content":{"application/json":{"schema":{"type":"object","description":"Every error of this API. Like every response, it carries `Cache-Control: private, no-store` and `RateLimit-Policy: \"token\";q=120;w=60, \"write\";q=60;w=60`.","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["unsupported_media_type","body_too_large","invalid_json","unknown_field","missing_token","invalid_token","platform_card","not_found","conflict","validation","rate_limited","internal"],"description":"Stable, machine-readable code. Branch on it, not on `message`.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation, the console wording where the console has one. May change.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"field":{"type":"string","description":"The field at fault, nested ones included (`routes[3].path_prefix`, `fragments[0].ref`). Present on `unknown_field`, `validation` and `conflict`; absent otherwise.","uniqueKey":"error.field","typeLabel":"string"},"retry_after":{"type":"integer","const":60,"description":"Seconds to wait. Present on `rate_limited` only.","uniqueKey":"error.retry_after","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"example":{"error":{"code":"validation","message":"Choose a fragment of this site","field":"routes[0].ref"}},"uniqueKey":"","typeLabel":"object"},"examples":{"internal":{"title":"internal","value":{"error":{"code":"internal","message":"internal error"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"cfbcce85-3f9c-4d58-a587-5ae96330e4e1":{"bearerAuth":{"type":"http","scheme":"bearer","description":"A management token: `ds_mgmt_` followed by 40 lowercase hexadecimal characters, created by an owner in **Settings → Management tokens**. Opaque: send it as is, in the `Authorization` header only.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"0bdf2788-74ac-44ce-9447-9dda4464209b":{"url":"https://api.shftd2.com","description":"The machine host. The management API exists on this host only; there is no alias."}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"A management token: `ds_mgmt_` followed by 40 lowercase hexadecimal characters, created by an owner in **Settings → Management tokens**. Opaque: send it as is, in the `Authorization` header only.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"A management token: `ds_mgmt_` followed by 40 lowercase hexadecimal characters, created by an owner in **Settings → Management tokens**. Opaque: send it as is, in the `Authorization` header only.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi-management.json"},"subdomain":"doubleshift","siteName":"doubleshift","title":"List a site's routing rules - doubleshift","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-19T16:24:16.845Z","originalFileLocation":"management-reference/routing-rules/list-a-sites-routing-rules.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Every routing rule of the site, in byte order of path, then match mode. Complete: no pagination.\">\u003cmeta data-mint-head name=\"application-name\" content=\"doubleshift\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"noindex, nofollow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/doubleshift/vp1FM_qvVKl9Vi48/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/doubleshift/vp1FM_qvVKl9Vi48/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/doubleshift/vp1FM_qvVKl9Vi48/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/doubleshift/vp1FM_qvVKl9Vi48/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/doubleshift/vp1FM_qvVKl9Vi48/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/doubleshift/vp1FM_qvVKl9Vi48/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/doubleshift/vp1FM_qvVKl9Vi48/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/doubleshift/vp1FM_qvVKl9Vi48/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/doubleshift/vp1FM_qvVKl9Vi48/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"List a site\u0026#x27;s routing rules - doubleshift\">\u003cmeta data-mint-head property=\"og:description\" content=\"Every routing rule of the site, in byte order of path, then match mode. Complete: no pagination.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"doubleshift\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.shftd2.com/management-reference/routing-rules/list-a-sites-routing-rules\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://doubleshift.mintlify.site/_mintlify/api/og/v2?division=Routing+rules\u0026amp;title=List+a+site%27s+routing+rules\u0026amp;description=Every+routing+rule+of+the+site%2C+in+byte+order+of+path%2C+then+match+mode.+Complete%3A+no+pagination.\u0026amp;theme=4810b5752deb301ba5abb43d\u0026amp;signature=42cdc8324bcee81950828572459d040f771c1689aa4db8cbe943d4bf27838263\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"List a site\u0026#x27;s routing rules - doubleshift\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Every routing rule of the site, in byte order of path, then match mode. Complete: no pagination.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://doubleshift.mintlify.site/_mintlify/api/og/v2?division=Routing+rules\u0026amp;title=List+a+site%27s+routing+rules\u0026amp;description=Every+routing+rule+of+the+site%2C+in+byte+order+of+path%2C+then+match+mode.+Complete%3A+no+pagination.\u0026amp;theme=4810b5752deb301ba5abb43d\u0026amp;signature=42cdc8324bcee81950828572459d040f771c1689aa4db8cbe943d4bf27838263\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/doubleshift/vp1FM_qvVKl9Vi48/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"doubleshift\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1263A6\">\u003cmeta data-mint-head name=\"googlebot\" content=\"noindex, nofollow, noarchive, nosnippet\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.shftd2.com/management-reference/routing-rules/list-a-sites-routing-rules\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/management-reference/routing-rules/list-a-sites-routing-rules.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.shftd2.com/#organization\",\"name\":\"doubleshift\",\"url\":\"https://docs.shftd2.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/doubleshift/YAZWbQ8Q5hILdsf8/logo/wordmark-light.png?fit=max\u0026auto=format\u0026n=YAZWbQ8Q5hILdsf8\u0026q=85\u0026s=d44cfae4cd4da22ccb7a4a4fcace5cc7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.shftd2.com#website\",\"name\":\"doubleshift\",\"url\":\"https://docs.shftd2.com\",\"publisher\":{\"@id\":\"https://docs.shftd2.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.shftd2.com/management-reference/routing-rules/list-a-sites-routing-rules#webpage\",\"url\":\"https://docs.shftd2.com/management-reference/routing-rules/list-a-sites-routing-rules\",\"name\":\"List a site's routing rules\",\"description\":\"Every routing rule of the site, in byte order of path, then match mode. Complete: no pagination.\",\"dateModified\":\"2026-10-19T16:24:16.845Z\",\"isPartOf\":{\"@id\":\"https://docs.shftd2.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.shftd2.com/management-reference/routing-rules/list-a-sites-routing-rules#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.shftd2.com/management-reference/routing-rules/list-a-sites-routing-rules#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Management API\",\"item\":\"https://docs.shftd2.com/management-api\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Endpoints\",\"item\":\"https://docs.shftd2.com/management-reference/account/get-the-tokens-organisation\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"List a site's routing rules\",\"item\":\"https://docs.shftd2.com/management-reference/routing-rules/list-a-sites-routing-rules\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.shftd2.com/management-reference/routing-rules/list-a-sites-routing-rules#apireference\",\"headline\":\"List a site's routing rules\",\"name\":\"List a site's routing rules\",\"description\":\"Every routing rule of the site, in byte order of path, then match mode. Complete: no pagination.\",\"url\":\"https://docs.shftd2.com/management-reference/routing-rules/list-a-sites-routing-rules\",\"mainEntityOfPage\":{\"@id\":\"https://docs.shftd2.com/management-reference/routing-rules/list-a-sites-routing-rules#webpage\"},\"dateModified\":\"2026-10-19T16:24:16.845Z\",\"publisher\":{\"@id\":\"https://docs.shftd2.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.shftd2.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"doubleshift\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"doubleshift","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API reference","groups":[{"group":"Delivery API","icon":"https://mintlify.s3.us-west-1.amazonaws.com/doubleshift/icons/fragment.svg","pages":[{"title":"Delivery API overview","sidebarTitle":"Overview","icon":"https://mintlify.s3.us-west-1.amazonaws.com/doubleshift/icons/read.svg","href":"/api/overview"},{"title":"Get the card for a page","deprecated":null,"version":null,"sidebarTitle":"Fragment","openapi":"/openapi.json get /v1/fragment","href":"/api/fragment"},{"title":"Card format","icon":"https://mintlify.s3.us-west-1.amazonaws.com/doubleshift/icons/card.svg","href":"/api/card-format"},{"title":"AI agents","icon":"https://mintlify.s3.us-west-1.amazonaws.com/doubleshift/icons/search.svg","href":"/api/agents"}]},{"group":"Edge library","icon":"https://mintlify.s3.us-west-1.amazonaws.com/doubleshift/icons/crosshair.svg","pages":[{"title":"doubleshift-edge reference","sidebarTitle":"Edge library","icon":"https://mintlify.s3.us-west-1.amazonaws.com/doubleshift/icons/served.svg","href":"/api/edge-library"},{"title":"Direct delivery logs API","sidebarTitle":"Delivery logs API","icon":"https://mintlify.s3.us-west-1.amazonaws.com/doubleshift/icons/reporting.svg","href":"/api/beacon"}]},{"group":"Management API","icon":"https://mintlify.s3.us-west-1.amazonaws.com/doubleshift/icons/prompt.svg","tag":"Optional","pages":[{"title":"Management API","icon":"https://mintlify.s3.us-west-1.amazonaws.com/doubleshift/icons/prompt.svg","href":"/management-api"},{"group":"Endpoints","icon":"/icons/list.svg","expanded":false,"pages":[{"group":"Organisation","pages":[{"title":"Get the token's organisation","deprecated":null,"version":null,"openapi":"/openapi-management.json get /v1/me","href":"/management-reference/account/get-the-tokens-organisation"}]},{"group":"Sites","pages":[{"title":"List sites","deprecated":null,"version":null,"openapi":"/openapi-management.json get /v1/sites","href":"/management-reference/sites/list-sites"},{"title":"Get a site","deprecated":null,"version":null,"openapi":"/openapi-management.json get /v1/sites/{domain}","href":"/management-reference/sites/get-a-site"},{"title":"Create or update a site","deprecated":null,"version":null,"openapi":"/openapi-management.json put /v1/sites/{domain}","href":"/management-reference/sites/create-or-update-a-site"}]},{"group":"Fragments","pages":[{"title":"List a site's fragments","deprecated":null,"version":null,"openapi":"/openapi-management.json get /v1/sites/{domain}/fragments","href":"/management-reference/fragments/list-a-sites-fragments"},{"title":"Create or update a fragment","deprecated":null,"version":null,"openapi":"/openapi-management.json put /v1/sites/{domain}/fragments/{ref}","href":"/management-reference/fragments/create-or-update-a-fragment"}]},{"group":"Default fragment","pages":[{"title":"Set the default fragment","deprecated":null,"version":null,"openapi":"/openapi-management.json put /v1/sites/{domain}/default-fragment","href":"/management-reference/site-default/set-the-default-fragment"},{"title":"Clear the default fragment","description":"Removes the site default: pages no rule matches then answer `204`. The fragment itself is kept. Repeatable: a site without default answers `200` too. The body is `{}`.","deprecated":null,"version":null,"openapi":"/openapi-management.json delete /v1/sites/{domain}/default-fragment","href":"/management-reference/site-default/clear-the-default-fragment"}]},{"group":"Routing rules","pages":[{"title":"List a site's routing rules","deprecated":null,"version":null,"openapi":"/openapi-management.json get /v1/sites/{domain}/routes","href":"/management-reference/routing-rules/list-a-sites-routing-rules"},{"title":"Replace all routing rules","description":"**Replaces every rule of the site** with the list sent. Rules missing from the list are deleted; `{\"routes\": []}` deletes them all. Read the current rules first.\n\nThe whole list is checked first — at most 200 rules, each path and match mode, each reference (a fragment of this site; a paused one is accepted), duplicates after canonicalization — then applied at once: on any error nothing changes. Every rule gets a new id; site and fragment ids never change.\n\nThe replacement is atomic within this request only. Nothing protects it from another client replacing the rules at the same time: the last write wins.","deprecated":null,"version":null,"openapi":"/openapi-management.json put /v1/sites/{domain}/routes","href":"/management-reference/routing-rules/replace-all-routing-rules"},{"title":"Add a routing rule","deprecated":null,"version":null,"openapi":"/openapi-management.json post /v1/sites/{domain}/routes","href":"/management-reference/routing-rules/add-a-routing-rule"},{"title":"Delete a routing rule","deprecated":null,"version":null,"openapi":"/openapi-management.json delete /v1/sites/{domain}/routes/{id}","href":"/management-reference/routing-rules/delete-a-routing-rule"}]},{"group":"Cards","pages":[{"title":"List cards","deprecated":null,"version":null,"openapi":"/openapi-management.json get /v1/cards","href":"/management-reference/cards/list-cards"}]},{"group":"Card eligibility","pages":[{"title":"List a card's eligibility","deprecated":null,"version":null,"openapi":"/openapi-management.json get /v1/cards/{id}/eligibility","href":"/management-reference/eligibility/list-a-cards-eligibility"},{"title":"Replace a card's eligibility","deprecated":null,"version":null,"openapi":"/openapi-management.json put /v1/cards/{id}/eligibility","href":"/management-reference/eligibility/replace-a-cards-eligibility"}]},{"group":"API keys","pages":[{"title":"List API keys","deprecated":null,"version":null,"openapi":"/openapi-management.json get /v1/keys","href":"/management-reference/api-keys/list-api-keys"},{"title":"Create an API key","deprecated":null,"version":null,"openapi":"/openapi-management.json post /v1/keys","href":"/management-reference/api-keys/create-an-api-key"},{"title":"Revoke an API key","deprecated":null,"version":null,"openapi":"/openapi-management.json delete /v1/keys/{id}","href":"/management-reference/api-keys/revoke-an-api-key"}]}]}]}]}]},"basePath":"","title":"List a site's routing rules - doubleshift","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-C-hEh3I2.js","utils-CnF4QiUD.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C7PVNbel.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-8ytevL2A.js","snippetPresets-BT1alx3v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-C945cI-W.js","ApiExamples-BLXC0i_W.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CyLIGI9_.js","shallow-DC0lGVIW.js","getApiPlaygroundDisplay-CgDQ85tN.js","CodeSnippet-6-I-Gpv9.js","CodeSnippets-BAk1kDdu.js","getPastedJson-B276RuWN.js","icon-BqP8etTm.js","MethodPill-DM6sbxG1.js","DuplicateIcon-PyJglOaE.js","createIcon-CMeOMAc_.js","DynamicMarkdown-BoyYAA8K.js","SectionHeading-DAYv3gvZ.js","axios-vUo_bRtp.js","Markdown-BhTTmazV.js","clsx-CR-RHrVC.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CBUH0-zX.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BmARFYNC.js"]}