We recommend getting started in the playground environment. The playground lets you test your integration safely, and playground keys can call every endpoint. To create one, choose Playground key in step 2. When you’re ready to go live, follow this guide again to create a production key.
1
Open the API keys page
Navigate to the API section within your account dashboard. Click the “Create new API key” button to generate a new API key.
The API keys page is empty when you first open it.
2
Choose the environment
You now need to choose the environment to create the API key in. For this guide we will use the production environment.
The environment modal is displayed when you click the 'Create new API key' button.
3
Give the API key a name
You should give the API key a name that will help you identify it. This is helpful when managing multiple API keys. It’s best practice to generate new keys for each use case and revoke them when they are no longer needed.
When creating a new API key, you will be asked to give it a name.
4
Choose the scopes
Scopes control which endpoints a production API key can call. Select only the scopes your integration needs. For example, a key that only places orders needs just create:order.
Playground keys don’t have scopes and can call every endpoint. If you’re creating a playground key, there is no scopes step.
Select the scopes the API key needs.
Giving a key the minimum scopes it needs limits what someone could do with it if it were ever exposed. Use separate keys for separate use cases, such as one key for placing orders and another for reporting. See scopes for the scope each endpoint requires.
5
Copy the API key
After the key is created it will be displayed to you only once. You should copy the key and store it securely. If you loose the key you will need to revoke it and generate a new one.
The API key is displayed to you only once.
Securing your API keyIt is your responsibility to keep your API keys safe and secure. Anyone holding your key will be able to make requests to the API on your behalf.
Review our security best practices for information on how to keep your API keys secure.
Once you have created an API key you can view it on the API keys page. You can also revoke any keys from this page. You can read more in the authentication guide.
The API keys page lists your keys and the scopes of each one.
When making requests to the API you will need to include the API key in the request headers. It must be included in the X-Api-Key header for all requests.
You can verify that your API key is working correctly by making a request to the ping endpoint. This is a simple health check endpoint that requires authentication but doesn’t perform any other operations.
curl -X GET https://api.runa.io/v2/ping \ -H "X-Api-Key: YOUR_API_KEY"
If your API key is valid, you’ll receive this response:
{ "message": "pong"}
If you receive an error, check that:
You’ve copied the entire API key correctly
You’re using the correct environment URL (playground or production)
The API key hasn’t been revoked
The API key has the read:ping scope (a missing scope returns a 403)
Next step: Your first order
Now that you have your API key, let’s put it to use by making your first
order. You’ll learn about the different ordering modes available and choose
the one that best suits your needs. The first order guide uses the playground
environment, so you’ll need a playground key. Create one by choosing
Playground key in step 2. Playground keys don’t have scopes, so there is
no scopes step.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Runa Developer Hub","description":"Send instant B2C payments your recipients will love","colors":{"primary":"#62cc50","light":"#4fff7b","dark":"#3dd463"},"logo":{"light":"https://brand-assets.runa.io/logo-horizontal-black.svg","dark":"https://brand-assets.runa.io/logo-horizontal-white.svg"},"favicon":"https://mintcdn.com/runa/3fuhXTcDrFXCr5CT/favicon.svg?fit=max\u0026auto=format\u0026n=3fuhXTcDrFXCr5CT\u0026q=85\u0026s=34c8b1765044aaa9687fd1647ac25821","navbar":{"links":[],"primary":{"type":"button","label":"Back to app","href":"https://app.runa.io"}},"footer":{"socials":{"website":"https://runa.io","linkedin":"https://www.linkedin.com/company/runapayouts"}},"fonts":{"heading":{"family":"F37 Lineca","weight":600,"source":"https://brand-assets.runa.io/design-system/fonts/f37lineca/F37Lineca-Bold.woff2","format":"woff2"},"body":{"family":"Inter"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"navigation":{"global":{"anchors":[]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"runa","hasAudioNarration":false,"actualSubdomain":"runa","customDomains":["developer.runa.io"],"gitSource":{"type":"github","owner":"wegift","repo":"api-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adf253e16765f5140a05be9","collectionId":"10feacc7-5994-446f-a7ec-454b17cb2dc2","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adf253e16765f5140a05be9"},"feedback":{"thumbs":true,"edits":true,"issues":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adf253e16765f5140a05be9","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"API Guides","count":29},{"language":"default","tag":"API Reference","count":19},{"language":"default","tag":"Features","count":14},{"language":"default","tag":"Changelogs","count":12},{"language":"default","tag":"Network","count":11},{"language":"default","tag":"Archived pages","count":8},{"language":"default","tag":"Before you go live","count":7},{"language":"default","tag":"Getting started","count":7},{"language":"default","tag":"Reference","count":7},{"language":"default","tag":"Orders","count":4}]},"assistantConfig":{"enableStarterQuestions":true,"deflection":{"enabled":true,"email":"support@runa.io","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","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":"editor-v7-file-tree","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":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"starterQuestions":[{"_id":"695cf0470512f37d886f09f6","deploymentId":"67e1763caf7c6a387185058a","questionText":"How should I handle errors from the API?","status":"active","generatedBy":"manual","createdAt":"2026-01-06T11:21:43.258Z","updatedAt":"2026-01-06T11:21:43.258Z","__v":0},{"_id":"695cf01e0512f37d886f0747","deploymentId":"67e1763caf7c6a387185058a","questionText":"How can I create my first order?","status":"active","generatedBy":"manual","createdAt":"2026-01-06T11:21:02.480Z","updatedAt":"2026-01-06T11:21:02.480Z","__v":0},{"_id":"695cf0140512f37d886f06a8","deploymentId":"67e1763caf7c6a387185058a","questionText":"How do I create an API key?","status":"active","generatedBy":"manual","createdAt":"2026-01-06T11:20:52.926Z","updatedAt":"2026-01-06T11:20:52.926Z","__v":0}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"html{overflow-y:scroll}#navbar{color-scheme:dark;color:#fff!important}#navbar,#navbar-transition{background:#000!important}#navbar .text-gray-600,#navbar .text-gray-700,#navbar .text-gray-800,#search-bar-entry{color:#fff!important}.nav-logo.hidden{display:block!important}.nav-logo.block{display:none!important}#search-bar-entry{background:#000!important;border:1px solid rgba(255,255,255,.9)}#assistant-entry{background:#fff}#assistant-entry .text-gray-500,#assistant-entry .text-gray-700{color:#000!important}#chat-assistant-sheet{border-left:1px solid #e5e7eb}.nav-tabs [class*=\"h-[1.5px]\"]{height:3px!important}#navbar a[href=\"https://app.runa.io\"] .bg-primary-dark{background:linear-gradient(20deg,#00ffa3,#93ff82,#eefc51) border-box}#navbar a[href=\"https://app.runa.io\"] .text-white,#navbar a[href=\"https://app.runa.io\"] svg,#navigation-items .text-primary{color:#000}#navigation-items .dark\\:text-primary-light:is(.dark *){color:rgb(var(--primary-light)/var(--tw-text-opacity))}#navigation-items .bg-primary{background-color:#000}#navigation-items .dark\\:bg-primary-light:is(.dark *){background-color:rgb(var(--primary-light)/var(--tw-bg-opacity))}#navigation-items .bg-primary\\/10{background-color:rgb(var(--primary)/.2)}#navigation-items .dark\\:bg-primary-light\\/10:is(.dark *){background-color:rgb(var(--primary-light)/.2)}"},{"filePath":"welcome.css","content":".hero-button{background:linear-gradient(#000,#000) padding-box,linear-gradient(to top right,#00ffa3,#93ff82,#eefc51) border-box;border-radius:50em;border:2px solid transparent;border-radius:3rem;padding:.75rem 2rem;font-size:1rem;color:#fff;font-weight:700;text-decoration:none;text-transform:uppercase;transition:all .3s ease-in-out}.hero-button:hover{background:linear-gradient(#000,#000) padding-box,linear-gradient(to right,#fff,#fff) border-box}"}],"page":{"pagePath":"getting-started/api-key","slug":"/getting-started/api-key","pageMetadata":{"title":"Creating an API key","icon":"key","description":"Create an API key to authenticate your requests","href":"/getting-started/api-key"},"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: \"Create an API key to authenticate your requests\"\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`,ul:`ul`,..._provideComponents(),...props.components},{Card,CodeBlock,Frame,Heading,Note,OptimizedImage,Step,Steps,Tip}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Tip,{children:_jsxs(_components.p,{children:[`We recommend getting started in the `,_jsx(_components.strong,{children:`playground`}),` environment. The playground lets you test your integration safely, and playground keys can call every endpoint. To create one, choose `,_jsx(_components.strong,{children:`Playground key`}),` in step 2. When you’re ready to go live, follow this guide again to create a production key.`]})}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Open the API keys page`,children:[_jsxs(_components.p,{children:[`Navigate to the `,_jsx(_components.a,{href:`https://app.runa.io/api-keys`,children:`API section`}),` within your account dashboard. Click the “Create new API key” button to generate a new API key.`]}),_jsx(Frame,{caption:`The API keys page is empty when you first open it.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/runa/3fuhXTcDrFXCr5CT/assets/screenshots/api-key-page-empty.png?fit=max\u0026auto=format\u0026n=3fuhXTcDrFXCr5CT\u0026q=85\u0026s=14f9dbba8aeaba189d9df484a7d37094`,alt:``,\"data-og-width\":`2671`,width:`2671`,\"data-og-height\":`1335`,height:`1335`,\"data-path\":`assets/screenshots/api-key-page-empty.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/runa/3fuhXTcDrFXCr5CT/assets/screenshots/api-key-page-empty.png?w=280\u0026fit=max\u0026auto=format\u0026n=3fuhXTcDrFXCr5CT\u0026q=85\u0026s=fe49dd8520c18dd9459827fa6521beaa 280w, https://mintcdn.com/runa/3fuhXTcDrFXCr5CT/assets/screenshots/api-key-page-empty.png?w=560\u0026fit=max\u0026auto=format\u0026n=3fuhXTcDrFXCr5CT\u0026q=85\u0026s=33597bce0f81ac0cdd1dd9964020b56e 560w, https://mintcdn.com/runa/3fuhXTcDrFXCr5CT/assets/screenshots/api-key-page-empty.png?w=840\u0026fit=max\u0026auto=format\u0026n=3fuhXTcDrFXCr5CT\u0026q=85\u0026s=e7f464346dacf652e227dfd0c22c6ae1 840w, https://mintcdn.com/runa/3fuhXTcDrFXCr5CT/assets/screenshots/api-key-page-empty.png?w=1100\u0026fit=max\u0026auto=format\u0026n=3fuhXTcDrFXCr5CT\u0026q=85\u0026s=4b61a41241b697a4f58f6f632d794026 1100w, https://mintcdn.com/runa/3fuhXTcDrFXCr5CT/assets/screenshots/api-key-page-empty.png?w=1650\u0026fit=max\u0026auto=format\u0026n=3fuhXTcDrFXCr5CT\u0026q=85\u0026s=c614f95db7db5692011c7153cbefbe7f 1650w, https://mintcdn.com/runa/3fuhXTcDrFXCr5CT/assets/screenshots/api-key-page-empty.png?w=2500\u0026fit=max\u0026auto=format\u0026n=3fuhXTcDrFXCr5CT\u0026q=85\u0026s=5fe1aa560cf743ed9e3c58154664f5da 2500w`})})]}),_jsxs(Step,{title:`Choose the environment`,children:[_jsxs(_components.p,{children:[`You now need to choose the environment to create the API key in. For this guide we will use the `,_jsx(_components.strong,{children:`production`}),` environment.`]}),_jsx(Frame,{caption:`The environment modal is displayed when you click the 'Create new API key' button.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/runa/3fuhXTcDrFXCr5CT/assets/screenshots/api-key-page-env-modal.png?fit=max\u0026auto=format\u0026n=3fuhXTcDrFXCr5CT\u0026q=85\u0026s=c34242251c41e9905c646a6cdf86969d`,alt:``,\"data-og-width\":`1146`,width:`1146`,\"data-og-height\":`642`,height:`642`,\"data-path\":`assets/screenshots/api-key-page-env-modal.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/runa/3fuhXTcDrFXCr5CT/assets/screenshots/api-key-page-env-modal.png?w=280\u0026fit=max\u0026auto=format\u0026n=3fuhXTcDrFXCr5CT\u0026q=85\u0026s=6e1863d8b6107d50aea87baea3591496 280w, https://mintcdn.com/runa/3fuhXTcDrFXCr5CT/assets/screenshots/api-key-page-env-modal.png?w=560\u0026fit=max\u0026auto=format\u0026n=3fuhXTcDrFXCr5CT\u0026q=85\u0026s=a4cf52396f2a5c8045d6e7a24e79d547 560w, https://mintcdn.com/runa/3fuhXTcDrFXCr5CT/assets/screenshots/api-key-page-env-modal.png?w=840\u0026fit=max\u0026auto=format\u0026n=3fuhXTcDrFXCr5CT\u0026q=85\u0026s=fee6d35467423d1342e1f6ca5eece49f 840w, https://mintcdn.com/runa/3fuhXTcDrFXCr5CT/assets/screenshots/api-key-page-env-modal.png?w=1100\u0026fit=max\u0026auto=format\u0026n=3fuhXTcDrFXCr5CT\u0026q=85\u0026s=0bdc9b3a9c91097e2ee6bb0cd881675d 1100w, https://mintcdn.com/runa/3fuhXTcDrFXCr5CT/assets/screenshots/api-key-page-env-modal.png?w=1650\u0026fit=max\u0026auto=format\u0026n=3fuhXTcDrFXCr5CT\u0026q=85\u0026s=f928190f938e95ee290b0a6165743550 1650w, https://mintcdn.com/runa/3fuhXTcDrFXCr5CT/assets/screenshots/api-key-page-env-modal.png?w=2500\u0026fit=max\u0026auto=format\u0026n=3fuhXTcDrFXCr5CT\u0026q=85\u0026s=8cc67bad933452dd7510a7a232921c7d 2500w`})})]}),_jsxs(Step,{title:`Give the API key a name`,children:[_jsx(_components.p,{children:`You should give the API key a name that will help you identify it. This is helpful when managing multiple API keys. It’s best practice to generate new keys for each use case and revoke them when they are no longer needed.`}),_jsx(Frame,{caption:`When creating a new API key, you will be asked to give it a name.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-create-new.png?fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=94ed4c6dfe6dd1d2bf32c429f84d45c7`,alt:``,\"data-og-width\":`668`,width:`668`,\"data-og-height\":`691`,height:`691`,\"data-path\":`assets/screenshots/api-key-page-create-new.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-create-new.png?w=280\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=8b575dc8a53dc0f7e9bdd7e5a4ed0cce 280w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-create-new.png?w=560\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=dd15bfa2d8e3ebf63efc4e7d3f05d068 560w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-create-new.png?w=840\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=6d2ace473b2ab3eb659ed64705d04bf2 840w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-create-new.png?w=1100\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=b393f0b7176e38f60107980d1b0390ac 1100w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-create-new.png?w=1650\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=5e5a811ba1b1a99e0182abd13c4a5767 1650w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-create-new.png?w=2500\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=7a2792c226fc445b58a47f0ab47921f0 2500w`})})]}),_jsxs(Step,{title:`Choose the scopes`,children:[_jsxs(_components.p,{children:[`Scopes control which endpoints a production API key can call. Select only the scopes your integration needs. For example, a key that only places orders needs just `,_jsx(_components.code,{children:`create:order`}),`.`]}),_jsx(Note,{children:_jsx(_components.p,{children:`Playground keys don’t have scopes and can call every endpoint. If you’re creating a playground key, there is no scopes step.`})}),_jsx(Frame,{caption:`Select the scopes the API key needs.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-scopes.png?fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=d7fdb2f24ce79ca9b81174eac0095423`,alt:``,\"data-og-width\":`651`,width:`651`,\"data-og-height\":`692`,height:`692`,\"data-path\":`assets/screenshots/api-key-page-scopes.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-scopes.png?w=280\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=4b4c979abe9ffc212ea8ae70c70c23ba 280w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-scopes.png?w=560\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=0c8a54290e691f5733897e99a16f03cc 560w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-scopes.png?w=840\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=881181778ffe34ecdf0111c339d9b8d2 840w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-scopes.png?w=1100\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=82154e9483f9a6ff7130e1c351949b16 1100w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-scopes.png?w=1650\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=c184983cba250f96baa14238feb10ebe 1650w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-scopes.png?w=2500\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=5cfa36a8af2823c0f0870392ddc7359e 2500w`})}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`Giving a key the minimum scopes it needs limits what someone could do with it if it were ever exposed. Use separate keys for separate use cases, such as one key for placing orders and another for reporting. See `,_jsx(_components.a,{href:`/best-practices/authentication#scopes`,children:`scopes`}),` for the scope each endpoint requires.`]})})]}),_jsxs(Step,{title:`Copy the API key`,children:[_jsx(_components.p,{children:`After the key is created it will be displayed to you only once. You should copy the key and store it securely. If you loose the key you will need to revoke it and generate a new one.`}),_jsx(Frame,{caption:`The API key is displayed to you only once.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-created.png?fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=4cc9a00c8926ad2d6b657d48d25a1e79`,alt:``,\"data-og-width\":`744`,width:`744`,\"data-og-height\":`304`,height:`304`,\"data-path\":`assets/screenshots/api-key-page-created.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-created.png?w=280\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=8ced339658633cc3eaebd22a0f32a098 280w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-created.png?w=560\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=7f4f7ff290d1d36e7feefe29ed0d5950 560w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-created.png?w=840\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=144c2ec78ad271b022c3936e1f5006b3 840w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-created.png?w=1100\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=8950640fea407794597779bc6b106ebc 1100w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-created.png?w=1650\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=fb9e08179f0697cae97cd183fcfbc028 1650w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-created.png?w=2500\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=5284828eb8cf667da8f17db10d888502 2500w`})}),_jsxs(Note,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Securing your API key`})}),_jsxs(_components.p,{children:[`It is your responsibility to keep your API keys safe and secure. Anyone holding your key will be able to make requests to the API on your behalf.\nReview our `,_jsx(_components.a,{href:`/best-practices/security`,children:`security best practices`}),` for information on how to keep your API keys secure.`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`the-api-keys-page`,children:`The API keys page`}),`\n`,_jsxs(_components.p,{children:[`Once you have created an API key you can view it on the `,_jsx(_components.a,{href:`https://app.runa.io/api-keys`,children:`API keys page`}),`. You can also revoke any keys from this page. You can read more in the `,_jsx(_components.a,{href:`/best-practices/authentication`,children:`authentication guide`}),`.`]}),`\n`,_jsx(Frame,{caption:`The API keys page lists your keys and the scopes of each one.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-success.png?fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=69192761641abb657f426f679485ba2b`,alt:``,\"data-og-width\":`1920`,width:`1920`,\"data-og-height\":`600`,height:`600`,\"data-path\":`assets/screenshots/api-key-page-success.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-success.png?w=280\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=52313493b68d1d7ecb39e6ee8dc8f6de 280w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-success.png?w=560\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=c073666787b7f9ace3a52cbc9b11add8 560w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-success.png?w=840\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=380dc9d6d1c83d7de114ba0f43a33dee 840w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-success.png?w=1100\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=42bdc5991cd1f80a6999d391dcf8049e 1100w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-success.png?w=1650\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=c5a6cafbc39b78457bd3e8b114cf3e3f 1650w, https://mintcdn.com/runa/mfksV2DgNSZ_HGxZ/assets/screenshots/api-key-page-success.png?w=2500\u0026fit=max\u0026auto=format\u0026n=mfksV2DgNSZ_HGxZ\u0026q=85\u0026s=c6c63c195507820e93f91f3404eaf5d3 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`using-your-api-key`,children:`Using your API key`}),`\n`,_jsx(Heading,{level:`3`,id:`the-api-key-header`,children:`The API key header`}),`\n`,_jsxs(_components.p,{children:[`When making requests to the API you will need to include the API key in the request headers. It must be included in the `,_jsx(_components.code,{children:`X-Api-Key`}),` header for all requests.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`http`,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:`http`,children:_jsxs(_components.code,{language:`http`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`X-Api-Key`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` YOUR_API_KEY`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`testing-your-api-key`,children:`Testing your API key`}),`\n`,_jsxs(_components.p,{children:[`You can verify that your API key is working correctly by making a request to the `,_jsx(_components.a,{href:`/reference/2024-02-05/endpoint/utility/ping`,children:`ping endpoint`}),`. This is a simple health check endpoint that requires authentication but doesn’t perform any other operations.`]}),`\n`,_jsx(CodeBlock,{filename:``,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:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` GET`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.runa.io/v2/ping`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"X-Api-Key: YOUR_API_KEY\"`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`If your API key is valid, you’ll receive this response:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"pong\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`If you receive an error, check that:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`You’ve copied the entire API key correctly`}),`\n`,_jsx(_components.li,{children:`You’re using the correct environment URL (playground or production)`}),`\n`,_jsx(_components.li,{children:`The API key hasn’t been revoked`}),`\n`,_jsxs(_components.li,{children:[`The API key has the `,_jsx(_components.code,{children:`read:ping`}),` scope (a missing scope returns a `,_jsx(_components.code,{children:`403`}),`)`]}),`\n`]}),`\n`,_jsx(`br`,{}),`\n`,_jsx(Card,{horizontal:true,icon:`arrow-right`,title:`Next step: Your first order`,href:`/getting-started/first-order/which-mode`,children:_jsxs(_components.p,{children:[`Now that you have your API key, let’s put it to use by making your first\norder. You’ll learn about the different ordering modes available and choose\nthe one that best suits your needs. The first order guide uses the playground\nenvironment, so you’ll need a playground key. Create one by choosing\n`,_jsx(_components.strong,{children:`Playground key`}),` in step 2. Playground keys don’t have scopes, so there is\nno scopes step.`]})})]})}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":"Creating an API key","icon":"key","description":"Create an API key to authenticate your requests","href":"/getting-started/api-key"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"The API keys page","slug":"the-api-keys-page","depth":2,"children":[]},{"title":"Using your API key","slug":"using-your-api-key","depth":2,"children":[{"title":"The API key header","slug":"the-api-key-header","depth":3,"children":[]},{"title":"Testing your API key","slug":"testing-your-api-key","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"runa","siteName":"Runa Developer Hub","title":"Creating an API key - Runa Developer Hub","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-26T10:02:49.125Z","originalFileLocation":"getting-started/api-key.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=\"Create an API key to authenticate your requests\">\u003cmeta data-mint-head name=\"application-name\" content=\"Runa Developer Hub\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/runa/w-pOszMLD-yA3smZ/_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/runa/w-pOszMLD-yA3smZ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/runa/w-pOszMLD-yA3smZ/_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/runa/w-pOszMLD-yA3smZ/_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/runa/w-pOszMLD-yA3smZ/_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/runa/w-pOszMLD-yA3smZ/_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/runa/w-pOszMLD-yA3smZ/_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/runa/w-pOszMLD-yA3smZ/_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/runa/w-pOszMLD-yA3smZ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Creating an API key - Runa Developer Hub\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create an API key to authenticate your requests\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Runa Developer Hub\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developer.runa.io/getting-started/api-key\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://runa.mintlify.app/_mintlify/api/og/v2?division=Getting+started\u0026amp;title=Creating+an+API+key\u0026amp;description=Create+an+API+key+to+authenticate+your+requests\u0026amp;theme=75aed3c8a8d1054c0d8d013a\u0026amp;signature=c3205c2318b92228f62ef9d738404b0af99409b32cefef3d518775ec809ab630\">\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=\"Creating an API key - Runa Developer Hub\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create an API key to authenticate your requests\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://runa.mintlify.app/_mintlify/api/og/v2?division=Getting+started\u0026amp;title=Creating+an+API+key\u0026amp;description=Create+an+API+key+to+authenticate+your+requests\u0026amp;theme=75aed3c8a8d1054c0d8d013a\u0026amp;signature=c3205c2318b92228f62ef9d738404b0af99409b32cefef3d518775ec809ab630\">\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/runa/w-pOszMLD-yA3smZ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Runa Developer Hub\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#62cc50\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developer.runa.io/getting-started/api-key\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/getting-started/api-key.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developer.runa.io/#organization\",\"name\":\"Runa Developer Hub\",\"url\":\"https://developer.runa.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://brand-assets.runa.io/logo-horizontal-black.svg\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developer.runa.io#website\",\"name\":\"Runa Developer Hub\",\"url\":\"https://developer.runa.io\",\"publisher\":{\"@id\":\"https://developer.runa.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developer.runa.io/getting-started/api-key#webpage\",\"url\":\"https://developer.runa.io/getting-started/api-key\",\"name\":\"Creating an API key\",\"description\":\"Create an API key to authenticate your requests\",\"dateModified\":\"2026-10-26T10:02:49.125Z\",\"isPartOf\":{\"@id\":\"https://developer.runa.io#website\"},\"breadcrumb\":{\"@id\":\"https://developer.runa.io/getting-started/api-key#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developer.runa.io/getting-started/api-key#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Getting started\",\"item\":\"https://developer.runa.io/getting-started/steps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating an API key\",\"item\":\"https://developer.runa.io/getting-started/api-key\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://developer.runa.io/getting-started/api-key#article\",\"headline\":\"Creating an API key\",\"name\":\"Creating an API key\",\"description\":\"Create an API key to authenticate your requests\",\"url\":\"https://developer.runa.io/getting-started/api-key\",\"mainEntityOfPage\":{\"@id\":\"https://developer.runa.io/getting-started/api-key#webpage\"},\"dateModified\":\"2026-10-26T10:02:49.125Z\",\"publisher\":{\"@id\":\"https://developer.runa.io/#organization\"},\"isPartOf\":{\"@id\":\"https://developer.runa.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Runa Developer Hub\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Runa Developer Hub","nav":{"global":{"anchors":[]},"tabs":[{"tab":"Welcome","pages":[{"title":"Welcome","href":"/welcome"}]},{"tab":"API Guides","groups":[{"group":"Runa Developer","pages":[{"title":"Introduction","icon":"hand-wave","mode":"wide","href":"/introduction"}]},{"group":"Getting started","pages":[{"title":"Steps","icon":"circle-check","mode":"wide","href":"/getting-started/steps"},{"title":"Environments","icon":"tree","description":"Learn about the different API environments available in Runa","href":"/getting-started/environments"},{"title":"Creating an API key","icon":"key","href":"/getting-started/api-key"},{"group":"Your first order","icon":"paper-plane-top","pages":[{"icon":"question","title":"Which mode to use?","description":"The Runa API supports synchronous \u0026 asynchronous modes of ordering. Which is the right mode depends on your use case.","mode":"wide","href":"/getting-started/first-order/which-mode"},{"title":"Sync","icon":"arrow-right-arrow-left","href":"/getting-started/first-order/sync"},{"title":"Async","icon":"rotate","href":"/getting-started/first-order/async"}]},{"title":"Moving to production","icon":"hexagon-check","href":"/getting-started/production"}]},{"group":"Features","pages":[{"title":"Product catalog","icon":"grid","href":"/features/product-catalog"},{"title":"Real-time catalog updates","icon":"webhook","href":"/features/realtime-product-updates"},{"title":"Estimate the price of an order","icon":"calculator-simple","href":"/features/estimate"},{"title":"Managing your balances","icon":"coins","href":"/features/balances"},{"title":"Limiting available products","icon":"filter","href":"/features/limiting-available-products"},{"title":"Customizing and branding the redemption experience","icon":"gift","href":"/features/user-redemption-templates"},{"title":"Save product selections between orders","icon":"grid-2","href":"/features/merchant-selection-template"},{"title":"Paying for an order using another currency","icon":"money-bill-transfer","href":"/features/embedded-fx"},{"group":"Push to Card","icon":"boxes-stacked","pages":[{"title":"Using Push to Card","icon":"credit-card","href":"/features/push-to-card/introduction"},{"title":"Testing","icon":"flask","href":"/features/push-to-card/testing"},{"title":"Support","icon":"circle-info","href":"/features/push-to-card/support"}]},{"group":"Prepaid Visa Cards","icon":"credit-card","pages":[{"title":"Using Prepaid Visa Cards","icon":"credit-card","href":"/features/prepaid-visa/introduction"},{"title":"Card spend controls","icon":"shield-check","href":"/features/prepaid-visa/spend-controls"},{"title":"Support","icon":"circle-info","href":"/features/prepaid-visa/support"}]}]},{"group":"Before you go live","pages":[{"title":"Getting ready to go live","icon":"star","href":"/best-practices/before-you-go-live"},{"title":"Authentication","icon":"key","href":"/best-practices/authentication"},{"title":"Security","icon":"shield","href":"/best-practices/security"},{"title":"Idempotency","icon":"fingerprint","href":"/best-practices/idempotency"},{"title":"Handling Errors","icon":"circle-exclamation","href":"/best-practices/handling-errors"},{"title":"Rate Limits","icon":"stopwatch","href":"/best-practices/rate-limits"},{"title":"API versioning","icon":"code-branch","href":"/best-practices/api-versioning"}]}]},{"tab":"API Reference","versions":[{"version":"2024-02-05","groups":[{"group":"Reference","pages":[{"title":"Introduction","icon":"book","href":"/reference/2024-02-05/introduction"},{"title":"Error types","icon":"circle-exclamation","mode":"wide","href":"/reference/2024-02-05/errors"},{"icon":"puzzle-piece-simple","title":null,"href":"/reference/2024-02-05/playground"},{"title":"Webhooks","icon":"webhook","href":"/reference/webhooks"},{"title":"Supported countries","icon":"flag","mode":"wide","href":"/reference/countries"},{"title":"Currencies","icon":"coins","mode":"wide","href":"/reference/currencies"},{"title":"Pagination","icon":"file","href":"/reference/pagination"}]},{"group":"Orders","pages":[{"title":"Create a new order","openapi":"reference/2024-02-05/openapi.json POST /order","href":"/reference/2024-02-05/endpoint/orders/create"},{"title":"Get order details","openapi":"reference/2024-02-05/openapi.json GET /order/{id}","href":"/reference/2024-02-05/endpoint/orders/get"},{"title":"List orders","openapi":"reference/2024-02-05/openapi.json GET /order","href":"/reference/2024-02-05/endpoint/orders/list"},{"title":"Estimate order","openapi":"reference/2024-02-05/openapi.json POST /order/estimate","href":"/reference/2024-02-05/endpoint/orders/estimate"}]},{"group":"Products","pages":[{"title":"List products","openapi":"reference/2024-02-05/openapi.json GET /product","href":"/reference/2024-02-05/endpoint/products/list"},{"title":"Get product details","openapi":"reference/2024-02-05/openapi.json GET /product/{product_code}","href":"/reference/2024-02-05/endpoint/products/get"},{"title":"List countries","openapi":"reference/2024-02-05/openapi.json GET /product/countries","href":"/reference/2024-02-05/endpoint/products/countries"},{"title":"List categories","openapi":"reference/2024-02-05/openapi.json GET /product/categories","href":"/reference/2024-02-05/endpoint/products/categories"}]},{"group":"Balance","pages":[{"title":"Get account balance","openapi":"reference/2024-02-05/openapi.json GET /balance","href":"/reference/2024-02-05/endpoint/balance/get"}]},{"group":"Utility","pages":[{"title":"Ping","openapi":"reference/2024-02-05/openapi.json GET /ping","href":"/reference/2024-02-05/endpoint/utility/ping"}]},{"group":"Webhooks","pages":[{"title":"Order completion","openapi":"reference/2024-02-05/openapi.json WEBHOOK order.completion","href":"/reference/2024-02-05/webhook/order.completion"},{"title":"Product update","openapi":"reference/2024-02-05/openapi.json WEBHOOK product.update","href":"/reference/2024-02-05/webhook/product.update"}]}]}]},{"tab":"Changelogs","pages":[{"title":"Changelogs","href":"/changelog/api"}]}]},"title":"Creating an API key - Runa Developer Hub","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-COGkNuA6.js","DynamicMarkdown-85clUA0i.js","zoom-image-lightbox-BZxD9MAj.js","lightbox-handle-r17bVUz3.js"]}