Free-text search over the packs the active-pack listing returns. The search applies the same ACTIVE, trade-window, and eligibility gating as the listing, so it never surfaces a pack the listing hides. Matches the pack name, each leg’s team names, match titles, market titles, and league names. Matching is case- and accent-insensitive and tokenized: every word in the query must appear somewhere in the fields being tested, but words can match in any order and across different fields. Results are ranked by relevance: packs matched on their name first, then packs where a single leg’s teams or match title carries the whole query, then matches spread across other fields. When packs are paused platform-wide, the search returns an empty array.
GET
/
parlay
/
packs
/
search
Search active packs
curl --request GET \ --url https://api.limitless.exchange/parlay/packs/search
Free-text search over active packs. Public, no authentication required. The search covers exactly the packs the active-pack listing returns, with the same ACTIVE, trade-window, and eligibility gating, so it never surfaces a pack the listing hides.
Use this endpoint to power a pack search box. Pack names are often editorial and say nothing about their contents, so the search also matches what is inside each pack: leg team names, match titles, market titles, and league names. A user searching for a team or league finds every active pack that carries it, even when the pack name mentions neither.
Matching is case- and accent-insensitive: koln matches 1. FC Köln, fenerbahce matches Fenerbahçe.
The search tokenizes the query, so word order does not matter and words can match across different fields: man city finds a Manchester City pack, and vitality 9z finds a pack holding both teams in different legs.
Every word in the query must appear somewhere for a pack to match.
query must be 2-100 characters. A query shorter than 2 characters after trimming returns an empty array rather than an error, matching /markets/search.
Responses carry Cache-Control: public, max-age=30, stale-while-revalidate=60, so results can trail the live listing by up to a minute.To buy a Pack for a managed server-wallet account, follow the Partner Packs workflow and request a quote for the intended stake.
Free-text query, matched case- and accent-insensitively against the pack name, its legs' team names, match titles, market titles, and league names. A query shorter than 2 characters after trimming returns an empty array.
True when the pack would be accepted by a quote against current orderbook state. False signals clients to disable the buy CTA and surface ineligibleReason.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Limitless Exchange","colors":{"primary":"#9AB83A","light":"#DCF58C","dark":"#7A9A1E"},"logo":{"light":"https://mintcdn.com/limitless/r7gW3TwphUtCZ8zM/logo/light.svg?fit=max\u0026auto=format\u0026n=r7gW3TwphUtCZ8zM\u0026q=85\u0026s=0d6f32ed5e8a1f35ba9d1fa2e0b57a4b","dark":"https://mintcdn.com/limitless/r7gW3TwphUtCZ8zM/logo/dark.svg?fit=max\u0026auto=format\u0026n=r7gW3TwphUtCZ8zM\u0026q=85\u0026s=6500e01609e582f758db1a9610b63bd8"},"favicon":"https://mintcdn.com/limitless/r7gW3TwphUtCZ8zM/favicon.svg?fit=max\u0026auto=format\u0026n=r7gW3TwphUtCZ8zM\u0026q=85\u0026s=345f02206803d94b3b1911d2a80bf9c3","api":{"playground":{}},"navbar":{"links":[{"href":"mailto:help@limitless.network","label":"Support"}]},"footer":{"socials":{"x":"https://x.com/trylimitless","discord":"https://discord.com/invite/yb4SscD8RZ"}},"seo":{"metatags":{"twitter:card":"summary_large_image"}},"contextual":{"options":["copy","view","chatgpt","claude","cursor"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Limitless Exchange","icon":"arrow-up-right-from-square","href":"https://limitless.exchange"},{"anchor":"Builders Chat","icon":"telegram","href":"https://t.me/LimitlessBuildersChat"},{"anchor":"Discord","icon":"discord","href":"https://discord.com/invite/yb4SscD8RZ"},{"anchor":"Twitter","icon":"x-twitter","href":"https://x.com/trylimitless"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"limitless","hasAudioNarration":false,"actualSubdomain":"limitless","customDomains":["docs.limitless.exchange"],"gitSource":{"type":"github","owner":"limitless-labs-group","repo":"limitless-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6ae2027fd6a250fd1db9a4f3","clientVersion":"0.0.4124","searchFilterCounts":[{"language":"default","tag":"API Reference","count":81},{"language":"default","tag":"For Developers","count":67},{"language":"default","tag":"User Guide","count":26},{"language":"default","tag":"Portfolio","count":14},{"language":"default","tag":"Trading","count":14},{"language":"default","tag":"Getting Started","count":14},{"language":"default","tag":"Go SDK","count":11},{"language":"default","tag":"Python SDK","count":11},{"language":"default","tag":"Rust SDK","count":11},{"language":"default","tag":"TypeScript SDK","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":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":"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":[],"page":{"pagePath":"api-reference/packs/search-packs","slug":"/api-reference/packs/search-packs","pageMetadata":{"title":"Search Active Packs","openapi":"GET /parlay/packs/search","description":"Free-text search over the packs the active-pack listing returns. The search applies the same ACTIVE, trade-window, and eligibility gating as the listing, so it never surfaces a pack the listing hides. Matches the pack name, each leg's team names, match titles, market titles, and league names. Matching is case- and accent-insensitive and tokenized: every word in the query must appear somewhere in the fields being tested, but words can match in any order and across different fields. Results are ranked by relevance: packs matched on their name first, then packs where a single leg's teams or match title carries the whole query, then matches spread across other fields. When packs are paused platform-wide, the search returns an empty array.","href":"/api-reference/packs/search-packs"},"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: \"Free-text search over the packs the active-pack listing returns. The search applies the same ACTIVE, trade-window, and eligibility gating as the listing, so it never surfaces a pack the listing hides. Matches the pack name, each leg’s team names, match titles, market titles, and league names. Matching is case- and accent-insensitive and tokenized: every word in the query must appear somewhere in the fields being tested, but words can match in any order and across different fields. Results are ranked by relevance: packs matched on their name first, then packs where a single leg’s teams or match title carries the whole query, then matches spread across other fields. When packs are paused platform-wide, the search returns an empty array.\"\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`,ol:`ol`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Heading}=_components;if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Free-text search over active packs. Public, no authentication required. The search covers exactly the packs the active-pack listing returns, with the same `,_jsx(_components.code,{children:`ACTIVE`}),`, trade-window, and eligibility gating, so it never surfaces a pack the listing hides.`]}),`\n`,_jsx(Heading,{level:`2`,id:`when-to-use`,children:`When to use`}),`\n`,_jsx(_components.p,{children:`Use this endpoint to power a pack search box. Pack names are often editorial and say nothing about their contents, so the search also matches what is inside each pack: leg team names, match titles, market titles, and league names. A user searching for a team or league finds every active pack that carries it, even when the pack name mentions neither.`}),`\n`,_jsx(Heading,{level:`2`,id:`matching`,children:`Matching`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Matching is case- and accent-insensitive: `,_jsx(_components.code,{children:`koln`}),` matches `,_jsx(_components.code,{children:`1. FC Köln`}),`, `,_jsx(_components.code,{children:`fenerbahce`}),` matches `,_jsx(_components.code,{children:`Fenerbahçe`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`The search tokenizes the query, so word order does not matter and words can match across different fields: `,_jsx(_components.code,{children:`man city`}),` finds a Manchester City pack, and `,_jsx(_components.code,{children:`vitality 9z`}),` finds a pack holding both teams in different legs.`]}),`\n`,_jsx(_components.li,{children:`Every word in the query must appear somewhere for a pack to match.`}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`query`}),` must be 2-100 characters. A query shorter than 2 characters after trimming returns an empty array rather than an error, matching `,_jsx(_components.code,{children:`/markets/search`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`ranking`,children:`Ranking`}),`\n`,_jsx(_components.p,{children:`Results come back in three relevance tiers:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Packs whose name matches the query.`}),`\n`,_jsx(_components.li,{children:`Packs where a single leg’s team names or match title carries the whole query. A query spread across different legs does not earn this tier.`}),`\n`,_jsx(_components.li,{children:`Packs matched across any other fields, such as market titles or league names.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Within a tier, packs keep the listing’s order (earliest deadline first).`}),`\n`,_jsx(Heading,{level:`2`,id:`limits-and-availability`,children:`Limits and availability`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`limit`}),` caps the number of results at 1-50. The default is 20.`]}),`\n`,_jsx(_components.li,{children:`When packs are paused platform-wide, the search returns an empty array, matching the listing.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`caching`,children:`Caching`}),`\n`,_jsxs(_components.p,{children:[`Responses carry `,_jsx(_components.code,{children:`Cache-Control: public, max-age=30, stale-while-revalidate=60`}),`, so results can trail the live listing by up to a minute.`]}),`\n`,_jsxs(_components.p,{children:[`To buy a Pack for a managed server-wallet account, follow the `,_jsx(_components.a,{href:`/developers/partner-packs`,children:`Partner Packs workflow`}),` and request a quote for the intended stake.`]})]})}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":"Search Active Packs","openapi":"GET /parlay/packs/search","description":"Free-text search over the packs the active-pack listing returns. The search applies the same ACTIVE, trade-window, and eligibility gating as the listing, so it never surfaces a pack the listing hides. Matches the pack name, each leg's team names, match titles, market titles, and league names. Matching is case- and accent-insensitive and tokenized: every word in the query must appear somewhere in the fields being tested, but words can match in any order and across different fields. Results are ranked by relevance: packs matched on their name first, then packs where a single leg's teams or match title carries the whole query, then matches spread across other fields. When packs are paused platform-wide, the search returns an empty array.","href":"/api-reference/packs/search-packs"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"When to use","slug":"when-to-use","depth":2,"children":[]},{"title":"Matching","slug":"matching","depth":2,"children":[]},{"title":"Ranking","slug":"ranking","depth":2,"children":[]},{"title":"Limits and availability","slug":"limits-and-availability","depth":2,"children":[]},{"title":"Caching","slug":"caching","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Free-text search over the packs the active-pack listing returns. The search applies the same ACTIVE, trade-window, and eligibility gating as the listing, so it never surfaces a pack the listing hides. Matches the pack name, each leg's team names, match titles, market titles, and league names. Matching is case- and accent-insensitive and tokenized: every word in the query must appear somewhere in the fields being tested, but words can match in any order and across different fields. Results are ranked by relevance: packs matched on their name first, then packs where a single leg's teams or match title carries the whole query, then matches spread across other fields. When packs are paused platform-wide, the search returns an empty array.","operationId":"ParlayController_searchPacks","parameters":["e2eab71b-1f87-4bae-b493-9ea049b79da7","867bdad9-aabc-4021-9ad3-083565e0e316"],"responses":{"200":"12823923-23e6-46f9-93c2-d5ab9cec5b0f","400":"ea4d315b-a22d-46d7-b10c-f11d62bce49a"},"summary":"Search active packs","tags":["Packs"],"method":"get","type":"path","servers":["09c89b92-1b1b-488d-af55-0f936f286701"],"security":[],"path":"/parlay/packs/search","baseUrlOptions":["https://api.limitless.exchange"],"title":"Search active packs","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"e2eab71b-1f87-4bae-b493-9ea049b79da7":{"name":"query","required":true,"in":"query","description":"Free-text query, matched case- and accent-insensitively against the pack name, its legs' team names, match titles, market titles, and league names. A query shorter than 2 characters after trimming returns an empty array.","schema":{"example":"liverpool","type":"string","minLength":2,"maxLength":100,"isRequired":true,"description":"Free-text query, matched case- and accent-insensitively against the pack name, its legs' team names, match titles, market titles, and league names. A query shorter than 2 characters after trimming returns an empty array.","uniqueKey":"","typeLabel":"string"}},"867bdad9-aabc-4021-9ad3-083565e0e316":{"name":"limit","required":false,"in":"query","description":"Maximum number of results to return.","schema":{"type":"number","default":20,"minimum":1,"maximum":50,"isRequired":false,"description":"Maximum number of results to return.","uniqueKey":"","typeLabel":"number"}}},"responses":{"12823923-23e6-46f9-93c2-d5ab9cec5b0f":{"description":"Matching active packs, ranked by relevance","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"items.[INDEX].name","typeLabel":"string"},"parlayType":{"type":"string","enum":["CLOB","NEGRISK"],"isRequired":true,"uniqueKey":"items.[INDEX].parlayType","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["ACTIVE","CLOSED","DRAFT","HIDDEN"],"isRequired":true,"uniqueKey":"items.[INDEX].status","typeLabel":"enum\u003cstring>"},"wasteStrategy":{"type":"string","enum":["HOLD","SELL"],"description":"Waste-disposition strategy for parlays bought from this pack","isRequired":true,"uniqueKey":"items.[INDEX].wasteStrategy","typeLabel":"enum\u003cstring>"},"earliestDeadline":{"type":"string","description":"ISO timestamp of the earliest leg deadline","isRequired":true,"uniqueKey":"items.[INDEX].earliestDeadline","typeLabel":"string"},"legs":{"type":"array","items":{"type":"object","properties":{"marketId":{"type":"number","isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].marketId","typeLabel":"number"},"marketSlug":{"type":"string","isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].marketSlug","typeLabel":"string"},"marketTitle":{"type":"string","isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].marketTitle","typeLabel":"string"},"outcome":{"type":"string","enum":["YES","NO"],"isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].outcome","typeLabel":"enum\u003cstring>"},"livePrice":{"type":"number","description":"Current market price (0..1)","isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].livePrice","typeLabel":"number"},"priceSnapshot":{"type":"number","description":"Price at pack build time (0..1)","isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].priceSnapshot","typeLabel":"number"},"resolvedOutcome":{"oneOf":[{"type":"string","enum":["YES","NO"],"description":"Actual on-chain market outcome. Null while the underlying market is unresolved.","isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].resolvedOutcome.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["YES","NO"],"description":"Actual on-chain market outcome. Null while the underlying market is unresolved.","isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].resolvedOutcome.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].resolvedOutcome","typeLabel":"enum\u003cstring> | null"},"esportsPropType":{"oneOf":[{"type":"string","enum":["map_winner","map_handicap","total_maps"],"description":"Which typed esports prop this leg is, so it can be drawn as a prop of a fixture rather than as the fixture. Null on match winners and on every non-esports market.","isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].esportsPropType.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["map_winner","map_handicap","total_maps"],"description":"Which typed esports prop this leg is, so it can be drawn as a prop of a fixture rather than as the fixture. Null on match winners and on every non-esports market.","isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].esportsPropType.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].esportsPropType","typeLabel":"enum\u003cstring> | null"},"outcomeLabels":{"oneOf":[{"type":"array","minItems":2,"maxItems":2,"items":{"type":"string","uniqueKey":"items.[INDEX].legs.items.[INDEX].outcomeLabels.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"For named-outcome markets: labels as [homeTeam/YES, awayTeam/NO]. Null when labels are unavailable.","isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].outcomeLabels.oneOf.0","typeLabel":"string[]"},{"type":"null","minItems":2,"maxItems":2,"items":{"type":"string"},"description":"For named-outcome markets: labels as [homeTeam/YES, awayTeam/NO]. Null when labels are unavailable.","isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].outcomeLabels.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].outcomeLabels","typeLabel":"string[] | null"},"outcomeImageUrls":{"oneOf":[{"type":"array","minItems":2,"maxItems":2,"items":{"oneOf":[{"type":"string","uniqueKey":"items.[INDEX].legs.items.[INDEX].outcomeImageUrls.oneOf.0.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"items.[INDEX].legs.items.[INDEX].outcomeImageUrls.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"null"}],"uniqueKey":"items.[INDEX].legs.items.[INDEX].outcomeImageUrls.oneOf.0.items.[INDEX]","typeLabel":"string | null"},"description":"Outcome-specific artwork as [homeTeam/YES, awayTeam/NO]. Null when no artwork is available.","isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].outcomeImageUrls.oneOf.0","typeLabel":"(string | null)[]"},{"type":"null","minItems":2,"maxItems":2,"items":{"oneOf":[{"type":"string"},{"type":"null"}]},"description":"Outcome-specific artwork as [homeTeam/YES, awayTeam/NO]. Null when no artwork is available.","isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].outcomeImageUrls.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].outcomeImageUrls","typeLabel":"(string | null)[] | null"},"marketType":{"oneOf":[{"type":"string","enum":["CLOB","NEGRISK"],"description":"Per-leg market type (CLOB or NEGRISK); present for mixed-pack intent building","uniqueKey":"items.[INDEX].legs.items.[INDEX].marketType.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["CLOB","NEGRISK"],"description":"Per-leg market type (CLOB or NEGRISK); present for mixed-pack intent building","uniqueKey":"items.[INDEX].legs.items.[INDEX].marketType.oneOf.1","typeLabel":"null"}],"uniqueKey":"items.[INDEX].legs.items.[INDEX].marketType","typeLabel":"enum\u003cstring> | null"},"group":{"oneOf":[{"type":"object","description":"Group context for this leg (null for non-grouped markets)","required":["id","slug","title"],"properties":{"id":{"type":"number","isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.id","typeLabel":"number"},"slug":{"type":"string","isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.slug","typeLabel":"string"},"title":{"type":"string","isRequired":true,"uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.title","typeLabel":"string"},"leagueName":{"oneOf":[{"type":"string","description":"Match group's league/discipline","uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.leagueName.oneOf.0","typeLabel":"string"},{"type":"null","description":"Match group's league/discipline","uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.leagueName.oneOf.1","typeLabel":"null"}],"uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.leagueName","typeLabel":"string | null"},"homeTeam":{"oneOf":[{"type":"string","uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.homeTeam.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.homeTeam.oneOf.1","typeLabel":"null"}],"uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.homeTeam","typeLabel":"string | null"},"awayTeam":{"oneOf":[{"type":"string","uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.awayTeam.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.awayTeam.oneOf.1","typeLabel":"null"}],"uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.awayTeam","typeLabel":"string | null"},"homeScore":{"oneOf":[{"type":"number","uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.homeScore.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.homeScore.oneOf.1","typeLabel":"null"}],"uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.homeScore","typeLabel":"number | null"},"awayScore":{"oneOf":[{"type":"number","uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.awayScore.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.awayScore.oneOf.1","typeLabel":"null"}],"uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.awayScore","typeLabel":"number | null"},"startMatchTimestamp":{"oneOf":[{"type":"number","description":"Match kickoff time (epoch seconds); null for non-sports groups","uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.startMatchTimestamp.oneOf.0","typeLabel":"number"},{"type":"null","description":"Match kickoff time (epoch seconds); null for non-sports groups","uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.startMatchTimestamp.oneOf.1","typeLabel":"null"}],"uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0.startMatchTimestamp","typeLabel":"number | null"}},"uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"items.[INDEX].legs.items.[INDEX].group.oneOf.1","typeLabel":"null"}],"uniqueKey":"items.[INDEX].legs.items.[INDEX].group","typeLabel":"object | null"},"leagueName":{"oneOf":[{"type":"string","description":"Solo market's own league/discipline","uniqueKey":"items.[INDEX].legs.items.[INDEX].leagueName.oneOf.0","typeLabel":"string"},{"type":"null","description":"Solo market's own league/discipline","uniqueKey":"items.[INDEX].legs.items.[INDEX].leagueName.oneOf.1","typeLabel":"null"}],"uniqueKey":"items.[INDEX].legs.items.[INDEX].leagueName","typeLabel":"string | null"},"marketImageUrl":{"oneOf":[{"type":"string","description":"Logo/crest image URL from the leg market","uniqueKey":"items.[INDEX].legs.items.[INDEX].marketImageUrl.oneOf.0","typeLabel":"string"},{"type":"null","description":"Logo/crest image URL from the leg market","uniqueKey":"items.[INDEX].legs.items.[INDEX].marketImageUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"items.[INDEX].legs.items.[INDEX].marketImageUrl","typeLabel":"string | null"},"startMatchTimestamp":{"oneOf":[{"type":"number","description":"Solo market kickoff time (epoch seconds); null when not scheduled","uniqueKey":"items.[INDEX].legs.items.[INDEX].startMatchTimestamp.oneOf.0","typeLabel":"number"},{"type":"null","description":"Solo market kickoff time (epoch seconds); null when not scheduled","uniqueKey":"items.[INDEX].legs.items.[INDEX].startMatchTimestamp.oneOf.1","typeLabel":"null"}],"uniqueKey":"items.[INDEX].legs.items.[INDEX].startMatchTimestamp","typeLabel":"number | null"}},"required":["marketId","marketSlug","marketTitle","outcome","livePrice","priceSnapshot","resolvedOutcome","esportsPropType","outcomeLabels","outcomeImageUrls"],"uniqueKey":"items.[INDEX].legs.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"items.[INDEX].legs","typeLabel":"object[]"},"payout":{"type":"object","description":"Always computed with stake = \"10\"","required":["stake","parlayMultiplier","parlayPayout","singlesMultiplier","singlesPayout","savingsPct"],"properties":{"stake":{"type":"string","description":"Display stake in dollars","example":"10","isRequired":true,"uniqueKey":"items.[INDEX].payout.stake","typeLabel":"string"},"parlayMultiplier":{"type":"number","description":"Parlay multiplier after vig (4dp)","isRequired":true,"uniqueKey":"items.[INDEX].payout.parlayMultiplier","typeLabel":"number"},"parlayPayout":{"type":"string","description":"Parlay payout in dollars (2dp)","example":"76.80","isRequired":true,"uniqueKey":"items.[INDEX].payout.parlayPayout","typeLabel":"string"},"singlesMultiplier":{"type":"number","description":"Average singles multiplier (4dp)","isRequired":true,"uniqueKey":"items.[INDEX].payout.singlesMultiplier","typeLabel":"number"},"singlesPayout":{"type":"string","description":"Singles payout in dollars, stake split equally across legs (2dp)","isRequired":true,"uniqueKey":"items.[INDEX].payout.singlesPayout","typeLabel":"string"},"savingsPct":{"type":"number","description":"Savings percent vs singles","isRequired":true,"uniqueKey":"items.[INDEX].payout.savingsPct","typeLabel":"number"}},"isRequired":true,"uniqueKey":"items.[INDEX].payout","typeLabel":"object"},"properties":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Pack property row id","isRequired":true,"uniqueKey":"items.[INDEX].properties.items.[INDEX].id","typeLabel":"string"},"propertyKeyId":{"type":"string","description":"Property key UUID","isRequired":true,"uniqueKey":"items.[INDEX].properties.items.[INDEX].propertyKeyId","typeLabel":"string"},"propertyKeySlug":{"type":"string","description":"Property key slug (e.g. \"domain\")","isRequired":true,"uniqueKey":"items.[INDEX].properties.items.[INDEX].propertyKeySlug","typeLabel":"string"},"propertyKeyName":{"type":"string","description":"Property key name","isRequired":true,"uniqueKey":"items.[INDEX].properties.items.[INDEX].propertyKeyName","typeLabel":"string"},"value":{"description":"Value for this pack","isRequired":true,"uniqueKey":"items.[INDEX].properties.items.[INDEX].value","typeLabel":"any"}},"required":["id","propertyKeyId","propertyKeySlug","propertyKeyName","value"],"uniqueKey":"items.[INDEX].properties.items.[INDEX]","typeLabel":"object"},"description":"Property-key tags attached to this pack (used by filter pages)","isRequired":true,"uniqueKey":"items.[INDEX].properties","typeLabel":"object[]"},"inDeadlineWindow":{"type":"boolean","description":"Mirrors the deadline gate the active-pack listing applies. False packs are hidden from users even when ACTIVE.","isRequired":true,"uniqueKey":"items.[INDEX].inDeadlineWindow","typeLabel":"boolean"},"packOutcome":{"type":"string","enum":["WON","LOST","PENDING"],"description":"LOST the moment any resolved leg mismatches, WON only when every leg resolves matching, PENDING otherwise","isRequired":true,"uniqueKey":"items.[INDEX].packOutcome","typeLabel":"enum\u003cstring>"},"eligible":{"type":"boolean","description":"True when the pack would be accepted by a quote against current orderbook state. False signals clients to disable the buy CTA and surface ineligibleReason.","uniqueKey":"items.[INDEX].eligible","typeLabel":"boolean"},"ineligibleReason":{"oneOf":[{"type":"string","description":"Single-line reason from the most recent quote attempt when eligible=false. Null when eligible.","uniqueKey":"items.[INDEX].ineligibleReason.oneOf.0","typeLabel":"string"},{"type":"null","description":"Single-line reason from the most recent quote attempt when eligible=false. Null when eligible.","uniqueKey":"items.[INDEX].ineligibleReason.oneOf.1","typeLabel":"null"}],"uniqueKey":"items.[INDEX].ineligibleReason","typeLabel":"string | null"},"payoutCoefficient":{"type":"number","description":"Catalogue payout coefficient.","uniqueKey":"items.[INDEX].payoutCoefficient","typeLabel":"number"}},"required":["id","name","parlayType","status","wasteStrategy","earliestDeadline","legs","payout","properties","inDeadlineWindow","packOutcome"],"uniqueKey":"items.[INDEX]","typeLabel":"object"},"uniqueKey":"","typeLabel":"object[]"},"examples":{"Example":{"title":"Example","value":[{"id":"\u003cstring>","name":"\u003cstring>","parlayType":"CLOB","status":"ACTIVE","wasteStrategy":"HOLD","earliestDeadline":"\u003cstring>","legs":[{"marketId":123,"marketSlug":"\u003cstring>","marketTitle":"\u003cstring>","outcome":"YES","livePrice":123,"priceSnapshot":123,"resolvedOutcome":"YES","esportsPropType":"map_winner","outcomeLabels":["\u003cstring>"],"outcomeImageUrls":["\u003cstring>"],"marketType":"CLOB","group":{"id":123,"slug":"\u003cstring>","title":"\u003cstring>","leagueName":"\u003cstring>","homeTeam":"\u003cstring>","awayTeam":"\u003cstring>","homeScore":123,"awayScore":123,"startMatchTimestamp":123},"leagueName":"\u003cstring>","marketImageUrl":"\u003cstring>","startMatchTimestamp":123}],"payout":{"stake":"10","parlayMultiplier":123,"parlayPayout":"76.80","singlesMultiplier":123,"singlesPayout":"\u003cstring>","savingsPct":123},"properties":[{"id":"\u003cstring>","propertyKeyId":"\u003cstring>","propertyKeySlug":"\u003cstring>","propertyKeyName":"\u003cstring>","value":"\u003cunknown>"}],"inDeadlineWindow":true,"packOutcome":"WON","eligible":true,"ineligibleReason":"\u003cstring>","payoutCoefficient":123}]}},"exampleType":"generated"}},"exampleType":"generated"},"ea4d315b-a22d-46d7-b10c-f11d62bce49a":{"description":"Missing query, query longer than 100 characters, or limit outside 1-50","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{},"servers":{"09c89b92-1b1b-488d-af55-0f936f286701":{"url":"https://api.limitless.exchange","description":"Production API"}}},"originalFileLocation":"openapi.json"},"subdomain":"limitless","siteName":"Limitless Exchange","title":"Search Active Packs - Limitless Exchange","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-20T19:52:57.070Z","originalFileLocation":"api-reference/packs/search-packs.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=\"system\"}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=\"Free-text search over the packs the active-pack listing returns. The search applies the same ACTIVE, trade-window, and eligibility gating as the listing, so it never surfaces a pack the listing hides. Matches the pack name, each leg\u0026#x27;s team names, match titles, market titles, and league names. Matching is case- and accent-insensitive and tokenized: every word in the query must appear somewhere in the fields being tested, but words can match in any order and across different fields. Results are ranked by relevance: packs matched on their name first, then packs where a single leg\u0026#x27;s teams or match title carries the whole query, then matches spread across other fields. When packs are paused platform-wide, the search returns an empty array.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Limitless Exchange\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/limitless/eKG_O-mKVQpNZHIN/_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/limitless/eKG_O-mKVQpNZHIN/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/limitless/eKG_O-mKVQpNZHIN/_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/limitless/eKG_O-mKVQpNZHIN/_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/limitless/eKG_O-mKVQpNZHIN/_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/limitless/eKG_O-mKVQpNZHIN/_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/limitless/eKG_O-mKVQpNZHIN/_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/limitless/eKG_O-mKVQpNZHIN/_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/limitless/eKG_O-mKVQpNZHIN/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Search Active Packs - Limitless Exchange\">\u003cmeta data-mint-head property=\"og:description\" content=\"Free-text search over the packs the active-pack listing returns. The search applies the same ACTIVE, trade-window, and eligibility gating as the listing, so it never surfaces a pack the listing hides. Matches the pack name, each leg\u0026#x27;s team names, match titles, market titles, and league names. Matching is case- and accent-insensitive and tokenized: every word in the query must appear somewhere in the fields being tested, but words can match in any order and across different fields. Results are ranked by relevance: packs matched on their name first, then packs where a single leg\u0026#x27;s teams or match title carries the whole query, then matches spread across other fields. When packs are paused platform-wide, the search returns an empty array.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Limitless Exchange\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.limitless.exchange/api-reference/packs/search-packs\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://limitless.mintlify.site/_mintlify/api/og/v2?division=Packs\u0026amp;title=Search+Active+Packs\u0026amp;description=Free-text+search+over+the+packs+the+active-pack+listing+returns.+The+search+applies+the+same+ACTIVE%2C+trade-window%2C+and+eligibility+gating+as+the+listing%2C+so+it+\u0026amp;theme=888cee6df57f640d9a30d0c6\u0026amp;signature=5b53b0f80171ab4067dba3f78e9ef2dd5193987e5e16c468d2595e2c45c5afd4\">\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=\"Search Active Packs - Limitless Exchange\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Free-text search over the packs the active-pack listing returns. The search applies the same ACTIVE, trade-window, and eligibility gating as the listing, so it never surfaces a pack the listing hides. Matches the pack name, each leg\u0026#x27;s team names, match titles, market titles, and league names. Matching is case- and accent-insensitive and tokenized: every word in the query must appear somewhere in the fields being tested, but words can match in any order and across different fields. Results are ranked by relevance: packs matched on their name first, then packs where a single leg\u0026#x27;s teams or match title carries the whole query, then matches spread across other fields. When packs are paused platform-wide, the search returns an empty array.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://limitless.mintlify.site/_mintlify/api/og/v2?division=Packs\u0026amp;title=Search+Active+Packs\u0026amp;description=Free-text+search+over+the+packs+the+active-pack+listing+returns.+The+search+applies+the+same+ACTIVE%2C+trade-window%2C+and+eligibility+gating+as+the+listing%2C+so+it+\u0026amp;theme=888cee6df57f640d9a30d0c6\u0026amp;signature=5b53b0f80171ab4067dba3f78e9ef2dd5193987e5e16c468d2595e2c45c5afd4\">\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/limitless/eKG_O-mKVQpNZHIN/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Limitless Exchange\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#9AB83A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.limitless.exchange/api-reference/packs/search-packs\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/packs/search-packs.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.limitless.exchange/#organization\",\"name\":\"Limitless Exchange\",\"url\":\"https://docs.limitless.exchange\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/limitless/r7gW3TwphUtCZ8zM/logo/light.svg?fit=max\u0026auto=format\u0026n=r7gW3TwphUtCZ8zM\u0026q=85\u0026s=0d6f32ed5e8a1f35ba9d1fa2e0b57a4b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.limitless.exchange#website\",\"name\":\"Limitless Exchange\",\"url\":\"https://docs.limitless.exchange\",\"publisher\":{\"@id\":\"https://docs.limitless.exchange/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.limitless.exchange/api-reference/packs/search-packs#webpage\",\"url\":\"https://docs.limitless.exchange/api-reference/packs/search-packs\",\"name\":\"Search Active Packs\",\"description\":\"Free-text search over the packs the active-pack listing returns. The search applies the same ACTIVE, trade-window, and eligibility gating as the listing, so it never surfaces a pack the listing hides. Matches the pack name, each leg's team names, match titles, market titles, and league names. Matching is case- and accent-insensitive and tokenized: every word in the query must appear somewhere in the fields being tested, but words can match in any order and across different fields. Results are ranked by relevance: packs matched on their name first, then packs where a single leg's teams or match title carries the whole query, then matches spread across other fields. When packs are paused platform-wide, the search returns an empty array.\",\"dateModified\":\"2026-10-20T19:52:57.070Z\",\"isPartOf\":{\"@id\":\"https://docs.limitless.exchange#website\"},\"breadcrumb\":{\"@id\":\"https://docs.limitless.exchange/api-reference/packs/search-packs#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.limitless.exchange/api-reference/packs/search-packs#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Packs\",\"item\":\"https://docs.limitless.exchange/api-reference/packs/list-packs\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Search Active Packs\",\"item\":\"https://docs.limitless.exchange/api-reference/packs/search-packs\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.limitless.exchange/api-reference/packs/search-packs#apireference\",\"headline\":\"Search Active Packs\",\"name\":\"Search Active Packs\",\"description\":\"Free-text search over the packs the active-pack listing returns. The search applies the same ACTIVE, trade-window, and eligibility gating as the listing, so it never surfaces a pack the listing hides. Matches the pack name, each leg's team names, match titles, market titles, and league names. Matching is case- and accent-insensitive and tokenized: every word in the query must appear somewhere in the fields being tested, but words can match in any order and across different fields. Results are ranked by relevance: packs matched on their name first, then packs where a single leg's teams or match title carries the whole query, then matches spread across other fields. When packs are paused platform-wide, the search returns an empty array.\",\"url\":\"https://docs.limitless.exchange/api-reference/packs/search-packs\",\"mainEntityOfPage\":{\"@id\":\"https://docs.limitless.exchange/api-reference/packs/search-packs#webpage\"},\"dateModified\":\"2026-10-20T19:52:57.070Z\",\"publisher\":{\"@id\":\"https://docs.limitless.exchange/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.limitless.exchange#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Limitless Exchange\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Limitless Exchange\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/packs/search-packs.md","siteName":"Limitless Exchange","nav":{"global":{"anchors":[{"anchor":"Limitless Exchange","icon":"arrow-up-right-from-square","href":"https://limitless.exchange"},{"anchor":"Builders Chat","icon":"telegram","href":"https://t.me/LimitlessBuildersChat"},{"anchor":"Discord","icon":"discord","href":"https://discord.com/invite/yb4SscD8RZ"},{"anchor":"Twitter","icon":"x-twitter","href":"https://x.com/trylimitless"}]},"tabs":[{"tab":"User Guide","pages":[{"title":"User Guide","href":""}]},{"tab":"For Developers","pages":[{"title":"For Developers","href":"/developers/introduction"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"group":"System","pages":[{"title":"Maintenance Status","openapi":"GET /maintenance/status","href":"/api-reference/system/maintenance-status"}]},{"group":"Authentication","pages":[{"title":"User Logout","openapi":"POST /auth/logout","href":"/api-reference/auth/logout"},{"title":"Create API Key","openapi":"POST /auth/api-keys","href":"/api-reference/auth/create-api-key"},{"title":"Get Active API Key","openapi":"GET /auth/api-keys","href":"/api-reference/auth/get-api-key"},{"title":"Revoke API Key","openapi":"DELETE /auth/api-keys","href":"/api-reference/auth/revoke-api-key"}]},{"group":"Markets","pages":[{"title":"Browse Active Markets","openapi":"GET /markets/active","href":"/api-reference/markets/browse-active"},{"title":"Browse Active Markets by Category","openapi":"GET /markets/active/{categoryId}","href":"/api-reference/markets/browse-active-category"},{"title":"Get Category Counts","openapi":"GET /markets/categories/count","href":"/api-reference/markets/category-count"},{"title":"Get Active Market Slugs","openapi":"GET /markets/active/slugs","href":"/api-reference/markets/active-slugs"},{"title":"Market Timeline","href":"/api-reference/markets/timeline"},{"title":"Get Market Details","openapi":"GET /markets/{addressOrSlug}","href":"/api-reference/markets/get-market"},{"title":"Resolve Stable Slug","openapi":"GET /markets/stable/{slug}","href":"/api-reference/markets/resolve-stable-slug"},{"title":"Get Oracle Candlesticks","openapi":"GET /markets/{addressOrSlug}/oracle-candles","href":"/api-reference/markets/oracle-candles"},{"title":"Get Feed Events","openapi":"GET /markets/{slug}/get-feed-events","href":"/api-reference/markets/feed-events"},{"title":"Search Markets","openapi":"GET /markets/search","href":"/api-reference/markets/search"}]},{"group":"Packs","pages":[{"title":"List Packs","openapi":"GET /parlay/packs","description":"Returns active, eligible Packs in their trade window. Returns an empty array while the treasury is below its floor. Catalogue payouts are display estimates for a 10 USDC stake; obtain a partner quote for the intended stake.","href":"/api-reference/packs/list-packs"},{"title":"Search Active Packs","openapi":"GET /parlay/packs/search","href":"/api-reference/packs/search-packs"},{"title":"Get Pack","openapi":"GET /parlay/packs/{id}","description":"Returns catalogue details. A returned Pack is not necessarily active or currently eligible; obtain a partner quote before buying. Hidden Packs return 404.","href":"/api-reference/packs/get-pack"},{"title":"Quote Partner Pack","openapi":"POST /parlay/partner/quote","href":"/api-reference/packs/quote-pack"},{"title":"Buy Partner Pack","openapi":"POST /parlay/partner/buy","href":"/api-reference/packs/buy-pack"},{"title":"List Partner Pack Positions","openapi":"GET /parlay/partner/positions","href":"/api-reference/packs/list-positions"},{"title":"Get Partner Pack Position","openapi":"GET /parlay/partner/positions/{id}","href":"/api-reference/packs/get-position"},{"title":"Claim Partner Pack","openapi":"POST /parlay/partner/positions/{id}/claim","href":"/api-reference/packs/claim-position"},{"title":"Confirm Partner Pack Claim","openapi":"POST /parlay/partner/positions/{id}/claim/confirm","href":"/api-reference/packs/confirm-claim"}]},{"group":"Trading","pages":[{"title":"Create Order","openapi":"POST /orders","href":"/api-reference/trading/create-order"},{"title":"Get Order Status (Batch)","openapi":"POST /orders/status/batch","href":"/api-reference/trading/order-status-batch"},{"title":"Cancel Order (Combined)","openapi":"POST /orders/cancel","href":"/api-reference/trading/cancel"},{"title":"Batch Cancel Orders (Combined)","openapi":"POST /orders/batch-cancel","href":"/api-reference/trading/batch-cancel"},{"title":"Cancel and Replace Order","openapi":"POST /orders/cancel-replace","href":"/api-reference/trading/cancel-replace"},{"title":"Cancel and Replace Orders (Batch)","openapi":"POST /orders/cancel-replace/batch","href":"/api-reference/trading/cancel-replace-batch"},{"title":"Cancel Order","openapi":"DELETE /orders/{orderId}","href":"/api-reference/trading/cancel-order"},{"title":"Cancel Orders (Batch)","openapi":"POST /orders/cancel-batch","href":"/api-reference/trading/cancel-batch"},{"title":"Cancel All Orders","openapi":"DELETE /orders/all/{slug}","href":"/api-reference/trading/cancel-all"},{"title":"Market Maker Heartbeat","openapi":"POST /heartbeats","href":"/api-reference/trading/heartbeats"},{"title":"Get Orderbook","openapi":"GET /markets/{slug}/orderbook","href":"/api-reference/trading/orderbook"},{"title":"Get Historical Prices","openapi":"GET /markets/{slug}/historical-price","href":"/api-reference/trading/historical-price"},{"title":"Get User Orders","openapi":"GET /markets/{slug}/user-orders","href":"/api-reference/trading/user-orders"},{"title":"Get Market Events","openapi":"GET /markets/{slug}/events","href":"/api-reference/trading/market-events"}]},{"group":"Portfolio","pages":[{"title":"Get Current Profile","openapi":"GET /profiles/me","href":"/api-reference/portfolio/get-current-profile"},{"title":"Get Your Profile","openapi":"GET /profiles/{account}","href":"/api-reference/portfolio/get-profile"},{"title":"Get Trades","openapi":"GET /portfolio/trades","href":"/api-reference/portfolio/trades"},{"title":"Get Positions","openapi":"GET /portfolio/positions","href":"/api-reference/portfolio/positions"},{"title":"Redeem Resolved Positions","href":"/api-reference/portfolio/redeem"},{"title":"Split Collateral Into Outcome Set","href":"/api-reference/portfolio/split"},{"title":"Merge Outcome Set Into Collateral","href":"/api-reference/portfolio/merge"},{"title":"Withdraw From Server Wallet","href":"/api-reference/portfolio/withdraw"},{"title":"Add Withdrawal Address","href":"/api-reference/portfolio/add-withdrawal-address"},{"title":"Delete Withdrawal Address","href":"/api-reference/portfolio/delete-withdrawal-address"},{"title":"Get PnL Chart","openapi":"GET /portfolio/pnl-chart","href":"/api-reference/portfolio/pnl-chart"},{"title":"Get History","openapi":"GET /portfolio/history","href":"/api-reference/portfolio/history"},{"title":"Get Points Breakdown","openapi":"GET /portfolio/points","href":"/api-reference/portfolio/points"},{"title":"Get Trading Allowance","openapi":"GET /portfolio/trading/allowance","href":"/api-reference/portfolio/allowance"}]},{"group":"Market Pages \u0026 Navigation","pages":[{"title":"Get Navigation Tree","openapi":"GET /navigation","href":"/api-reference/navigation/get-navigation"},{"title":"Get Market Page by Path","openapi":"GET /market-pages/by-path","href":"/api-reference/navigation/get-page-by-path"},{"title":"List Markets for a Page","openapi":"GET /market-pages/{id}/markets","href":"/api-reference/navigation/list-page-markets"},{"title":"List Property Keys","openapi":"GET /property-keys","href":"/api-reference/navigation/list-property-keys"},{"title":"Get Property Key","openapi":"GET /property-keys/{id}","href":"/api-reference/navigation/get-property-key"},{"title":"List Property Options","openapi":"GET /property-keys/{id}/options","href":"/api-reference/navigation/list-property-options"}]},{"group":"API Tokens","pages":[{"title":"Get Partner Capabilities","openapi":"GET /auth/api-tokens/capabilities","href":"/api-reference/api-tokens/get-capabilities"},{"title":"Derive Scoped Token","openapi":"POST /auth/api-tokens/derive","href":"/api-reference/api-tokens/derive-token"},{"title":"List Active Tokens","openapi":"GET /auth/api-tokens","href":"/api-reference/api-tokens/list-tokens"},{"title":"Revoke Token","openapi":"DELETE /auth/api-tokens/{tokenId}","href":"/api-reference/api-tokens/revoke-token"}]},{"group":"Partner Accounts","pages":[{"title":"Create Partner Sub-Account","openapi":"POST /profiles/partner-accounts","href":"/api-reference/partner-accounts/create-partner-account"},{"title":"List Partner Sub-Accounts","openapi":"GET /profiles/partner-accounts","href":"/api-reference/partner-accounts/list-partner-accounts"},{"title":"Check Partner Account Allowances","openapi":"GET /profiles/partner-accounts/{profileId}/allowances","href":"/api-reference/partner-accounts/check-allowances"},{"title":"Retry Partner Account Allowances","openapi":"POST /profiles/partner-accounts/{profileId}/allowances/retry","href":"/api-reference/partner-accounts/retry-allowances"}]},{"group":"Public Portfolio","pages":[{"title":"Get User Traded Volume","openapi":"GET /portfolio/{account}/traded-volume","href":"/api-reference/public-portfolio/traded-volume"},{"title":"Get User Positions (Public)","openapi":"GET /portfolio/{account}/positions","href":"/api-reference/public-portfolio/positions"},{"title":"Get Realized PnL (Public)","openapi":"GET /portfolio/{account}/realized-pnl","href":"/api-reference/public-portfolio/realized-pnl"},{"title":"Get PnL Chart (Public)","openapi":"GET /portfolio/{account}/pnl-chart","href":"/api-reference/public-portfolio/pnl-chart"},{"title":"Get User History (Public)","openapi":"GET /portfolio/{account}/history","href":"/api-reference/public-portfolio/history"},{"title":"Get User Accuracy (Public)","openapi":"GET /user-stats/accuracy/{account}","href":"/api-reference/public-portfolio/accuracy"},{"title":"Get User Pack Positions (Public)","openapi":"GET /parlay/{account}/positions","href":"/api-reference/public-portfolio/pack-positions"}]},{"group":"Feed","pages":[{"title":"Get Trading Activity Feed","openapi":"GET /feed/trading","href":"/api-reference/feed/trading-feed"}]},{"group":"Referral","pages":[{"title":"Get My Referral Stats","openapi":"GET /referral/usdc/me","href":"/api-reference/referral/my-stats"},{"title":"Get My Referred Users","openapi":"GET /referral/usdc/referrals","href":"/api-reference/referral/my-referrals"},{"title":"Get Referral Leaderboard","openapi":"GET /referral/usdc/leaderboard","href":"/api-reference/referral/leaderboard"},{"title":"Get Friends Leaderboard","openapi":"GET /referral/usdc/leaderboard/friends","href":"/api-reference/referral/leaderboard-friends"}]},{"group":"Leaderboard","pages":[{"title":"Unrealized PnL Leaderboard by Market","openapi":"GET /leaderboard/pnl/unrealized/markets/{marketId}","href":"/api-reference/leaderboard/unrealized-pnl-market"},{"title":"Biggest Open Positions","openapi":"GET /leaderboard/pnl/unrealized/biggest-positions","href":"/api-reference/leaderboard/biggest-positions"}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Search Active Packs - Limitless Exchange","buildId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","deploymentId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CDiBsYGW.js","utils-KF9rPlmF.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C26urKTX.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BdjmJAC1.js","snippetPresets-3IpDBjt3.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-D4x_2vvo.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BIWdc5Pa.js","shallow-LQqfiMNd.js","getApiPlaygroundDisplay-DryzlOZG.js","CodeSnippet-tcJujU4r.js","CodeSnippets-BHp0nVLL.js","Page-1CZdsdAn.js","getPastedJson-DU-1ayUv.js","icon-CZK2hPr4.js","MethodPill-DOaqmTFC.js","DuplicateIcon-B5-nUxxl.js","createIcon-CDP_U77G.js","DynamicMarkdown-GHvayGOn.js","SectionHeading-BYvpkmUD.js","axios-vUo_bRtp.js","Markdown-uxhlayGT.js","clsx-B35qUV0p.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BvrGG8gU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CAf0yVYe.js"]}