Treat cursors as opaque: don’t build or change them. An invalid cursor gets 400 Bad Request.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"EMS Developers","description":"Connect your systems to EMS with the public API.","colors":{"primary":"#C83A1E","light":"#E35D43","dark":"#C83A1E"},"logo":{"light":"/logo/light.svg","dark":"/logo/dark.svg","href":"https://ems.aventia.africa"},"favicon":"/favicon.svg","api":{"openapi":"api-reference/openapi.json","playground":{"display":"simple"},"examples":{"languages":["curl","javascript","python","php","go"]}},"background":{"color":{"light":"#F7F1E8","dark":"#251B2F"}},"navbar":{"primary":{"type":"button","label":"Get API keys","href":"https://ems.aventia.africa/settings/api-keys"}},"footer":{"socials":{"website":"https://ems.aventia.africa"}},"fonts":{"heading":{"family":"Noto Serif","weight":700},"body":{"family":"Noto Sans"}},"integrations":{"telemetry":{"enabled":false}},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"hasAudioNarration":false,"customDomains":[],"gitSource":{"type":"github","owner":"local","repo":"local","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"local","isBase":true},"buildId":"local","clientVersion":"0.0.4071"},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false,"isLoggedInCli":false,"mintExport":{}},"customCss":[],"page":{"pagePath":"pagination","slug":"/pagination","pageMetadata":{"title":"Pagination","description":"Walking through long lists with cursors.","href":"/pagination"},"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: \"Walking through long lists with cursors.\"\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={code:`code`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`List endpoints return one page at a time.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Default`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`limit`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`25`}),_jsx(_components.td,{children:`Items per page, 1 to 100.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cursor`})}),_jsx(_components.td,{children:`none`}),_jsxs(_components.td,{children:[`The `,_jsx(_components.code,{children:`next_cursor`}),` from the previous page.`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`When there are more items, the response includes `,_jsx(_components.code,{children:`next_cursor`}),`. Pass it back to get the next page; when it’s missing, you’ve reached the end.`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -u`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$EMS_PUBLIC_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$EMS_SECRET_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://ems-api.aventia.africa/api/public/v1/events?limit=100\u0026cursor=MTc5...\"`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Treat cursors as opaque: don’t build or change them. An invalid cursor gets `,_jsx(_components.code,{children:`400 Bad Request`}),`.`]})]})}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":"Pagination","description":"Walking through long lists with cursors.","href":"/pagination"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"subdomain":"localhost","siteName":"EMS Developers","title":"Pagination - EMS Developers","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"originalFileLocation":"pagination.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=\"Walking through long lists with cursors.\">\u003cmeta data-mint-head name=\"application-name\" content=\"EMS Developers\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/favicons/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/favicons/favicon-32x32.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/favicons/favicon-16x16.png\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicons/favicon.ico\">\u003cmeta data-mint-head property=\"og:title\" content=\"Pagination - EMS Developers\">\u003cmeta data-mint-head property=\"og:description\" content=\"Walking through long lists with cursors.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"EMS Developers\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://local./pagination\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Pagination - EMS Developers\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Walking through long lists with cursors.\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/favicons/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"EMS Developers\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#C83A1E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://local./pagination\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/pagination.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"EMS Developers\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"EMS Developers","nav":{"tabs":[{"tab":"Guides","groups":[{"group":"Get started","pages":[{"title":"EMS Public API","href":""},{"title":"Quickstart","href":"/quickstart"}]},{"group":"Using the API","pages":[{"title":"Authentication","href":"/authentication"},{"title":"Scopes","description":"What each API key is allowed to do.","href":"/scopes"},{"title":"Pagination","href":"/pagination"},{"title":"Errors","description":"Status codes and error responses.","href":"/errors"},{"title":"Rate limits","href":"/rate-limits"}]},{"group":"Guides","pages":[{"title":"Speakers","href":"/speakers"},{"title":"Uploading photos","href":"/uploading-photos"}]},{"group":"More","pages":[{"title":"Changelog","href":"/changelog"}]}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/api-reference/whoami"}]}]},"basePath":"","title":"Pagination - EMS Developers","buildId":"660b7fc6c9f5","dynamics":[],"chunks":[]}