A Data Feed’s primary Data Request node configures the HTTP call to your data source. This page covers what’s configurable.
HTTP methods
Method
Typical use
GET
Read a resource — the default for most Feeds
POST
Some APIs use POST with a JSON body to query (e.g. search endpoints, GraphQL)
PUT
Rare — used by APIs that require PUT for idempotent fetch operations
DELETE
Not typical for Feeds — generally you read data, you don’t delete it on the source
PATCH
Same as DELETE — rarely needed for ingestion
HEAD
Probe an endpoint for existence/headers without a body
OPTIONS
Discover CORS / allowed methods
99% of Feeds are GET. If a source requires POST (e.g. Elasticsearch _search), the Body section becomes mandatory.
Authorization
None
Basic Auth
Bearer Token
API Key
Inherit from parent
For genuinely public endpoints. Rare in enterprise security data.
Username + password combined and Base64-encoded into the Authorization: Basic ... header.
Username: api-user@yourorg.comPassword: ********
Common with on-prem appliances and legacy APIs. Encrypt the password via the lock icon.
Token sent as Authorization: Bearer <token>.
Token: ********
The most common pattern for modern APIs (GitHub, Slack, Notion, etc.). The token is treated as a secret and encrypted at rest.For tokens with short TTLs, ask Composer to add token-refresh logic — it will scaffold a separate auth Feed if needed.
A key sent either as:
A header (e.g. X-API-Key: ...)
A query parameter (e.g. ?api_key=...)
Composer asks which on setup. Provide the key name and the value:
Header name: X-API-KeyValue: ********
or
Param name: api_keyValue: ********
Available on a Detail Request — reuses the primary Data Request’s auth instead of re-configuring it. Use this whenever the detail and list endpoints are on the same API.
Encrypted secrets. Any field with a lock icon next to it gets encrypted into the tenant’s secret store when you click the lock. Encrypted values are never echoed back to Composer chat or surfaced in logs.
Common source patterns
REST API with Bearer token
The default modern API pattern:
"Connect to the GitHub API and pull all repos in our org. URL: https://api.github.com/orgs/yourorg/repos. Auth: Bearer with the PAT below. Paginate with the Link header / next-page-link pattern."
Composer configures:
GET method
https://api.github.com/orgs/yourorg/repos URL
Bearer Token auth
Next Page Link pagination
Data Path: $ (root array)
ID Path: id
REST API with API key in header
"Connect to the Bitdefender GravityZone API. URL: https://cloudapi.gravityzone.bitdefender.com/v1.0/jsonrpc/network. Auth: API key in the Authorization header as basic encoded with the key as username and empty password. POST method with JSON-RPC body."
For weird hybrids like JSON-RPC over HTTPS, Composer handles the body templating.
Paginated cursor API
"Connect to Slack's conversations.history API. URL: https://slack.com/api/conversations.history. Auth: Bearer with our bot token. Cursor pagination using next_cursor / cursor param."
Composer:
Sets pagination to Cursor
Asks for the cursor field name in the response (response_metadata.next_cursor)
Asks for the cursor param name in the request (cursor)
Two-stage list + detail
For APIs where the list endpoint returns IDs and a separate endpoint returns full records:
"For our incident management API: - List endpoint: GET /incidents (returns array of {id, summary}) - Detail endpoint: GET /incidents/{id} (returns full incident) Pull full details for every incident."
Composer:
Configures the primary Data Request as the list endpoint
Adds a Detail Request with URL https://.../incidents/{{id}}
Returns JSON (XML / CSV need a transformation step — ask Composer)
Has stable URLs (avoid endpoints with expires_at query params)
Has documented pagination
Issues credentials you (or your service account) can rotate
If a source falls outside these (e.g. GraphQL, gRPC, file-based S3 drop), describe it in plain English to Composer — it can often scaffold an adapter, but you may need to refine the request body manually.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Dimension Docs","description":"Dimension by ThreatAware is an AI-powered workspace for building security apps on your own data: connect Data Feeds, build Studio apps in conversation or from your AI assistant over MCP, and automate with Actions.","colors":{"primary":"#2E6B3E","light":"#9FD3A8","dark":"#23502F"},"logo":{"light":"https://mintcdn.com/threataware-labs/-q3Ba3EY-TzmdXHi/logo/Dimension_Logo_Primary_Deep_Forest.svg?fit=max\u0026auto=format\u0026n=-q3Ba3EY-TzmdXHi\u0026q=85\u0026s=3d8688bbca4e52734dc1b24daba2a653","dark":"https://mintcdn.com/threataware-labs/-q3Ba3EY-TzmdXHi/logo/Dimension_Logo_Primary_Cloud.svg?fit=max\u0026auto=format\u0026n=-q3Ba3EY-TzmdXHi\u0026q=85\u0026s=fa4888b307d5f56a7a21681459321208"},"favicon":{"light":"https://mintcdn.com/threataware-labs/gHBPDc1nWIuNETeX/logo/dimension_favicon_v5.png?fit=max\u0026auto=format\u0026n=gHBPDc1nWIuNETeX\u0026q=85\u0026s=4f77133ab4fc66616587850636902af3","dark":"https://mintcdn.com/threataware-labs/gHBPDc1nWIuNETeX/logo/dimension_favicon_v5.png?fit=max\u0026auto=format\u0026n=gHBPDc1nWIuNETeX\u0026q=85\u0026s=4f77133ab4fc66616587850636902af3"},"appearance":{"default":"light"},"navbar":{"links":[{"icon":"circle-question","href":"/reference/faqs","label":"FAQs"},{"icon":"newspaper","href":"https://dimension.io/blog","label":"Blog"},{"icon":"shield-halved","href":"https://trust.threataware.com/","label":"Trust Centre"}],"primary":{"type":"button","label":"Visit dimension.io","href":"https://dimension.io"}},"seo":{"metatags":{"canonical":"https://docs.dimension.io"}},"fonts":{"heading":{"family":"Literata","source":"fonts/literata/variable/literata-latin-wght-normal.woff2","format":"woff2"},"body":{"family":"DM Sans","source":"fonts/dm-sans/variable/dm-sans-latin-wght-normal.woff2","format":"woff2"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"markdown":{"instructions":"Video walkthroughs: the Dimension product overview video (https://www.youtube.com/watch?v=Mx8rg5wfkU0, also embedded at https://docs.dimension.io/overview) is the first of a series. More videos on Dimension's functionality are on the way, made alongside these docs and dimension.io. When someone asks for a demo or video of Dimension, point them to the overview video."},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"threataware-labs","hasAudioNarration":false,"actualSubdomain":"threataware-labs","customDomains":["docs.dimension.io"],"gitSource":{"type":"github","owner":"threataware-ltd","repo":"labs-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","_id":"6adb27a8d4aa60f03fac514a"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af6e21abd8b0362cdec7daa","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"Documentation","count":38},{"language":"default","tag":"Build","count":17},{"language":"default","tag":"Use Cases","count":12},{"language":"default","tag":"Reference","count":8},{"language":"default","tag":"Studio","count":7},{"language":"default","tag":"Data Feeds","count":6},{"language":"default","tag":"Pre-built Apps","count":6},{"language":"default","tag":"Get started","count":5},{"language":"default","tag":"Tutorials","count":5},{"language":"default","tag":"Actions","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"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},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@font-face{font-family:\"DM Sans\";src:url(\"/fonts/dm-sans/variable/dm-sans-latin-wght-normal.woff2\") format(\"woff2\");font-weight:100 1000;font-style:normal;font-display:swap}@font-face{font-family:\"DM Sans\";src:url(\"/fonts/dm-sans/variable/dm-sans-latin-wght-italic.woff2\") format(\"woff2\");font-weight:100 1000;font-style:italic;font-display:swap}@font-face{font-family:\"Literata\";src:url(\"/fonts/literata/variable/literata-latin-wght-normal.woff2\") format(\"woff2\");font-weight:200 900;font-style:normal;font-display:swap}@font-face{font-family:\"Literata\";src:url(\"/fonts/literata/variable/literata-latin-wght-italic.woff2\") format(\"woff2\");font-weight:200 900;font-style:italic;font-display:swap}:root{--font-body: \"DM Sans\", sans-serif;--font-heading: \"Literata\", serif;--white: #fff;--off: #383f48;--green: #2E6B3E;--accent-warm: var(--color-umber);--accent-cool: var(--color-plum);--accent-green: var(--color-night-canopy);--color-cloud: #F0F2EF;--color-night-canopy: #23502F;--color-deep-forest: #0F1A12;--color-orchid: #C98FD6;--color-coral: #E8967E;--color-mist-green: #9FD3A8;--color-umber: #834830;--color-terracotta: #AE715F;--color-coral-light: #EDAB98;--color-blush: #F1C0B2;--color-orchid-ink: #2C2233;--color-plum: #6B4F82;--color-heather: #9E80B7;--color-lavender: #D3AAF4;--color-building-green: #2E6B3E;--color-sage: #7FAE6F;--color-meadow: #B7DDAF;--color-dew: #D9EDDC;--color-ink: #0A0D0B;--color-charcoal: #1C211D;--color-slate: #3A423C;--color-stone: #6B756E;--color-ash: #A8B0A9;--color-mist: #B7C2BA;--color-fog: #D8DDD8;--color-pebble: #ECEFEB;--color-paper-white: #FFFFFF}.mdx-content{font-family:var(--font-body);font-weight:300}#page-title,.mdx-content h1,.mdx-content h2,.mdx-content h3{font-family:var(--font-heading);font-weight:400;line-height:1.1}.mdx-content h4,.mdx-content h5,.mdx-content h6{font-family:var(--font-heading);font-weight:600;line-height:1.2}.mdx-content blockquote,.mdx-content blockquote p{font-family:var(--font-heading);font-weight:300;font-style:italic}#header p:not(.eyebrow){font-family:var(--font-body);font-weight:300}.mdx-content li,#sidebar,#table-of-contents,.breadcrumb-list,.nav-tabs-item,.navbar-link{font-family:var(--font-body);font-weight:400}.mdx-content figcaption,.frame figcaption{font-family:var(--font-body);font-weight:400}.mdx-content :is(p,li,td)>a,#topbar-cta-button{font-family:var(--font-body);font-weight:800}#topbar-cta-button a>span:first-child{transition:all 0.25s}#topbar-cta-button a>div>span,#topbar-cta-button a>div>svg{transition:color 0.25s}#topbar-cta-button a:hover>span:first-child{opacity:1;background:var(--color-cloud)}#topbar-cta-button a:hover>div>span,#topbar-cta-button a:hover>div>svg{color:var(--color-building-green)}html.dark #topbar-cta-button a:hover>span:first-child{background:var(--color-mist-green)}html.dark #topbar-cta-button a:hover>div>span,html.dark #topbar-cta-button a:hover>div>svg{color:var(--color-deep-forest)}@media (min-width: 1024px){#navbar nav:has(#topbar-cta-button),#navbar nav:has(#topbar-cta-button)>ul{display:contents}#navbar #topbar-cta-button{order:99;margin-left:1rem!important}}.eyebrow,.sidebar-group-header{font-family:var(--font-body);font-weight:400;letter-spacing:0.24em;text-transform:uppercase}#footer,.footer{font-family:var(--font-body);font-weight:400}html.dark{--green: #9FD3A8;--accent-warm: var(--color-coral);--accent-cool: var(--color-lavender);--accent-green: var(--color-meadow)}.eyebrow{color:var(--accent-warm)}.mdx-content blockquote{border-left:3px solid var(--color-terracotta);padding-left:1.25rem}.mdx-content blockquote,.mdx-content blockquote p{color:var(--accent-warm)}.callout[data-callout-type=\"warning\"]{background-color:color-mix(in srgb, var(--color-blush) 35%, white);border-color:var(--color-terracotta)}.callout[data-callout-type=\"note\"],.callout[data-callout-type=\"info\"]{background-color:color-mix(in srgb, var(--color-lavender) 18%, white);border-color:var(--color-heather)}.callout[data-callout-type=\"tip\"],.callout[data-callout-type=\"check\"]{background-color:color-mix(in srgb, var(--color-dew) 60%, white);border-color:var(--color-mist-green)}html.dark .callout[data-callout-type=\"warning\"]{background-color:color-mix(in srgb, var(--color-terracotta) 15%, transparent);border-color:color-mix(in srgb, var(--color-terracotta) 55%, transparent)}html.dark .callout[data-callout-type=\"note\"],html.dark .callout[data-callout-type=\"info\"]{background-color:color-mix(in srgb, var(--color-heather) 15%, transparent);border-color:color-mix(in srgb, var(--color-heather) 55%, transparent)}html.dark .callout[data-callout-type=\"tip\"],html.dark .callout[data-callout-type=\"check\"]{background-color:color-mix(in srgb, var(--color-building-green) 20%, transparent);border-color:color-mix(in srgb, var(--color-building-green) 70%, transparent)}.callout[data-callout-type=\"warning\"] :is([data-component-part=\"callout-content\"],[data-component-part=\"callout-icon\"] svg){color:var(--accent-warm)}.callout:is([data-callout-type=\"note\"],[data-callout-type=\"info\"]) :is([data-component-part=\"callout-content\"],[data-component-part=\"callout-icon\"] svg){color:var(--accent-cool)}.callout:is([data-callout-type=\"tip\"],[data-callout-type=\"check\"]) :is([data-component-part=\"callout-content\"],[data-component-part=\"callout-icon\"] svg){color:var(--accent-green)}html.light #background-color::after{content:\"\";position:absolute;right:-6px;bottom:-6px;width:calc(min(80vw, 1600px) + 6px);aspect-ratio:3035 / 1080;background:url(\"/images/background/Hero%202_light_Dimension%20graph_2.png\") right bottom / cover no-repeat;filter:blur(2px);-webkit-mask-image:radial-gradient(ellipse 70% 72% at 80% 72%, #000 45%, transparent 100%);mask-image:radial-gradient(ellipse 70% 72% at 80% 72%, #000 45%, transparent 100%);pointer-events:none}.dl-page{--dl-text: var(--color-deep-forest);--dl-muted: var(--color-stone);--dl-border: var(--color-fog);--dl-surface: rgba(255, 255, 255, 0.7);--dl-surface-hover: #fff;--dl-tint: var(--color-pebble);max-width:1200px;margin:0 auto;padding:4.5rem 1.5rem 6rem;color:var(--dl-text);font-family:var(--font-body)}html.dark .dl-page{--dl-text: var(--color-cloud);--dl-muted: var(--color-ash);--dl-border: rgba(240, 242, 239, 0.12);--dl-surface: rgba(240, 242, 239, 0.03);--dl-surface-hover: rgba(240, 242, 239, 0.07);--dl-tint: rgba(240, 242, 239, 0.05)}.dl-page a{text-decoration:none}.dl-eyebrow{margin:0 0 1rem;font-family:var(--font-body);font-size:0.75rem;font-weight:400;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent-warm)}.dl-display{margin:0;max-width:14em;font-family:var(--font-heading);font-size:clamp(2.5rem, 5vw, 3.75rem);font-weight:400;line-height:1.04;letter-spacing:-0.01em;color:var(--dl-text)}.dl-lead{margin:1.5rem 0 0;max-width:38rem;font-size:1.2rem;font-weight:300;line-height:1.5;color:var(--dl-muted)}.dl-h2{margin:0 0 1.5rem;font-family:var(--font-heading);font-size:1.75rem;font-weight:400;line-height:1.1;color:var(--dl-text)}.dl-h3{margin:0 0 0.5rem;font-family:var(--font-heading);font-size:1.15rem;font-weight:600;line-height:1.25;color:var(--dl-text)}.dl-body{margin:0;font-size:0.95rem;font-weight:300;line-height:1.6;color:var(--dl-muted)}.dl-link{font-weight:800;font-size:0.9rem;color:var(--green)}.dl-link:hover{text-decoration:underline}.dl-ctas{display:flex;flex-wrap:wrap;gap:0.75rem;margin-top:2rem}@media (min-width: 1024px){.dl-hero .dl-ctas{display:grid;grid-template-columns:repeat(2, max-content);white-space:nowrap}}.dl-btn{display:inline-flex;align-items:center;gap:0.5rem;padding:0.7rem 1.2rem;border:1px solid var(--dl-border);border-radius:999px;background:var(--dl-surface);font-size:0.9rem;font-weight:800;color:var(--dl-text);transition:border-color 0.2s, background-color 0.2s}.dl-btn:hover{border-color:var(--green)}.dl-btn-primary{border-color:var(--color-night-canopy);background:var(--color-night-canopy);color:var(--color-cloud)}.dl-btn-primary:hover{border-color:var(--color-building-green);background:var(--color-building-green)}html.dark .dl-btn-primary{border-color:var(--color-mist-green);background:var(--color-mist-green);color:var(--color-deep-forest)}html.dark .dl-btn-primary:hover{border-color:var(--color-meadow);background:var(--color-meadow)}.dl-section{margin-top:5rem}.dl-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.dl-grid{display:grid;gap:1rem}.dl-grid-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.dl-grid-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.dl-grid-4{grid-template-columns:repeat(4, minmax(0, 1fr))}.dl-grid-5{grid-template-columns:repeat(5, minmax(0, 1fr))}.dl-mcp{display:grid;grid-template-columns:minmax(0, 5fr) minmax(0, 6fr);gap:3rem;align-items:center;padding:2.5rem;border:1px solid var(--dl-border);border-radius:1.25rem;background:var(--dl-surface)}.dl-mcp-code{min-width:0}.dl-mcp-code>div{margin:0}.dl-steps{margin:1.5rem 0;padding:0;list-style:none;counter-reset:dl-step}.dl-steps li{position:relative;margin:0 0 0.85rem;padding-left:2.25rem;font-size:0.95rem;font-weight:300;line-height:1.5;color:var(--dl-muted);counter-increment:dl-step}.dl-steps li::before{content:counter(dl-step);position:absolute;left:0;top:0;display:grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--color-dew);font-size:0.75rem;font-weight:800;color:var(--color-night-canopy)}.dl-steps strong{font-weight:600;color:var(--dl-text)}.dl-card{display:flex;flex-direction:column;padding:1.5rem;border:1px solid var(--dl-border);border-radius:1rem;background:var(--dl-surface);color:var(--dl-text);transition:border-color 0.2s, background-color 0.2s}a.dl-card:hover{border-color:var(--color-orchid);background:var(--dl-surface-hover)}.dl-card-feature{padding:2rem}.dl-card-icon{display:grid;place-items:center;width:2.5rem;height:2.5rem;margin-bottom:1.25rem;border-radius:0.75rem;background:var(--color-dew);color:var(--color-night-canopy)}.dl-card-icon svg{background-color:var(--color-night-canopy)!important}.dl-card-links{display:flex;flex-wrap:wrap;gap:0.5rem 1.25rem;margin-top:1.5rem}.dl-card-links a{font-size:0.9rem;font-weight:800;color:var(--green)}.dl-card-links a::after{content:\" →\"}.dl-card-links a:hover{text-decoration:underline}.dl-tags{display:flex;flex-wrap:wrap;gap:0.4rem;margin-top:auto;padding-top:1.25rem}.dl-tags span{padding:0.2rem 0.6rem;border-radius:999px;background:var(--dl-tint);font-size:0.75rem;font-weight:400;color:var(--dl-muted)}.dl-card-small{gap:0.35rem;padding:1.25rem}.dl-card-small svg{margin-bottom:0.5rem;background-color:var(--accent-cool)!important}.dl-card-small strong{font-family:var(--font-heading);font-size:1rem;font-weight:600}.dl-card-small span{font-size:0.85rem;font-weight:300;color:var(--dl-muted)}.dl-journey>div{display:flex;flex-direction:column;gap:0.6rem;padding:1.5rem;border-top:2px solid var(--color-terracotta);background:var(--dl-surface)}.dl-stage{display:flex;align-items:center;gap:0.6rem;margin:0 0 0.5rem;font-family:var(--font-heading);font-size:1.1rem;font-weight:600;color:var(--dl-text)}.dl-stage span{font-family:var(--font-body);font-size:0.75rem;font-weight:400;letter-spacing:0.24em;color:var(--accent-warm)}.dl-journey a{font-size:0.9rem;font-weight:400;color:var(--dl-muted)}.dl-journey a:hover{color:var(--green)}.dl-support{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:2rem 2.5rem;border-radius:1.25rem;background:var(--dl-tint)}.dl-support .dl-body{max-width:40rem}.dl-top{display:flex;flex-wrap:wrap;align-items:center;gap:3rem 4rem}.dl-top>.dl-hero,.dl-top>.dl-mcp{flex:1 1 24rem;min-width:min(20rem, 100%);max-width:100%;box-sizing:border-box}.dl-top>.dl-mcp{margin-top:0;grid-template-columns:minmax(0, 1fr);gap:1.5rem;padding:2rem}.dl-top .dl-mcp .dl-steps{margin:1rem 0}@media (max-width: 1024px){.dl-mcp{grid-template-columns:minmax(0, 1fr);gap:2rem;padding:1.75rem}.dl-grid-4{grid-template-columns:repeat(2, minmax(0, 1fr))}.dl-grid-5{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media (max-width: 640px){.dl-page{padding-top:3rem}.dl-section{margin-top:3.5rem}.dl-grid-2,.dl-grid-3,.dl-grid-4{grid-template-columns:minmax(0, 1fr)}.dl-grid-5{grid-template-columns:repeat(2, minmax(0, 1fr))}.dl-support{flex-direction:column;align-items:flex-start;padding:1.75rem}}.mdx-content img[src*=\"/images/\"]{border:2px solid var(--color-terracotta);border-radius:0.75rem}li:has(button.logout-link){display:none}.chat-assistant-floating-input{display:none!important}a.select-none{display:flex}a:has(>img.nav-logo){flex-shrink:0}a:has(>img.nav-logo)::after{content:\"DOCS\";margin-top:0.25rem;margin-left:1rem;border-radius:999px;background:var(--color-cloud);padding:0.25rem 0.75rem;font-family:var(--font-body);font-weight:700;letter-spacing:0.1em;font-size:0.7rem;line-height:1.2;color:var(--color-building-green);align-self:center;transition:all 0.25s}a:has(>img.nav-logo):hover::after{color:var(--color-cloud);background:var(--color-building-green)}html.dark a:has(>img.nav-logo)::after{color:var(--color-mist-green);border:1px solid var(--color-mist-green);background:rgba(159, 211, 168, 0.08)}html.dark a:has(>img.nav-logo):hover::after{color:var(--color-deep-forest);background:var(--color-mist-green)}@media (min-width: 1024px){.navbar-link{font-size:0;gap:0;padding:0.4rem;border-radius:0.5rem;transition:color 0.25s}.navbar-link svg{width:1.1rem;height:1.1rem;transition:all 0.25s;\u0026:hover{background-color:var(--green)}}}.navbar-tip{position:fixed;z-index:100;padding:0.3rem 0.55rem;border-radius:0.375rem;background:var(--color-deep-forest);color:var(--color-cloud);font-size:0.75rem;font-weight:500;line-height:1.2;white-space:nowrap;pointer-events:none;opacity:0;transform:translateY(-4px);transition:opacity 0.15s, transform 0.15s}.navbar-tip.is-visible{opacity:1;transform:translateY(0)}.dark .navbar-tip{background:var(--color-cloud);color:var(--color-deep-forest)}@media (hover: none){.navbar-tip{display:none}}.whats-new-desc{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0.75rem}.whats-new-desc>p{margin:0}.whats-new-switch{display:inline-flex;align-items:center;gap:0.4rem;padding:0.35rem 0.85rem;font-size:0.8rem;font-weight:500;line-height:1;white-space:nowrap;text-decoration:none!important;color:var(--color-building-green, #2E6B3E)!important;background:var(--color-cloud, #F0F2EF);border:1px solid var(--color-building-green, #2E6B3E);border-radius:9999px;transition:background 0.2s}.whats-new-switch:hover{background:#e3e8e2}html.dark .whats-new-switch{color:var(--color-mist-green, #9FD3A8)!important;background:transparent;border-color:var(--color-mist-green, #9FD3A8)}html.dark .whats-new-switch:hover{background:rgba(159, 211, 168, 0.1)}.whats-new-switch-logo{width:1rem;height:1rem;flex:none}.whats-new-switch-arrow{transition:transform 0.2s}.whats-new-switch:hover .whats-new-switch-arrow{transform:translateX(2px)}.release-notes li>strong>a{color:var(--color-building-green);border-bottom:1px dashed rgba(46, 107, 62, 0.5);text-decoration:none}.release-notes li>strong>a::after{content:\"\";display:inline-block;width:0.8em;height:0.8em;margin-left:0.25em;vertical-align:-0.05em;background-color:currentColor;-webkit-mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M8 7h9v9'/%3E%3C/svg%3E\") no-repeat center / contain;mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M8 7h9v9'/%3E%3C/svg%3E\") no-repeat center / contain;transition:transform 0.15s}.release-notes li>strong>a:hover{border-bottom-style:solid;border-bottom-color:currentColor}.release-notes li>strong>a:hover::after{transform:translate(1px, -1px)}html.dark .release-notes li>strong>a{color:var(--color-mist-green);border-bottom-color:rgba(159, 211, 168, 0.5)}.release-badge{margin-left:auto;align-self:center;display:inline-flex;align-items:center;gap:0.5rem;padding:0.3rem 0.75rem;font-size:0.75rem;font-weight:500;line-height:1;white-space:nowrap;color:var(--color-building-green);background:var(--color-cloud);border:1px solid rgba(46, 107, 62, 0.4);border-radius:9999px;transition:background 0.2s, border-color 0.2s}.release-badge:hover{background:#e3e8e2;border-color:var(--color-building-green)}html.dark .release-badge{color:var(--color-mist-green);background:transparent;border-color:rgba(159, 211, 168, 0.4)}html.dark .release-badge:hover{background:rgba(159, 211, 168, 0.1);border-color:var(--color-mist-green)}.release-badge-dot{width:0.4rem;height:0.4rem;border-radius:9999px;background:currentColor;box-shadow:0 0 0 0 currentColor;animation:release-badge-pulse 2s ease-out infinite}.release-badge-arrow{transition:transform 0.2s}.release-badge:hover .release-badge-arrow{transform:translate(-1px, 1px)}@keyframes release-badge-pulse{0%{box-shadow:0 0 0 0 rgba(46, 107, 62, 0.5)}70%{box-shadow:0 0 0 6px rgba(46, 107, 62, 0)}100%{box-shadow:0 0 0 0 rgba(46, 107, 62, 0)}}@media (prefers-reduced-motion: reduce){.release-badge-dot{animation:none}}"}],"page":{"pagePath":"data-feeds/data-sources","slug":"/data-feeds/data-sources","pageMetadata":{"title":"Data Sources","description":"Authentication, HTTP methods, and source patterns","icon":"plug","href":"/data-feeds/data-sources"},"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: \"Authentication, HTTP methods, and source patterns\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,OptimizedImage,Tab,Table,Tabs,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`A Data Feed’s primary `,_jsx(_components.strong,{children:`Data Request`}),` node configures the HTTP call to your data source. This page covers what’s configurable.`]}),`\n`,_jsx(Heading,{level:`2`,id:`http-methods`,children:`HTTP methods`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/threataware-labs/JizGYqEeTbHV_69f/images/data-feed-http-methods.png?fit=max\u0026auto=format\u0026n=JizGYqEeTbHV_69f\u0026q=85\u0026s=51de9a86a2dddf5fe23a929a341320a7`,alt:`HTTP method dropdown showing all seven options: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS`,\"data-og-width\":`1440`,width:`1440`,\"data-og-height\":`900`,height:`900`,\"data-path\":`images/data-feed-http-methods.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/threataware-labs/JizGYqEeTbHV_69f/images/data-feed-http-methods.png?w=280\u0026fit=max\u0026auto=format\u0026n=JizGYqEeTbHV_69f\u0026q=85\u0026s=8e1accf0059f6cedee24e267d8c17b15 280w, https://mintcdn.com/threataware-labs/JizGYqEeTbHV_69f/images/data-feed-http-methods.png?w=560\u0026fit=max\u0026auto=format\u0026n=JizGYqEeTbHV_69f\u0026q=85\u0026s=9addcbe7561ae62229378ddac5d8b243 560w, https://mintcdn.com/threataware-labs/JizGYqEeTbHV_69f/images/data-feed-http-methods.png?w=840\u0026fit=max\u0026auto=format\u0026n=JizGYqEeTbHV_69f\u0026q=85\u0026s=5f010451147510527fa0956d490db25c 840w, https://mintcdn.com/threataware-labs/JizGYqEeTbHV_69f/images/data-feed-http-methods.png?w=1100\u0026fit=max\u0026auto=format\u0026n=JizGYqEeTbHV_69f\u0026q=85\u0026s=0abebd229ec9d4740313d5342dc4cbd8 1100w, https://mintcdn.com/threataware-labs/JizGYqEeTbHV_69f/images/data-feed-http-methods.png?w=1650\u0026fit=max\u0026auto=format\u0026n=JizGYqEeTbHV_69f\u0026q=85\u0026s=5f1a8444d53bfbaaca90c370c309d4e6 1650w, https://mintcdn.com/threataware-labs/JizGYqEeTbHV_69f/images/data-feed-http-methods.png?w=2500\u0026fit=max\u0026auto=format\u0026n=JizGYqEeTbHV_69f\u0026q=85\u0026s=748747c956840ada99345e9e9cc1c3a8 2500w`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Method`}),_jsx(_components.th,{children:`Typical use`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`GET`})}),_jsx(_components.td,{children:`Read a resource — the default for most Feeds`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`POST`})}),_jsx(_components.td,{children:`Some APIs use POST with a JSON body to query (e.g. search endpoints, GraphQL)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`PUT`})}),_jsx(_components.td,{children:`Rare — used by APIs that require PUT for idempotent fetch operations`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`DELETE`})}),_jsx(_components.td,{children:`Not typical for Feeds — generally you read data, you don’t delete it on the source`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`PATCH`})}),_jsx(_components.td,{children:`Same as DELETE — rarely needed for ingestion`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`HEAD`})}),_jsx(_components.td,{children:`Probe an endpoint for existence/headers without a body`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`OPTIONS`})}),_jsx(_components.td,{children:`Discover CORS / allowed methods`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`99% of Feeds are `,_jsx(_components.strong,{children:`GET`}),`. If a source requires POST (e.g. Elasticsearch `,_jsx(_components.code,{children:`_search`}),`), the Body section becomes mandatory.`]}),`\n`,_jsx(Heading,{level:`2`,id:`authorization`,children:`Authorization`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/threataware-labs/JizGYqEeTbHV_69f/images/data-feed-auth.png?fit=max\u0026auto=format\u0026n=JizGYqEeTbHV_69f\u0026q=85\u0026s=4d553b301aec31acdf3976cf611a6ce1`,alt:`Authorization dropdown showing five options: None, Basic Auth, Bearer Token, API Key, Inherit from parent`,\"data-og-width\":`1440`,width:`1440`,\"data-og-height\":`900`,height:`900`,\"data-path\":`images/data-feed-auth.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/threataware-labs/JizGYqEeTbHV_69f/images/data-feed-auth.png?w=280\u0026fit=max\u0026auto=format\u0026n=JizGYqEeTbHV_69f\u0026q=85\u0026s=4fb0313b24202cee8f03cf8bbb4b26ac 280w, https://mintcdn.com/threataware-labs/JizGYqEeTbHV_69f/images/data-feed-auth.png?w=560\u0026fit=max\u0026auto=format\u0026n=JizGYqEeTbHV_69f\u0026q=85\u0026s=d14f49330e05b28a4cb5423bd2f059f9 560w, https://mintcdn.com/threataware-labs/JizGYqEeTbHV_69f/images/data-feed-auth.png?w=840\u0026fit=max\u0026auto=format\u0026n=JizGYqEeTbHV_69f\u0026q=85\u0026s=66ed8405e3c545465c890ff0bda0727a 840w, https://mintcdn.com/threataware-labs/JizGYqEeTbHV_69f/images/data-feed-auth.png?w=1100\u0026fit=max\u0026auto=format\u0026n=JizGYqEeTbHV_69f\u0026q=85\u0026s=d06e2b1ec5776a363525707cadec26bf 1100w, https://mintcdn.com/threataware-labs/JizGYqEeTbHV_69f/images/data-feed-auth.png?w=1650\u0026fit=max\u0026auto=format\u0026n=JizGYqEeTbHV_69f\u0026q=85\u0026s=980784420766e794b74b52b6e329658e 1650w, https://mintcdn.com/threataware-labs/JizGYqEeTbHV_69f/images/data-feed-auth.png?w=2500\u0026fit=max\u0026auto=format\u0026n=JizGYqEeTbHV_69f\u0026q=85\u0026s=556fd94490599c1ff13347cada9715ca 2500w`}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`None`,id:`none`,children:_jsx(_components.p,{children:`For genuinely public endpoints. Rare in enterprise security data.`})}),_jsxs(Tab,{title:`Basic Auth`,id:`basic-auth`,children:[_jsxs(_components.p,{children:[`Username + password combined and Base64-encoded into the `,_jsx(_components.code,{children:`Authorization: Basic ...`}),` header.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Username: api-user@yourorg.com`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Password: ********`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`Common with on-prem appliances and legacy APIs. Encrypt the password via the lock icon.`})]}),_jsxs(Tab,{title:`Bearer Token`,id:`bearer-token`,children:[_jsxs(_components.p,{children:[`Token sent as `,_jsx(_components.code,{children:`Authorization: Bearer \u003ctoken>`}),`.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Token: ********`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`The most common pattern for modern APIs (GitHub, Slack, Notion, etc.). The token is treated as a secret and encrypted at rest.`}),_jsx(_components.p,{children:`For tokens with short TTLs, ask Composer to add token-refresh logic — it will scaffold a separate auth Feed if needed.`})]}),_jsxs(Tab,{title:`API Key`,id:`api-key`,children:[_jsx(_components.p,{children:`A key sent either as:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A header (e.g. `,_jsx(_components.code,{children:`X-API-Key: ...`}),`)`]}),`\n`,_jsxs(_components.li,{children:[`A query parameter (e.g. `,_jsx(_components.code,{children:`?api_key=...`}),`)`]}),`\n`]}),_jsx(_components.p,{children:`Composer asks which on setup. Provide the key name and the value:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Header name: X-API-Key`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Value: ********`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(_components.p,{children:`or`}),_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Param name: api_key`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Value: ********`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})]}),_jsx(Tab,{title:`Inherit from parent`,id:`inherit-from-parent`,children:_jsxs(_components.p,{children:[`Available on a `,_jsx(_components.strong,{children:`Detail Request`}),` — reuses the primary Data Request’s auth instead of re-configuring it. Use this whenever the detail and list endpoints are on the same API.`]})})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Encrypted secrets.`}),` Any field with a lock icon next to it gets encrypted into the tenant’s secret store when you click the lock. Encrypted values are never echoed back to Composer chat or surfaced in logs.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`common-source-patterns`,children:`Common source patterns`}),`\n`,_jsx(Heading,{level:`3`,id:`rest-api-with-bearer-token`,children:`REST API with Bearer token`}),`\n`,_jsx(_components.p,{children:`The default modern API pattern:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"Connect to the GitHub API and pull all repos in our org.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` URL: https://api.github.com/orgs/yourorg/repos.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` Auth: Bearer with the PAT below.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` Paginate with the Link header / next-page-link pattern.\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Composer configures:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`GET method`}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`https://api.github.com/orgs/yourorg/repos`}),` URL`]}),`\n`,_jsx(_components.li,{children:`Bearer Token auth`}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Next Page Link`}),` pagination`]}),`\n`,_jsxs(_components.li,{children:[`Data Path: `,_jsx(_components.code,{children:`$`}),` (root array)`]}),`\n`,_jsxs(_components.li,{children:[`ID Path: `,_jsx(_components.code,{children:`id`})]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`rest-api-with-api-key-in-header`,children:`REST API with API key in header`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"Connect to the Bitdefender GravityZone API.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` URL: https://cloudapi.gravityzone.bitdefender.com/v1.0/jsonrpc/network.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` Auth: API key in the Authorization header as basic encoded with the key as username and empty password.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` POST method with JSON-RPC body.\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`For weird hybrids like JSON-RPC over HTTPS, Composer handles the body templating.`}),`\n`,_jsx(Heading,{level:`3`,id:`paginated-cursor-api`,children:`Paginated cursor API`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"Connect to Slack's conversations.history API.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` URL: https://slack.com/api/conversations.history.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` Auth: Bearer with our bot token.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` Cursor pagination using next_cursor / cursor param.\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Composer:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Sets pagination to `,_jsx(_components.strong,{children:`Cursor`})]}),`\n`,_jsxs(_components.li,{children:[`Asks for the cursor field name in the response (`,_jsx(_components.code,{children:`response_metadata.next_cursor`}),`)`]}),`\n`,_jsxs(_components.li,{children:[`Asks for the cursor param name in the request (`,_jsx(_components.code,{children:`cursor`}),`)`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`two-stage-list-+-detail`,children:`Two-stage list + detail`}),`\n`,_jsx(_components.p,{children:`For APIs where the list endpoint returns IDs and a separate endpoint returns full records:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`\"For our incident management API:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` - List endpoint: GET /incidents (returns array of {id, summary})`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` - Detail endpoint: GET /incidents/{id} (returns full incident)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` Pull full details for every incident.\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Composer:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Configures the primary Data Request as the list endpoint`}),`\n`,_jsxs(_components.li,{children:[`Adds a Detail Request with URL `,_jsx(_components.code,{children:`https://.../incidents/{{id}}`})]}),`\n`,_jsx(_components.li,{children:`Inherits auth from the parent`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/data-feeds`,children:`Data Feeds overview`}),` for the editor screenshot showing both nodes.`]}),`\n`,_jsx(Heading,{level:`2`,id:`source-compatibility-checklist`,children:`Source compatibility checklist`}),`\n`,_jsx(_components.p,{children:`A source is well-suited to a Data Feed if it:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Speaks HTTPS (HTTP without TLS is blocked)`}),`\n`,_jsx(_components.li,{children:`Returns JSON (XML / CSV need a transformation step — ask Composer)`}),`\n`,_jsxs(_components.li,{children:[`Has stable URLs (avoid endpoints with `,_jsx(_components.code,{children:`expires_at`}),` query params)`]}),`\n`,_jsx(_components.li,{children:`Has documented pagination`}),`\n`,_jsx(_components.li,{children:`Issues credentials you (or your service account) can rotate`}),`\n`]}),`\n`,_jsx(_components.p,{children:`If a source falls outside these (e.g. GraphQL, gRPC, file-based S3 drop), describe it in plain English to Composer — it can often scaffold an adapter, but you may need to refine the request body manually.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Data Sources","description":"Authentication, HTTP methods, and source patterns","icon":"plug","href":"/data-feeds/data-sources"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"HTTP methods","slug":"http-methods","depth":2,"children":[]},{"title":"Authorization","slug":"authorization","depth":2,"children":[]},{"title":"Common source patterns","slug":"common-source-patterns","depth":2,"children":[{"title":"REST API with Bearer token","slug":"rest-api-with-bearer-token","depth":3,"children":[]},{"title":"REST API with API key in header","slug":"rest-api-with-api-key-in-header","depth":3,"children":[]},{"title":"Paginated cursor API","slug":"paginated-cursor-api","depth":3,"children":[]},{"title":"Two-stage list + detail","slug":"two-stage-list-+-detail","depth":3,"children":[]}]},{"title":"Source compatibility checklist","slug":"source-compatibility-checklist","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/threataware-labs/e370f9a71ca96231/js/home-title.js","/_mintlify/custom/threataware-labs/e4e7940a46ddb192/js/navbar-tooltips.js","/_mintlify/custom/threataware-labs/8abdda18f7ced630/js/whats-new-switch.js","/_mintlify/custom/threataware-labs/7936e80a381826f9/js/release-badge.js"],"subdomain":"threataware-labs","siteName":"Dimension Docs","title":"Data Sources - Dimension Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-23T09:24:14.552Z","originalFileLocation":"data-feeds/data-sources.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=\"Authentication, HTTP methods, and source patterns\">\u003cmeta data-mint-head name=\"application-name\" content=\"Dimension Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/threataware-labs/kspDsT0O7cinzix5/_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/threataware-labs/kspDsT0O7cinzix5/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/threataware-labs/kspDsT0O7cinzix5/_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/threataware-labs/kspDsT0O7cinzix5/_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/threataware-labs/kspDsT0O7cinzix5/_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/threataware-labs/kspDsT0O7cinzix5/_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/threataware-labs/kspDsT0O7cinzix5/_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/threataware-labs/kspDsT0O7cinzix5/_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/threataware-labs/kspDsT0O7cinzix5/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Data Sources - Dimension Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Authentication, HTTP methods, and source patterns\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Dimension Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.dimension.io/data-feeds/data-sources\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://threataware-labs.mintlify.site/_mintlify/api/og/v2?division=Data+Feeds\u0026amp;title=Data+Sources\u0026amp;description=Authentication%2C+HTTP+methods%2C+and+source+patterns\u0026amp;theme=6d15aa0074a26aae5ea9798e\u0026amp;signature=9ad1d118d33acbd55d4eebc4d4d79807739ae3d8a4a4e0239cac5ee8305dede7\">\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=\"Data Sources - Dimension Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Authentication, HTTP methods, and source patterns\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://threataware-labs.mintlify.site/_mintlify/api/og/v2?division=Data+Feeds\u0026amp;title=Data+Sources\u0026amp;description=Authentication%2C+HTTP+methods%2C+and+source+patterns\u0026amp;theme=6d15aa0074a26aae5ea9798e\u0026amp;signature=9ad1d118d33acbd55d4eebc4d4d79807739ae3d8a4a4e0239cac5ee8305dede7\">\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/threataware-labs/kspDsT0O7cinzix5/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Dimension Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2E6B3E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.dimension.io/data-feeds/data-sources\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/data-feeds/data-sources.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.dimension.io/#organization\",\"name\":\"Dimension Docs\",\"url\":\"https://docs.dimension.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/threataware-labs/-q3Ba3EY-TzmdXHi/logo/Dimension_Logo_Primary_Deep_Forest.svg?fit=max\u0026auto=format\u0026n=-q3Ba3EY-TzmdXHi\u0026q=85\u0026s=3d8688bbca4e52734dc1b24daba2a653\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.dimension.io#website\",\"name\":\"Dimension Docs\",\"url\":\"https://docs.dimension.io\",\"publisher\":{\"@id\":\"https://docs.dimension.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.dimension.io/data-feeds/data-sources#webpage\",\"url\":\"https://docs.dimension.io/data-feeds/data-sources\",\"name\":\"Data Sources\",\"description\":\"Authentication, HTTP methods, and source patterns\",\"dateModified\":\"2026-10-23T09:24:14.552Z\",\"isPartOf\":{\"@id\":\"https://docs.dimension.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.dimension.io/data-feeds/data-sources#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.dimension.io/data-feeds/data-sources#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Build\",\"item\":\"https://docs.dimension.io/data-feeds\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Data Feeds\",\"item\":\"https://docs.dimension.io/data-feeds\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Data Sources\",\"item\":\"https://docs.dimension.io/data-feeds/data-sources\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.dimension.io/data-feeds/data-sources#article\",\"headline\":\"Data Sources\",\"name\":\"Data Sources\",\"description\":\"Authentication, HTTP methods, and source patterns\",\"url\":\"https://docs.dimension.io/data-feeds/data-sources\",\"mainEntityOfPage\":{\"@id\":\"https://docs.dimension.io/data-feeds/data-sources#webpage\"},\"dateModified\":\"2026-10-23T09:24:14.552Z\",\"publisher\":{\"@id\":\"https://docs.dimension.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.dimension.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Dimension Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Dimension Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/data-feeds/data-sources.md","siteName":"Dimension Docs","nav":{"global":null,"tabs":[{"tab":"Welcome","pages":[{"title":"Welcome","href":""}]},{"tab":"Documentation","groups":[{"group":"Get started","icon":"rocket","pages":[{"title":"What is Dimension?","sidebarTitle":"What is Dimension?","icon":"circle-info","href":"/overview"},{"title":"First steps","icon":"shoe-prints","href":"/getting-started"},{"title":"Build your first app","icon":"wand-magic-sparkles","href":"/build-your-first-app"},{"title":"Connect with MCP","icon":"plug","href":"/connect-mcp"},{"title":"What's new","icon":"sparkles","mode":"wide","href":"/whats-new"}]},{"group":"Core Concepts","icon":"compass","pages":[{"title":"Concepts \u0026 Glossary","icon":"book","href":"/concepts"},{"title":"Workspaces","icon":"cube","href":"/workspaces"},{"title":"Draft and published","icon":"cloud-arrow-up","href":"/publishing"},{"title":"Planner","icon":"diagram-project","href":"/planner"}]},{"group":"Build","icon":"cubes","pages":[{"group":"Data Feeds","icon":"database","pages":[{"title":"Data Feeds","icon":"database","href":"/data-feeds/index"},{"title":"Connect Your Data","description":"End-to-end guide to setting up your first Data Feed","icon":"database","href":"/connect-your-data"},{"title":"Data Sources","icon":"plug","href":"/data-feeds/data-sources"},{"title":"Detail Requests","description":"The list + detail pattern — fetch a list of IDs, then per-record detail from a second endpoint","icon":"list-tree","href":"/data-feeds/detail-requests"},{"title":"Schema \u0026 Fields","icon":"table","href":"/data-feeds/schema"},{"title":"Sync \u0026 Freshness","icon":"rotate","href":"/data-feeds/sync"}]},{"group":"Actions","icon":"bolt","pages":[{"title":"Actions","icon":"bolt","href":"/actions/index"},{"title":"Triggers \u0026 Invocation","icon":"bell","href":"/actions/triggers"},{"title":"Approving actions","icon":"circle-check","href":"/actions/approvals"},{"title":"Integration Patterns","icon":"plug","href":"/actions/integrations"}]},{"group":"Studio","icon":"palette","pages":[{"title":"Studio","icon":"palette","href":"/studio/index"},{"title":"AI Composer","icon":"wand-magic-sparkles","href":"/studio/ai-composer"},{"title":"Inspect \u0026 Iterate","icon":"crosshairs","href":"/studio/inspect-and-iterate"},{"title":"Components","icon":"shapes","href":"/studio/components"},{"title":"Themes \u0026 Branding","icon":"palette","href":"/studio/themes"},{"title":"Key Value Store","icon":"database","href":"/studio/key-value-store"},{"title":"Exporting, Sharing \u0026 Cloning","icon":"download","href":"/studio/exporting"}]}]},{"group":"Reference","icon":"book-open","pages":[{"group":"Composer \u0026 Data","icon":"wand-magic-sparkles","pages":[{"title":"Composer Prompt Engineering","icon":"wand-magic-sparkles","href":"/reference/prompt-engineering"},{"title":"Pattern Library","icon":"book-open","href":"/reference/recipes"},{"title":"JSON Path Reference","icon":"code-branch","href":"/reference/json-paths"}]},{"title":"Migration Playbook","icon":"truck","href":"/reference/migration-playbook"},{"title":"Keyboard Shortcuts","icon":"keyboard","href":"/reference/keyboard-shortcuts"},{"title":"Troubleshooting","icon":"wrench","href":"/reference/troubleshooting"},{"title":"FAQs","icon":"circle-question","href":"/reference/faqs"},{"title":"Error Codes","icon":"circle-exclamation","href":"/reference/error-codes"}]},{"group":"Settings","icon":"gear","pages":[{"title":"Settings","icon":"gear","href":"/settings/index"}]},{"group":"Trust \u0026 Security","icon":"shield-check","pages":[{"title":"Security \u0026 Privacy","icon":"shield-check","href":"/trust/security-privacy"},{"title":"Architecture","icon":"diagram-project","href":"/trust/architecture"},{"title":"Certifications","icon":"award","href":"/trust/certifications"}]}]},{"tab":"Use Cases","pages":[{"title":"Use Cases","href":"/use-cases"}]}]},"basePath":"","title":"Data Sources - Dimension Docs","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-BbK2OBGL.js","lightbox-handle-r17bVUz3.js"]}