CINXE.COM
Auth Code Grant Flow
<!DOCTYPE html><html lang="en" style="" data-color-mode="light" class=" useReactApp "><head><meta charset="utf-8"><meta name="readme-deploy" content="5.314.0"><meta name="readme-subdomain" content="universe"><meta name="readme-version" content="3"><title>Auth Code Grant Flow</title><meta name="description" content="📘 OAuth Application Required: In order to authorize with OAuth, you are required to create a Universe application. Applications can be created here: https://www.universe.com/oauth/applications Universe has built-in support for the OAuth 2.0 Auth Code Grant Flow . All authorized requests in our API ..."><meta property="og:title" content="Auth Code Grant Flow"><meta property="og:description" content="📘 OAuth Application Required: In order to authorize with OAuth, you are required to create a Universe application. Applications can be created here: https://www.universe.com/oauth/applications Universe has built-in support for the OAuth 2.0 Auth Code Grant Flow . All authorized requests in our API ..."><meta property="og:site_name" content="Universe Public API"><meta name="twitter:title" content="Auth Code Grant Flow"><meta name="twitter:description" content="📘 OAuth Application Required: In order to authorize with OAuth, you are required to create a Universe application. Applications can be created here: https://www.universe.com/oauth/applications Universe has built-in support for the OAuth 2.0 Auth Code Grant Flow . All authorized requests in our API ..."><meta name="twitter:card" content="summary_large_image"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta property="og:image" content="https://files.readme.io/f9d220d-small-grey-color-small.png"><meta name="twitter:image" content="https://files.readme.io/f9d220d-small-grey-color-small.png"><link id="favicon" rel="shortcut icon" href="https://developers.universe.com/favicon.ico" type="image/x-icon"><link rel="canonical" href="https://developers.universe.com/docs/authorizing-with-oauth"><script src="https://cdn.readme.io/public/js/cash-dom.min.js?1743031252170"></script><link data-chunk="List" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/List.0b0b64406047e2a3670a.css"> <link data-chunk="routes-Tutorials" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/routes-Tutorials.7e7736cc7c5b0affc361.css"> <link data-chunk="CustomPage" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/CustomPage.38a39d6ce8b0e2afad5a.css"> <link data-chunk="Page" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/Page.b2c21b39a87b5c42c152.css"> <link data-chunk="routes-Discuss" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/routes-Discuss.b6e3c66bfa4e65097f5f.css"> <link data-chunk="routes-Landing" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/routes-Landing.332d7eed7b2d976c458e.css"> <link data-chunk="Editor" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/Editor.23606d783f007047768a.css"> <link data-chunk="routes-Changelog" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/routes-Changelog.28957affcff81e852361.css"> <link data-chunk="routes-SuperHub-Routes" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/routes-SuperHub-Routes.121e43a311e7e40b8656.css"> <link data-chunk="routes-PageNotFound" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/routes-PageNotFound.d8afd1171cf7a455eed7.css"> <link data-chunk="routes-Doc" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/routes-Doc.0ab6d6e327e2be33020a.css"> <link data-chunk="Footer" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/Footer.7ca87f1efe735da787ba.css"> <link data-chunk="routes-Reference" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/routes-Reference.883d037c9b5898d42a5d.css"> <link data-chunk="Header" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/Header.4c8c34bca506869e518a.css"> <link data-chunk="routes-SuperHub" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/routes-SuperHub.99a5d42d4a6e4f0fafbc.css"> <link data-chunk="routes-SuperHub" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/7188.75e3fc491ee8103c63a3.css"> <link data-chunk="routes-SuperHub" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/2395.593cd7b6ba0bdb6787a8.css"> <link data-chunk="main" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/main.4c43266695a6f2b7b2bf.css"> <link data-chunk="main" rel="preload" as="style" href="https://cdn.readme.io/public/hub/web/ui-styles.fabafc9dbb50aa8c5ad2.css"> <link data-chunk="main" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/main.8401cd74fcdd93642c6b.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/6601.cef2fa12a9b5e2b9df03.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/1802.00a1e88cc0d9da2aae1b.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/6563.fbd3d15eee3b5e94f665.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/9772.2b0a744b76cb77e0dced.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/4904.1067704c85da57778e22.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/7449.dae0332305a8704415a6.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/7372.fbd27ab77e6e47de9931.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/2249.cb1f4fb7d2cce2c5e425.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/5382.f3d48dea01a7ee0548c9.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/734.2949e3d7010fa5c21ffd.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/954.53ce7f86793664155f78.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/6903.75b9333e2c99d6924d0e.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/2395.0e49c51ab8d22525f6ff.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/8161.a15ebcbf0b5b4748c0fd.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/1008.828e1c3ad92702b30f8b.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/7188.006f6f7e3184fb873f71.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/5753.19245c7129f056485c33.js"> <link data-chunk="routes-SuperHub" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-SuperHub.80f0348ff5861a413a46.js"> <link data-chunk="Header" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/3901.9a23139e8c32bd6a1186.js"> <link data-chunk="Header" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/7783.4d5a6e419a35233ebd3c.js"> <link data-chunk="Header" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/Header.e076d4e6ea766318a213.js"> <link data-chunk="core-icons-chevron-up-down-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-chevron-up-down-svg.6aae957df71e6f4c5e24.js"> <link data-chunk="routes-Reference" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/4287.916cdd386055d2c5d238.js"> <link data-chunk="routes-Reference" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/5948.a51402657e2eb40ab43b.js"> <link data-chunk="routes-Reference" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/4201.ae4918ddf0595a4bfca6.js"> <link data-chunk="routes-Reference" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/8230.69318b242a05e8e74cd8.js"> <link data-chunk="routes-Reference" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-Reference.52b5b8c183631200e8bc.js"> <link data-chunk="core-icons-more-vertical-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-more-vertical-svg.4822b3f831e11095980d.js"> <link data-chunk="core-icons-lock-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-lock-svg.70942d3ee6bad6267696.js"> <link data-chunk="Footer" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/Footer.f3a023593089686064a9.js"> <link data-chunk="routes-Doc" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-Doc.a69d1038565eec3baddc.js"> <link data-chunk="routes-PageNotFound" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-PageNotFound.7f382f4941474998a761.js"> <link data-chunk="core-icons-alert-circle-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-alert-circle-svg.4cee8264c97045599b56.js"> <link data-chunk="core-icons-search-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-search-svg.ad9cac962958d30983a7.js"> <link data-chunk="core-icons-custom-pages-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-custom-pages-svg.444e514638d9afbec182.js"> <link data-chunk="routes-SuperHub-Routes" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/7717.c3f46aef4dac129abcfb.js"> <link data-chunk="routes-SuperHub-Routes" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/5359.fb0c48929b1827a8a2b2.js"> <link data-chunk="routes-SuperHub-Routes" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-SuperHub-Routes.f7a42c9e7ca76978c49b.js"> <link data-chunk="RMDX" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/RMDX.6966846032c03969e44f.js"> <link data-chunk="routes-Changelog" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-Changelog.c2ef3ef5eb8f547c5186.js"> <link data-chunk="Post" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/Post.71d2a77f709abc802115.js"> <link data-chunk="Editor" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/Editor.778b5192afd13371d8ec.js"> <link data-chunk="core-icons-x-circle-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-x-circle-svg.abc0e0ea5b7f9dff667c.js"> <link data-chunk="core-icons-suggested-edits-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-suggested-edits-svg.8d2d8ac2fd22ded9238d.js"> <link data-chunk="core-icons-arrow-right-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-arrow-right-svg.eadb74658f93b4e7d75f.js"> <link data-chunk="core-icons-chevron-down-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-chevron-down-svg.e20b84e9871bd73d1b8c.js"> <link data-chunk="routes-Landing" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/6591.ebe74884cadb175806e0.js"> <link data-chunk="routes-Landing" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-Landing.55eccb79070682a90c02.js"> <link data-chunk="routes-Discuss" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-Discuss.9ac9478f3014cd9a6ef2.js"> <link data-chunk="Page" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/2637.910d32e664cf986b636e.js"> <link data-chunk="Page" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/Page.2c323cd107e7e82fe5ce.js"> <link data-chunk="CustomPage" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/3457.54b5f96a07aafc769550.js"> <link data-chunk="CustomPage" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/2859.dc9d7bf83dcb38e2167f.js"> <link data-chunk="routes-Tutorials" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/routes-Tutorials.6686c9c18f1ee096cdc9.js"> <link data-chunk="core-icons-eye-off-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-eye-off-svg.b2b8b241b4b324dfd9c1.js"> <link data-chunk="List" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/4674.b77d8e6ddbdaef99bf47.js"> <link data-chunk="List" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/List.ff2cf58cdb1ec8d5703f.js"> <link data-chunk="core-icons-webhook-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-webhook-svg.fe540ea1c09e1c0e0247.js"> <link data-chunk="core-icons-arrow-up-right-svg" rel="preload" as="script" href="https://cdn.readme.io/public/hub/web/core-icons-arrow-up-right-svg.8ec73f7e322d79a2695b.js"> <link data-chunk="main" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/ui-styles.fabafc9dbb50aa8c5ad2.css"> <link data-chunk="main" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/main.4c43266695a6f2b7b2bf.css"> <link data-chunk="routes-SuperHub" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/2395.593cd7b6ba0bdb6787a8.css"> <link data-chunk="routes-SuperHub" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/7188.75e3fc491ee8103c63a3.css"> <link data-chunk="routes-SuperHub" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/routes-SuperHub.99a5d42d4a6e4f0fafbc.css"> <link data-chunk="Header" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/Header.4c8c34bca506869e518a.css"> <link data-chunk="routes-Reference" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/routes-Reference.883d037c9b5898d42a5d.css"> <link data-chunk="Footer" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/Footer.7ca87f1efe735da787ba.css"> <link data-chunk="routes-Doc" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/routes-Doc.0ab6d6e327e2be33020a.css"> <link data-chunk="routes-PageNotFound" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/routes-PageNotFound.d8afd1171cf7a455eed7.css"> <link data-chunk="routes-SuperHub-Routes" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/routes-SuperHub-Routes.121e43a311e7e40b8656.css"> <link data-chunk="routes-Changelog" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/routes-Changelog.28957affcff81e852361.css"> <link data-chunk="Editor" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/Editor.23606d783f007047768a.css"> <link data-chunk="routes-Landing" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/routes-Landing.332d7eed7b2d976c458e.css"> <link data-chunk="routes-Discuss" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/routes-Discuss.b6e3c66bfa4e65097f5f.css"> <link data-chunk="Page" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/Page.b2c21b39a87b5c42c152.css"> <link data-chunk="CustomPage" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/CustomPage.38a39d6ce8b0e2afad5a.css"> <link data-chunk="routes-Tutorials" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/routes-Tutorials.7e7736cc7c5b0affc361.css"> <link data-chunk="List" rel="stylesheet" href="https://cdn.readme.io/public/hub/web/List.0b0b64406047e2a3670a.css"><!-- CUSTOM CSS--><style title="rm-custom-css">:root{--project-color-primary:#4E78F1;--project-color-inverse:#fff;--recipe-button-color:#3A66E5;--recipe-button-color-hover:#163aa3;--recipe-button-color-active:#102a76;--recipe-button-color-focus:rgba(58, 102, 229, 0.25);--recipe-button-color-disabled:#eef2fd}[id=enterprise] .ReadMeUI[is=AlgoliaSearch]{--project-color-primary:#4E78F1;--project-color-inverse:#fff}a{color:var(--color-link-primary,#3a66e5)}a:hover{color:var(--color-link-primary-darken-5,#163aa3)}a.text-muted:hover{color:var(--color-link-primary,#3a66e5)}.btn.btn-primary{background-color:#3a66e5}.btn.btn-primary:hover{background-color:#163aa3}.theme-line #hub-landing-top h2{color:#3a66e5}#hub-landing-top .btn:hover{color:#3a66e5}.theme-line #hub-landing-top .btn:hover{color:#fff}.theme-solid header#hub-header #header-top{background-color:#4e78f1}.theme-solid.header-gradient header#hub-header #header-top{background:linear-gradient(to bottom,#4e78f1,#3cc6f2)}.theme-solid.header-custom header#hub-header #header-top{background-image:url(undefined)}.theme-line header#hub-header #header-top{border-bottom-color:#4e78f1}.theme-line header#hub-header #header-top .btn{background-color:#4e78f1}header#hub-header #header-top #header-logo{width:162px;height:40px;margin-top:0;background-image:url(https://files.readme.io/55d0959-small-logo.png)}#hub-subheader-parent #hub-subheader .hub-subheader-breadcrumbs .dropdown-menu a:hover{background-color:#4e78f1}#subheader-links a.active{color:#4e78f1!important;box-shadow:inset 0 -2px 0 #4e78f1}#subheader-links a:hover{color:#4e78f1!important;box-shadow:inset 0 -2px 0 #4e78f1;opacity:.7}.discussion .submit-vote.submit-vote-parent.voted a.submit-vote-button{background-color:#3a66e5}section#hub-discuss .discussion a .discuss-body h4{color:#3a66e5}section#hub-discuss .discussion a:hover .discuss-body h4{color:#163aa3}#hub-subheader-parent #hub-subheader.sticky-header.sticky{border-bottom-color:#3a66e5}#hub-subheader-parent #hub-subheader.sticky-header.sticky .search-box{border-bottom-color:#3a66e5}#hub-search-results h3 em{color:#3a66e5}.main_background,.tag-item{background:#3a66e5!important}.main_background:hover{background:#163aa3!important}.main_color{color:#4e78f1!important}.border_bottom_main_color{border-bottom:2px solid #4e78f1}.main_color_hover:hover{color:#4e78f1!important}section#hub-discuss h1{color:#3a66e5}#hub-reference .hub-api .api-definition .api-try-it-out.active{border-color:#3a66e5;background-color:#3a66e5}#hub-reference .hub-api .api-definition .api-try-it-out.active:hover{background-color:#163aa3;border-color:#163aa3}#hub-reference .hub-api .api-definition .api-try-it-out:hover{border-color:#3a66e5;color:#3a66e5}#hub-reference .hub-reference .logs .logs-empty .logs-login-button,#hub-reference .hub-reference .logs .logs-login .logs-login-button{background-color:var(--project-color-primary,#3a66e5);border-color:var(--project-color-primary,#3a66e5)}#hub-reference .hub-reference .logs .logs-empty .logs-login-button:hover,#hub-reference .hub-reference .logs .logs-login .logs-login-button:hover{background-color:#163aa3;border-color:#163aa3}#hub-reference .hub-reference .logs .logs-empty>svg>path,#hub-reference .hub-reference .logs .logs-login>svg>path{fill:#3a66e5;fill:var(--project-color-primary,#3a66e5)}#hub-reference .hub-reference .logs:last-child .logs-empty,#hub-reference .hub-reference .logs:last-child .logs-login{margin-bottom:35px}#hub-reference .hub-reference .hub-reference-section .hub-reference-left header .hub-reference-edit:hover{color:#3a66e5}.main-color-accent{border-bottom:3px solid #4e78f1;padding-bottom:8px}/*! BEGIN HUB_CUSTOM_STYLES */.content-body .magic-block-callout.type-info{border-color:#e2e5e7;background-color:#f5f5f5}.content-body .magic-block-callout.type-info h3{color:#4e78f1}.content-body .magic-block-callout .fa.fa-info-circle{color:#4e78f1}.content-body h2{color:#fff}p{line-height:18px;margin-bottom:20px;font-size:16px}/*! END HUB_CUSTOM_STYLES */</style><meta name="loadedProject" content="universe"><script>var storedColorMode = `light` === 'system' ? window.localStorage.getItem('color-scheme') : `light` document.querySelector('[data-color-mode]').setAttribute('data-color-mode', storedColorMode)</script><script id="config" type="application/json" data-json="{"algoliaIndex":"readme_search_v2","amplitude":{"apiKey":"dc8065a65ef83d6ad23e37aaf014fc84","enabled":true},"asset_url":"https://cdn.readme.io","domain":"readme.io","domainFull":"https://dash.readme.com","encryptedLocalStorageKey":"ekfls-2025-03-26","fullstory":{"enabled":true,"orgId":"FSV9A"},"metrics":{"billingCronEnabled":"true","dashUrl":"https://m.readme.io","defaultUrl":"https://m.readme.io","exportMaxRetries":12,"wsUrl":"wss://m.readme.io"},"proxyUrl":"https://try.readme.io","readmeRecaptchaSiteKey":"6LesVBYpAAAAAESOCHOyo2kF9SZXPVb54Nwf3i2x","releaseVersion":"5.314.0","sentry":{"dsn":"https://3bbe57a973254129bcb93e47dc0cc46f@o343074.ingest.sentry.io/2052166","enabled":true,"tracesSampleRate":0},"shMigration":{"promoVideo":"","forceWaitlist":false},"sslBaseDomain":"readmessl.com","sslGenerationService":"ssl.readmessl.com","stripePk":"pk_live_5103PML2qXbDukVh7GDAkQoR4NSuLqy8idd5xtdm9407XdPR6o3bo663C1ruEGhXJjpnb2YCpj8EU1UvQYanuCjtr00t1DRCf2a","superHub":{"newProjectsEnabled":true},"wootric":{"accountToken":"NPS-122b75a4","enabled":true}}"></script></head><body class="body-none theme-solid header-solid header-bg-size-auto header-bg-pos-tl header-overlay-blueprint reference-layout-row lumosity-normal "><div id="ssr-top"></div><div id="ssr-main"><div class="App ThemeContext ThemeContext_dark " style="--color-primary:#4E78F1;--color-primary-inverse:#fff;--color-primary-alt:#3CC6F2;--color-primary-darken-10:#1f54ed;--color-primary-darken-20:#1040c9;--color-primary-alpha-25:rgba(78, 120, 241, 0.25);--color-link-primary:#3A66E5;--color-link-primary-darken-5:#2354e2;--color-link-primary-darken-10:#1c4ad0;--color-link-primary-darken-20:#163aa3;--color-link-primary-alpha-50:rgba(58, 102, 229, 0.5);--color-link-primary-alpha-25:rgba(58, 102, 229, 0.25);--color-link-background:rgba(58, 102, 229, 0.09);--color-link-text:#fff;--color-login-link:#018ef5;--color-login-link-text:#fff;--color-login-link-darken-10:#0171c2;--color-login-link-primary-alpha-50:rgba(1, 142, 245, 0.5)"><header class="Header3zzata9F_ZPQ rm-Header "><div class="rm-Header-top Header-topuTMpygDG4e1V"><div class="rm-Container rm-Container_flex"><div style="outline:none" tabindex="-1"><a href="#content" target="_self" class="Button Button_md rm-JumpTo Header-jumpTo3IWKQXmhSI5D Button_primary">Jump to Content</a></div><div class="rm-Header-left Header-leftADQdGVqx1wqU"><a class="rm-Logo Header-logo1Xy41PtkzbdG" href="/" target="_self"><img alt="Universe Public API" class="rm-Logo-img Header-logo-img3YvV4lcGKkeb" src="https://files.readme.io/55d0959-small-logo.png"/></a><a aria-current="page" class="Button Button_md rm-Header-link rm-Header-top-link Button_slate_text rm-Header-top-link_active Header-link2tXYTgXq85zW active" href="/docs" target="_self">Guides</a><a class="Button Button_md rm-Header-link rm-Header-top-link Button_slate_text Header-link2tXYTgXq85zW" href="/reference" target="_self">API</a><a class="Button Button_md rm-Header-link rm-Header-top-link Button_slate_text Header-link2tXYTgXq85zW" href="https://careers.universe.com/" target="_self" to="https://careers.universe.com/">Careers</a><a class="Button Button_md rm-Header-link rm-Header-top-link Button_slate_text Header-link2tXYTgXq85zW" href="https://engineering.universe.com/" target="_self" to="https://engineering.universe.com/">Blog</a><a class="Button Button_md rm-Header-link rm-Header-top-link Button_slate_text Header-link2tXYTgXq85zW" href="/page/open-source" target="_self">Open Source</a></div><div class="rm-Header-left Header-leftADQdGVqx1wqU Header-left_mobile1RG-X93lx6PF"><div><button aria-label="Toggle navigation menu" class="icon-menu menu3d6DYNDa3tk5" type="button"></button><div class=""><div class="Flyout95xhYIIoTKtc undefined rm-Flyout" data-testid="flyout"><div class="MobileFlyout1hHJpUd-nYkd"><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- " href="/" target="_self"><i class="icon-landing-page-2 NavItem-badge1qOxpfTiALoz"></i><span class="NavItem-textSlZuuL489uiw">Home</span></a><a aria-current="page" class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- active" href="/docs" target="_self"><i class="icon-guides NavItem-badge1qOxpfTiALoz"></i><span class="NavItem-textSlZuuL489uiw">Guides</span></a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- " href="/reference" target="_self"><i class="icon-references NavItem-badge1qOxpfTiALoz"></i><span class="NavItem-textSlZuuL489uiw">API</span></a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- " href="/changelog" target="_self"><i class="icon-changelog NavItem-badge1qOxpfTiALoz"></i><span class="NavItem-textSlZuuL489uiw">Changelog</span></a><hr class="MobileFlyout-divider10xf7R2X1MeW"/><a aria-current="page" class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- NavItem_dropdown-muted1xJVuczwGc74 active" href="/docs" target="_self">Guides</a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- NavItem_dropdown-muted1xJVuczwGc74" href="/reference" target="_self">API</a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- NavItem_dropdown-muted1xJVuczwGc74" href="https://careers.universe.com/" rel="noopener" target="_blank" to="https://careers.universe.com/">Careers</a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- NavItem_dropdown-muted1xJVuczwGc74" href="https://engineering.universe.com/" rel="noopener" target="_blank" to="https://engineering.universe.com/">Blog</a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- NavItem_dropdown-muted1xJVuczwGc74" href="/page/open-source" target="_self">Open Source</a><a class="rm-MobileFlyout-item NavItem-item1gDDTqaXGhm1 NavItem-item_mobile1qG3gd-Mkck- NavItem_dropdown-muted1xJVuczwGc74" href="/login?redirect_uri=/docs/authorizing-with-oauth" target="_self" to="/login?redirect_uri=/docs/authorizing-with-oauth">Log In</a><a class="MobileFlyout-logo3Lq1eTlk1K76 Header-logo1Xy41PtkzbdG rm-Logo" href="/" target="_self"><img alt="Universe Public API" class="Header-logo-img3YvV4lcGKkeb rm-Logo-img" src="https://files.readme.io/55d0959-small-logo.png"/></a></div></div></div></div><div class="Header-left-nav2xWPWMNHOGf_"><i class="icon-guides Header-left-nav-icon10glJKFwewOv"></i>Guides</div></div><div class="rm-Header-right Header-right21PC2XTT6aMg"><span class="Header-right_desktop14ja01RUQ7HE"><a href="/login?redirect_uri=/docs/authorizing-with-oauth" target="_self" class="Button Button_slate_text Button_md Header-link2tXYTgXq85zW undefined NavItem_mdrYO3ChA2kYvP rm-Header-top-link rm-Header-top-link_login Button_primary">Log In</a></span><div class="Header-searchtb6Foi0-D9Vx"><button aria-label="Search ⌘k" class="rm-SearchToggle" data-symbol="⌘"><div class="rm-SearchToggle-icon icon-search1"></div></button></div></div></div></div><div class="Header-bottom2eLKOFXMEmh5 rm-Header-bottom "><div class="rm-Container rm-Container_flex"><nav aria-label="Primary navigation" class="Header-leftADQdGVqx1wqU" role="navigation"><div class="Dropdown Dropdown_closed"><div class="Dropdown-toggle" aria-haspopup="dialog"><button class="rm-Header-link rm-Header-bottom-link undefined Button Button_slate_text Button_md" type="button"><span>Guides</span><i class="undefined icon-chevron-down"></i></button></div></div><span class="rm-Header-link rm-Header-bottom-link undefined NavItem_inactive1YE6SGanIJp5">Auth Code Grant Flow</span></nav><button align="center" justify="between" style="--flex-gap:var(--xs)" class="Button Button_sm Flex Flex_row MobileSubnav1DsTfasXloM2 Button_contrast Button_contrast_outline" type="button"><span class="Button-label">Auth Code Grant Flow</span><span class="IconWrapper Icon-wrapper2z2wVIeGsiUy"><svg fill="none" viewBox="0 0 24 24" class="Icon Icon3_D2ysxFZ_ll Icon-svg2Lm7f6G9Ly5a" data-name="chevron-up-down" role="img" style="--icon-color:inherit;--icon-size:inherit;--icon-stroke-width:2px"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="m6 16 6 6 6-6M18 8l-6-6-6 6" class="icon-stroke-width"></path></svg></span></button><div class="rm-Header-search Header-searchtb6Foi0-D9Vx rm-Header-search_feather Header-search_featherYsmQBn55F3d9"><button aria-label="Search ⌘k" class="rm-SearchToggle" data-symbol="⌘"><div class="rm-SearchToggle-icon icon-search1"></div><div class="Header-search-placeholder3Vx4OmMPcjAi rm-SearchToggle-placeholder">Search</div><div class="rm-SearchToggle-shortcut"></div></button></div></div></div><div class="hub-search-results--reactApp " id="hub-search-results"><div class="hub-container"><div class="modal-backdrop show-modal rm-SearchModal" role="button" tabindex="0"></div></div></div></header><main class="rm-Guides"><div class="rm-Container rm-Container_flex"><nav aria-label="Secondary navigation" class="rm-Sidebar hub-sidebar reference-redesign Nav3C5f8FcjkaHj rm-Sidebar_guides" id="hub-sidebar" role="navigation"><div class="Sidebar1t2G1ZJq-vU1 rm-Sidebar hub-sidebar-content"><section class="Sidebar-listWrapper6Q9_yUrG906C rm-Sidebar-section"><h2 class="Sidebar-headingTRQyOa2pk0gh rm-Sidebar-heading">The Basics</h2><ul class="Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/introduction"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Introduction</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/whats-is-an-api"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">What is an API?</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/what-data-is-available"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">What data is available?</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/who-can-use-the-api"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Who can use the API?</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/api-options"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">API Options</span></span></a></li></ul></section><section class="Sidebar-listWrapper6Q9_yUrG906C rm-Sidebar-section"><h2 class="Sidebar-headingTRQyOa2pk0gh rm-Sidebar-heading">Creating your Universe App</h2><ul class="Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/creating-your-universe-app"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">1. Create your Universe account</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/2-create-an-oauth-application"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">2. Create an OAuth application</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/3-authorize-requests-to-your-app"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">3. Authorize requests to your app</span></span></a></li></ul></section><section class="Sidebar-listWrapper6Q9_yUrG906C rm-Sidebar-section"><h2 class="Sidebar-headingTRQyOa2pk0gh rm-Sidebar-heading">OAuth</h2><ul class="Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" rel="noopener" target="_blank" data-active="" href="https://www.universe.com/oauth/applications"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Create an OAuth Application</span></span><i aria-label="Link opens in a new tab" class="Sidebar-link-externalIcon1RcnjKm-3Ft8 icon-arrow-up-right"></i></a></li><li class="Sidebar-item23D-2Kd61_k3"><a aria-current="page" class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link active" target="_self" href="/docs/authorizing-with-oauth"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Auth Code Grant Flow</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/client-credentials-flow"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Client Credentials Flow</span></span></a></li></ul></section><section class="Sidebar-listWrapper6Q9_yUrG906C rm-Sidebar-section"><h2 class="Sidebar-headingTRQyOa2pk0gh rm-Sidebar-heading">GraphQL Code Guide</h2><ul class="Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/graphql"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Overview</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/basic-usage-1"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Basic Usage</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 Sidebar-link_parent3OBrzjAJRSfq text-wrap rm-Sidebar-link" target="_self" href="/docs/code-examples"><span class="Sidebar-link-textLuTE1ySm4Kqn"><button aria-expanded="false" aria-label="Show subpages for Code Examples" class="Sidebar-link-buttonWrapper3hnFHNku8_BJ"><i class="Sidebar-link-expandIcon2yVH6SarI6NW icon-chevron-rightward"></i></button><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Code Examples</span></span></a><ul class="subpages Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/getting-a-list-of-your-events"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Getting a list of your events</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/getting-the-orders-for-a-particular-event"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Getting the orders for a particular event</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" href="/docs/getting-the-qr-code-for-your-attendees"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">Getting the QR code for your attendees</span></span></a></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless subpage text-wrap rm-Sidebar-link" target="_self" data-active="" href="https://github.com/uniiverse/graphql-examples"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">More examples</span></span><i aria-label="Link opens in a new tab" class="Sidebar-link-externalIcon1RcnjKm-3Ft8 icon-arrow-up-right"></i></a></li></ul></li><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" rel="noopener" target="_blank" data-active="" href="https://www.universe.com/graphiql"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">GraphiQL Explorer</span></span><i aria-label="Link opens in a new tab" class="Sidebar-link-externalIcon1RcnjKm-3Ft8 icon-arrow-up-right"></i></a></li></ul></section><section class="Sidebar-listWrapper6Q9_yUrG906C rm-Sidebar-section"><h2 class="Sidebar-headingTRQyOa2pk0gh rm-Sidebar-heading">Troubleshooting</h2><ul class="Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/frequently-asked-questions"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">FAQs</span></span></a></li></ul></section><section class="Sidebar-listWrapper6Q9_yUrG906C rm-Sidebar-section"><h2 class="Sidebar-headingTRQyOa2pk0gh rm-Sidebar-heading">Integrations</h2><ul class="Sidebar-list3cZWQLaBf9k8 rm-Sidebar-list"><li class="Sidebar-item23D-2Kd61_k3"><a class="Sidebar-link2Dsha-r-GKh2 childless text-wrap rm-Sidebar-link" target="_self" href="/docs/embed2js"><span class="Sidebar-link-textLuTE1ySm4Kqn"><span class="Sidebar-link-text_label1gCT_uPnx7Gu">embed2.js</span></span></a></li></ul></section></div></nav><article class="rm-Article " id="content"><header id="content-head"><div class="row clearfix"><div class="col-xs-9"><h1>Auth Code Grant Flow</h1></div><div class="col-xs-3"><a class="suggestEdits" rel="nofollow" href="/edit/authorizing-with-oauth"><i aria-hidden="true" class="icon icon-edit"></i> Suggest Edits</a></div></div></header><div class="grid-container-fluid" id="content-container"><section class="content-body grid-75"><div dehydrated="<blockquote class="callout callout_info" theme="📘"><h2 class="callout-heading"><span class="callout-icon">📘</span><p>OAuth Application Required</p></h2><p>In order to authorize with OAuth, you are required to create a Universe application.</p><p>Applications can be created here: <a href="https://www.universe.com/oauth/applications" target="" title="">https://www.universe.com/oauth/applications</a></p></blockquote> <p>Universe has built-in support for the OAuth 2.0 <strong>Auth Code Grant Flow</strong>. </p> <p>All authorized requests in our API require you to implement this strategy or the <a href="https://developers.universe.com/docs/client-credentials-flow" target="" title="">client credentials flow</a>. Most developers requesting access to Universe user data should use this flow. Before proceeding with this guide, please make sure that you have created a Universe OAuth Application. Additionally, please familiarize yourself with OAuth 2.0 concepts generally: <a href="http://oauthbible.com" target="" title="">http://oauthbible.com</a></p> <p>Here is a quick demo which demonstrates how to get an access token at Universe in 1 minute:</p> <div class="embed embed_hasImg"><div class="embed-media"><iframe class="embedly-embed" src="//cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FBafbpoahNJU%3Ffeature%3Doembed&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DBafbpoahNJU&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FBafbpoahNJU%2Fhqdefault.jpg&key=f2aa6fc3595946d0afc3d76cbbd25dc3&type=text%2Fhtml&schema=youtube" width="854" height="480" scrolling="no" frameborder="0" allowfullscreen></iframe></div></div> <h2 class="heading heading-2 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="step-1-get-the-users-authorization"></div><div class="heading-text"><div id="section-step-1-get-the-users-authorization" class="heading-anchor_backwardsCompatibility"></div>Step 1. Get the User&#x27;s Authorization</div><a aria-label="Skip link to Step 1. Get the User&#x27;s Authorization" class="heading-anchor-icon fa fa-anchor" href="#step-1-get-the-users-authorization"></a></h2> <p>To begin the Authorization Code flow, your web application should first send the user to the authorization URL:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">Text</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-text theme-light" data-lang="text" name="" tabindex="0">https://www.universe.com/oauth/authorize?response_type=code&amp;scope=public&amp;client_id=APPLICATION_ID&amp;redirect_uri=CALLBACK_URL </code></pre></div></div> <p>Where:</p> <ul> <li><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">response_type</code>: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">code</code> – This must match the required value - specifying the type of authorization returned.</li> <li><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">scope</code>: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">public</code> – The scopes which you want to request authorization for. Right now, Universe supports only one scope.</li> <li><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">client_id</code>: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">Application ID</code> – Your application&#x27;s Client ID. You were provided this by our developer support team.</li> <li><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">redirect_uri</code>: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">Callback URL</code> – Your URL to which Universe will redirect the browser after authorization has been granted by the user. The Authorization Code will be available in the code URL parameter. This URL must be registered with your application and must be served via HTTPS.</li> </ul> <p>Optionally, you may also provide a <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">state</code> parameter. <a href="https://tools.ietf.org/html/rfc6749#section-4.1.1" target="" title="">Per the OAuth spec</a>, this value: </p> <blockquote> <p>is used by the client to maintain state between the request and callback. The authorization server includes this value when redirecting the user-agent back to the client.</p> </blockquote> <p>For example:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">HTML</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-html theme-light" data-lang="html" name="" tabindex="0">&lt;a href=&quot;https://www.universe.com/oauth/authorize?response_type=code&amp;scope=public&amp;client_id=APPLICATION_ID&amp;redirect_uri=CALLBACK_URL&quot;&gt; Sign In With Universe &lt;/a&gt; </code></pre></div></div> <p>The purpose of this call is to obtain consent from the user to invoke the API to do certain things on behalf of the user. Universe will authenticate the user and obtain consent, unless consent has been previously given.</p> <p>Once consent has been granted, we will redirect the user back to your redirect_uri with a query parameter of <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">code</code> - this is the auth code you need to exchange for an access token.</p> <blockquote class="callout callout_info" theme="📘"><h2 class="callout-heading"><span class="callout-icon">📘</span><p>Using State?</p></h2><p>Note that if you are using the optional state param, we will echo it back at the redirect phase.</p></blockquote> <h2 class="heading heading-2 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="step-2-exchange-the-authorization-code-for-an-access-token"></div><div class="heading-text"><div id="section-step-2-exchange-the-authorization-code-for-an-access-token" class="heading-anchor_backwardsCompatibility"></div>Step 2. Exchange the Authorization Code for an Access Token</div><a aria-label="Skip link to Step 2. Exchange the Authorization Code for an Access Token" class="heading-anchor-icon fa fa-anchor" href="#step-2-exchange-the-authorization-code-for-an-access-token"></a></h2> <p>Now that you have an Authorization Code, you must exchange it for an Access Token that can be used to make authenticated requests to our API. Using the Authorization Code (code) from the previous step, you will need to POST to the Token URL:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">Shell</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="" tabindex="0">export APPLICATION_ID=... export APPLICATION_SECRET=... export REDIRECT_URI=... export AUTHORIZATION_CODE=... curl --request POST \ --url &#x27;https://www.universe.com/oauth/token&#x27; \ --header &#x27;content-type: application/json&#x27; \ --data &quot;{\&quot;grant_type\&quot;:\&quot;authorization_code\&quot;, \&quot;client_id\&quot;:\&quot;$APPLICATION_ID\&quot;, \&quot;client_secret\&quot;:\&quot;$APPLICATION_SECRET\&quot;, \&quot;redirect_uri\&quot;:\&quot;$REDIRECT_URI\&quot;, \&quot;code\&quot;:\&quot;$AUTHORIZATION_CODE\&quot;}&quot; </code></pre></div></div> <p>Where:</p> <ul> <li><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">grant_type</code>: This must be <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">authorization_code</code>.</li> <li><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">client_id</code>: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">APPLICATION_ID</code> – Your application&#x27;s Client ID.</li> <li><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">client_secret</code>: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">APPLICATION_SECRET</code> – Your application&#x27;s Client Secret.</li> <li><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">code</code>: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">AUTHORIZATION_CODE</code> – The Authorization Code received from the initial authorize call.</li> <li><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">redirect_uri</code>: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">REDIRECT_URI</code> – The URL must match exactly the redirect_uri passed to /authorize.</li> </ul> <p>The response contains the <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">access_token</code>, <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">refresh_token</code>, <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">expires_in</code>, <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">token_type</code>, <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">scope</code>, and <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">created_at</code> values, for example:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">JSON</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-json theme-light" data-lang="json" name="" tabindex="0">{ &quot;access_token&quot;: &quot;eyJz93a...k4laUWw&quot;, &quot;refresh_token&quot;: &quot;GEbRxBN...edjnXbL&quot;, &quot;token_type&quot;: &quot;Bearer&quot;, &quot;expires_in&quot;: 2592000, &quot;scope&quot;: &quot;public&quot;, &quot;created_at&quot;: 1494964915 } </code></pre></div></div> <p>Note that your <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">access_token</code> will be valid for the number of seconds specified by <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">expires_in</code>. Once the expiry time has passed, you will need to exchange the <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">refresh_token</code> for a new <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">access_token</code>.</p> <blockquote class="callout callout_error" theme="❗️"><h2 class="callout-heading"><span class="callout-icon">❗️</span><p>Security Warning</p></h2><p>It is important to understand that the Authorization Code flow should only be used in cases such as a Regular Web Application where the Client Secret can be safely stored. In cases such as a Single Page Application, the Client Secret is available to the client (in the web browser), so the integrity of the Client Secret cannot be maintained.</p></blockquote> <h2 class="heading heading-2 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="step-3-using-the-access-token"></div><div class="heading-text"><div id="section-step-3-using-the-access-token" class="heading-anchor_backwardsCompatibility"></div>Step 3. Using the Access Token</div><a aria-label="Skip link to Step 3. Using the Access Token" class="heading-anchor-icon fa fa-anchor" href="#step-3-using-the-access-token"></a></h2> <p>Once the <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">access_token</code> has been obtained it can be used to make calls to the API by passing it as a Bearer Token in the Authorization header of the HTTP request:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">cURL</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-curl theme-light" data-lang="curl" name="" tabindex="0">curl --request GET \ --url https://www.universe.com/some_endpoint \ --header &#x27;authorization: Bearer ACCESS_TOKEN&#x27; </code></pre></div></div>" style="margin-left:31px" class="rm-Markdown markdown-body rm-Markdown markdown-body ng-non-bindable" data-testid="RDMD"><blockquote class="callout callout_info" theme="📘"><h2 class="callout-heading"><span class="callout-icon">📘</span><p>OAuth Application Required</p></h2><p>In order to authorize with OAuth, you are required to create a Universe application.</p><p>Applications can be created here: <a target="_self" href="https://www.universe.com/oauth/applications">https://www.universe.com/oauth/applications</a></p></blockquote> <p>Universe has built-in support for the OAuth 2.0 <strong>Auth Code Grant Flow</strong>. </p> <p>All authorized requests in our API require you to implement this strategy or the <a target="_self" href="/docs/client-credentials-flow">client credentials flow</a>. Most developers requesting access to Universe user data should use this flow. Before proceeding with this guide, please make sure that you have created a Universe OAuth Application. Additionally, please familiarize yourself with OAuth 2.0 concepts generally: <a target="_self" href="http://oauthbible.com">http://oauthbible.com</a></p> <p>Here is a quick demo which demonstrates how to get an access token at Universe in 1 minute:</p> <div class="embed embed_hasImg"><div class="embed-media"><iframe class="embedly-embed" src="//cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FBafbpoahNJU%3Ffeature%3Doembed&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DBafbpoahNJU&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FBafbpoahNJU%2Fhqdefault.jpg&key=f2aa6fc3595946d0afc3d76cbbd25dc3&type=text%2Fhtml&schema=youtube" width="854" height="480" scrolling="no" frameborder="0" allowfullscreen></iframe></div></div> <h2 class="heading heading-2 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="step-1-get-the-users-authorization"></div><div class="heading-text"><div id="section-step-1-get-the-users-authorization" class="heading-anchor_backwardsCompatibility"></div>Step 1. Get the User's Authorization</div><a aria-label="Skip link to Step 1. Get the User's Authorization" class="heading-anchor-icon fa fa-anchor" href="#step-1-get-the-users-authorization"></a></h2> <p>To begin the Authorization Code flow, your web application should first send the user to the authorization URL:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">Text</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-text theme-light" data-lang="text" name="" tabindex="0">https://www.universe.com/oauth/authorize?response_type=code&scope=public&client_id=APPLICATION_ID&redirect_uri=CALLBACK_URL </code></pre></div></div> <p>Where:</p> <ul> <li><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">response_type</code>: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">code</code> – This must match the required value - specifying the type of authorization returned.</li> <li><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">scope</code>: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">public</code> – The scopes which you want to request authorization for. Right now, Universe supports only one scope.</li> <li><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">client_id</code>: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">Application ID</code> – Your application's Client ID. You were provided this by our developer support team.</li> <li><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">redirect_uri</code>: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">Callback URL</code> – Your URL to which Universe will redirect the browser after authorization has been granted by the user. The Authorization Code will be available in the code URL parameter. This URL must be registered with your application and must be served via HTTPS.</li> </ul> <p>Optionally, you may also provide a <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">state</code> parameter. <a target="_self" href="https://tools.ietf.org/html/rfc6749#section-4.1.1">Per the OAuth spec</a>, this value: </p> <blockquote> <p>is used by the client to maintain state between the request and callback. The authorization server includes this value when redirecting the user-agent back to the client.</p> </blockquote> <p>For example:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">HTML</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-html theme-light" data-lang="html" name="" tabindex="0"><a href="https://www.universe.com/oauth/authorize?response_type=code&scope=public&client_id=APPLICATION_ID&redirect_uri=CALLBACK_URL"> Sign In With Universe </a> </code></pre></div></div> <p>The purpose of this call is to obtain consent from the user to invoke the API to do certain things on behalf of the user. Universe will authenticate the user and obtain consent, unless consent has been previously given.</p> <p>Once consent has been granted, we will redirect the user back to your redirect_uri with a query parameter of <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">code</code> - this is the auth code you need to exchange for an access token.</p> <blockquote class="callout callout_info" theme="📘"><h2 class="callout-heading"><span class="callout-icon">📘</span><p>Using State?</p></h2><p>Note that if you are using the optional state param, we will echo it back at the redirect phase.</p></blockquote> <h2 class="heading heading-2 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="step-2-exchange-the-authorization-code-for-an-access-token"></div><div class="heading-text"><div id="section-step-2-exchange-the-authorization-code-for-an-access-token" class="heading-anchor_backwardsCompatibility"></div>Step 2. Exchange the Authorization Code for an Access Token</div><a aria-label="Skip link to Step 2. Exchange the Authorization Code for an Access Token" class="heading-anchor-icon fa fa-anchor" href="#step-2-exchange-the-authorization-code-for-an-access-token"></a></h2> <p>Now that you have an Authorization Code, you must exchange it for an Access Token that can be used to make authenticated requests to our API. Using the Authorization Code (code) from the previous step, you will need to POST to the Token URL:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">Shell</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-shell theme-light" data-lang="shell" name="" tabindex="0">export APPLICATION_ID=... export APPLICATION_SECRET=... export REDIRECT_URI=... export AUTHORIZATION_CODE=... curl --request POST \ --url 'https://www.universe.com/oauth/token' \ --header 'content-type: application/json' \ --data "{\"grant_type\":\"authorization_code\", \"client_id\":\"$APPLICATION_ID\", \"client_secret\":\"$APPLICATION_SECRET\", \"redirect_uri\":\"$REDIRECT_URI\", \"code\":\"$AUTHORIZATION_CODE\"}" </code></pre></div></div> <p>Where:</p> <ul> <li><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">grant_type</code>: This must be <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">authorization_code</code>.</li> <li><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">client_id</code>: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">APPLICATION_ID</code> – Your application's Client ID.</li> <li><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">client_secret</code>: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">APPLICATION_SECRET</code> – Your application's Client Secret.</li> <li><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">code</code>: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">AUTHORIZATION_CODE</code> – The Authorization Code received from the initial authorize call.</li> <li><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">redirect_uri</code>: <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">REDIRECT_URI</code> – The URL must match exactly the redirect_uri passed to /authorize.</li> </ul> <p>The response contains the <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">access_token</code>, <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">refresh_token</code>, <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">expires_in</code>, <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">token_type</code>, <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">scope</code>, and <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">created_at</code> values, for example:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">JSON</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-json theme-light" data-lang="json" name="" tabindex="0">{ "access_token": "eyJz93a...k4laUWw", "refresh_token": "GEbRxBN...edjnXbL", "token_type": "Bearer", "expires_in": 2592000, "scope": "public", "created_at": 1494964915 } </code></pre></div></div> <p>Note that your <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">access_token</code> will be valid for the number of seconds specified by <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">expires_in</code>. Once the expiry time has passed, you will need to exchange the <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">refresh_token</code> for a new <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">access_token</code>.</p> <blockquote class="callout callout_error" theme="❗️"><h2 class="callout-heading"><span class="callout-icon">❗️</span><p>Security Warning</p></h2><p>It is important to understand that the Authorization Code flow should only be used in cases such as a Regular Web Application where the Client Secret can be safely stored. In cases such as a Single Page Application, the Client Secret is available to the client (in the web browser), so the integrity of the Client Secret cannot be maintained.</p></blockquote> <h2 class="heading heading-2 header-scroll" align=""><div class="heading-anchor anchor waypoint" id="step-3-using-the-access-token"></div><div class="heading-text"><div id="section-step-3-using-the-access-token" class="heading-anchor_backwardsCompatibility"></div>Step 3. Using the Access Token</div><a aria-label="Skip link to Step 3. Using the Access Token" class="heading-anchor-icon fa fa-anchor" href="#step-3-using-the-access-token"></a></h2> <p>Once the <button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang- theme-light" data-lang="" name="" tabindex="0">access_token</code> has been obtained it can be used to make calls to the API by passing it as a Bearer Token in the Authorization header of the HTTP request:</p> <div class="CodeTabs CodeTabs_initial theme-light"><div class="CodeTabs-toolbar" role="tablist"><button aria-selected="true" class="CodeTabs_active" role="tab" type="button">cURL</button></div><div class="CodeTabs-inner" role="tabpanel"><pre><button aria-label="Copy Code" class="rdmd-code-copy fa"></button><code class="rdmd-code lang-curl theme-light" data-lang="curl" name="" tabindex="0">curl --request GET \ --url https://www.universe.com/some_endpoint \ --header 'authorization: Bearer ACCESS_TOKEN' </code></pre></div></div></div><div class="UpdatedAt"><p class="DateLine "><i class="icon icon-watch"></i>Updated<!-- --> <!-- -->almost 6 years ago<!-- --> </p></div><hr class="NextStepsDivider"/><nav aria-label="Pagination Controls" class="PaginationControlsjDYuqu8pBMUy rm-Pagination"></nav></section><section class="content-toc grid-25"><nav><ul class="toc-list"><li><a class="tocHeader" href="#"><i class="icon icon-text-align-left"></i>Table of Contents</a></li><li class="toc-children"><ul> <li><a href="#step-1-get-the-users-authorization">Step 1. Get the User's Authorization</a></li> <li><a href="#step-2-exchange-the-authorization-code-for-an-access-token">Step 2. Exchange the Authorization Code for an Access Token</a></li> <li><a href="#step-3-using-the-access-token">Step 3. Using the Access Token</a></li> </ul></li></ul></nav></section></div><div class="ModalWrapper" id="tutorialmodal-root"></div></article></div></main><footer aria-label="Status banner" class="Footer2U8XAPoGhlgO AppFooter rm-Banners"></footer><div class="ModalWrapper" id="ChatGPT-modal"></div></div></div><div class="ng-non-bindable"><script id="ssr-props" data-initial-props="{"sidebars":{"docs":[{"_id":"5b4cd2fd9275b5000331e785","project":"586bd961c3ba161b00bee1f1","version":"5b4cc75f666e630003bc912a","isAPI":false,"reference":false,"createdAt":"2018-07-16T17:16:45.372Z","from_sync":false,"order":1,"slug":"the-basics","title":"The Basics","__v":0,"pages":[{"_id":"5b4cd348737d1800031d311a","category":"5b4cd2fd9275b5000331e785","createdAt":"2018-07-16T17:18:00.330Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":0,"slug":"introduction","type":"basic","title":"Introduction","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"5b4cd38b737d1800031d311b","category":"5b4cd2fd9275b5000331e785","createdAt":"2018-07-16T17:19:07.335Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":1,"slug":"whats-is-an-api","type":"basic","title":"What is an API?","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"5b4cd4229275b5000331e797","category":"5b4cd2fd9275b5000331e785","createdAt":"2018-07-16T17:21:38.803Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":2,"slug":"what-data-is-available","type":"basic","title":"What data is available?","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"5b4cd764bdd7010003e92a2f","category":"5b4cd2fd9275b5000331e785","createdAt":"2018-07-16T17:35:32.740Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":3,"slug":"who-can-use-the-api","type":"basic","title":"Who can use the API?","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"5b4fa2b82fb0cf000357a9dd","category":"5b4cd2fd9275b5000331e785","createdAt":"2018-07-18T20:27:36.169Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get","examples":{"codes":[]}},"isReference":false,"order":4,"slug":"api-options","type":"basic","title":"API Options","parentDoc":null,"deprecated":false,"icon":"","previousSlug":"","isBodyEmpty":false,"children":[]}]},{"_id":"5b562065ddebdc0003ac54a7","project":"586bd961c3ba161b00bee1f1","version":"5b4cc75f666e630003bc912a","isAPI":false,"reference":false,"createdAt":"2018-07-23T18:37:25.332Z","from_sync":false,"order":2,"slug":"getting-started-1","title":"Creating your Universe App","__v":0,"pages":[{"_id":"5b562518edba970003e45e68","category":"5b562065ddebdc0003ac54a7","createdAt":"2018-07-23T18:57:28.933Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":0,"slug":"creating-your-universe-app","type":"basic","title":"1. Create your Universe account","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"5b895a4bb0b9b70003ee3906","category":"5b562065ddebdc0003ac54a7","createdAt":"2018-08-31T15:10:03.431Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":1,"slug":"2-create-an-oauth-application","type":"basic","title":"2. Create an OAuth application","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"5b895be9329ed700037d2891","category":"5b562065ddebdc0003ac54a7","createdAt":"2018-08-31T15:16:57.508Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":2,"slug":"3-authorize-requests-to-your-app","type":"basic","title":"3. Authorize requests to your app","parentDoc":null,"isBodyEmpty":false,"children":[]}]},{"_id":"5b4cc75f666e630003bc9106","createdAt":"2017-01-03T17:03:30.005Z","from_sync":false,"project":"586bd961c3ba161b00bee1f1","reference":false,"slug":"documentation","title":"OAuth","order":3,"sync":{"url":"","isSync":false},"version":"5b4cc75f666e630003bc912a","__v":0,"pages":[{"_id":"5b4cc75f666e630003bc9126","category":"5b4cc75f666e630003bc9106","createdAt":"2017-08-29T17:01:49.010Z","link_external":true,"link_url":"https://www.universe.com/oauth/applications","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":0,"slug":"create-an-oauth-application","type":"link","title":"Create an OAuth Application","parentDoc":null,"isBodyEmpty":true,"children":[]},{"_id":"5b4cc75f666e630003bc9115","hidden":false,"parentDoc":null,"title":"Auth Code Grant Flow","link_external":false,"slug":"authorizing-with-oauth","category":"5b4cc75f666e630003bc9106","order":1,"sync_unique":"","api":{"auth":"required","params":[],"url":"","method":"get","results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]}},"createdAt":"2017-05-16T21:15:39.276Z","isReference":false,"link_url":"","type":"basic","isBodyEmpty":false,"children":[]},{"_id":"5b4cc75f666e630003bc9116","link_url":"","slug":"client-credentials-flow","sync_unique":"","title":"Client Credentials Flow","type":"basic","hidden":false,"api":{"params":[],"url":"","method":"get","results":{"codes":[{"language":"json","code":"{}","name":"","status":200},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required"},"category":"5b4cc75f666e630003bc9106","order":2,"createdAt":"2017-05-21T20:49:15.345Z","isReference":false,"link_external":false,"parentDoc":null,"isBodyEmpty":false,"children":[]}]},{"_id":"5b895ed47d6ac70003cd5737","project":"586bd961c3ba161b00bee1f1","version":"5b4cc75f666e630003bc912a","isAPI":false,"reference":false,"createdAt":"2018-08-31T15:29:24.116Z","from_sync":false,"order":4,"slug":"code-guide","title":"GraphQL Code Guide","__v":0,"pages":[{"_id":"5b896568e523040003d5de60","category":"5b895ed47d6ac70003cd5737","createdAt":"2018-08-31T15:57:28.440Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":0,"slug":"graphql","type":"basic","title":"Overview","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"5b896655329ed700037d29d8","category":"5b895ed47d6ac70003cd5737","createdAt":"2018-08-31T16:01:25.612Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":1,"slug":"basic-usage-1","type":"basic","title":"Basic Usage","parentDoc":null,"previousSlug":"","isBodyEmpty":false,"children":[]},{"_id":"5b896c2ef73f990003d534df","category":"5b895ed47d6ac70003cd5737","createdAt":"2018-08-31T16:26:22.049Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":3,"slug":"code-examples","type":"basic","title":"Code Examples","parentDoc":null,"isBodyEmpty":false,"children":[{"_id":"5b897158329ed700037d2a7c","category":"5b895ed47d6ac70003cd5737","parentDoc":"5b896c2ef73f990003d534df","createdAt":"2018-08-31T16:48:24.603Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":0,"slug":"getting-a-list-of-your-events","type":"basic","title":"Getting a list of your events","isBodyEmpty":false,"children":[]},{"_id":"5b89774fe523040003d5e080","category":"5b895ed47d6ac70003cd5737","parentDoc":"5b896c2ef73f990003d534df","createdAt":"2018-08-31T17:13:51.248Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":1,"slug":"getting-the-orders-for-a-particular-event","type":"basic","title":"Getting the orders for a particular event","isBodyEmpty":false,"children":[]},{"_id":"5b897797e523040003d5e084","category":"5b895ed47d6ac70003cd5737","parentDoc":"5b896c2ef73f990003d534df","createdAt":"2018-08-31T17:15:03.138Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":2,"slug":"getting-the-qr-code-for-your-attendees","type":"basic","title":"Getting the QR code for your attendees","isBodyEmpty":false,"children":[]},{"_id":"5b898e7de523040003d5e2ec","category":"5b895ed47d6ac70003cd5737","parentDoc":"5b896c2ef73f990003d534df","createdAt":"2018-08-31T18:52:45.387Z","link_external":false,"link_url":"https://github.com/uniiverse/graphql-examples","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":3,"slug":"more-examples","type":"link","title":"More examples","isBodyEmpty":false,"children":[]}]},{"_id":"5ca63c2c70d6d800397fe568","createdAt":"2019-04-04T17:17:32.659Z","category":"5b895ed47d6ac70003cd5737","link_external":true,"link_url":"https://www.universe.com/graphiql","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":999,"slug":"graphiql-explorer","type":"link","title":"GraphiQL Explorer","parentDoc":null,"isBodyEmpty":true,"children":[]}]},{"_id":"5b89783ef73f990003d535ea","project":"586bd961c3ba161b00bee1f1","version":"5b4cc75f666e630003bc912a","isAPI":false,"reference":false,"createdAt":"2018-08-31T17:17:50.421Z","from_sync":false,"order":5,"slug":"troubleshooting","title":"Troubleshooting","__v":0,"pages":[{"_id":"5b89798ef73f990003d53603","category":"5b89783ef73f990003d535ea","createdAt":"2018-08-31T17:23:26.965Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":0,"slug":"frequently-asked-questions","type":"basic","title":"FAQs","parentDoc":null,"isBodyEmpty":false,"children":[]}]},{"_id":"5b4cc75f666e630003bc9109","project":"586bd961c3ba161b00bee1f1","version":"5b4cc75f666e630003bc912a","isAPI":false,"reference":false,"createdAt":"2017-05-31T21:42:44.962Z","from_sync":false,"order":8,"slug":"integrations","title":"Integrations","__v":0,"pages":[{"_id":"5b4cc75f666e630003bc9119","category":"5b4cc75f666e630003bc9109","createdAt":"2017-06-06T17:26:04.417Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":"","method":"get"},"isReference":false,"order":1,"slug":"embed2js","type":"basic","title":"embed2.js","parentDoc":null,"isBodyEmpty":false,"children":[]}]}],"refs":[{"_id":"5b4cc75f666e630003bc9107","apiSetting":"5b4cc75f666e630003bc9110","isAPI":true,"from_sync":false,"order":6,"slug":"oauth-1","version":"5b4cc75f666e630003bc912a","reference":true,"createdAt":"2017-05-16T20:35:26.409Z","title":"OAuth","__v":0,"project":"586bd961c3ba161b00bee1f1","pages":[{"_id":"5b4cc75f666e630003bc9113","createdAt":"2017-05-16T21:02:33.602Z","hidden":false,"link_external":false,"link_url":"","category":"5b4cc75f666e630003bc9107","slug":"testinput-1","sync_unique":"","order":0,"type":"endpoint","api":{"apiSetting":"5b4cc75f666e630003bc9110","auth":"never","examples":{"codes":[]},"method":"get","params":[{"default":"your_client_id","desc":"Your application client id","in":"query","name":"client_id","ref":"","required":true,"type":"string","_id":"591b68e97feb040f00d2671d"},{"default":"code","type":"string","name":"response_type","_id":"591b68e97feb040f00d2671c","ref":"","in":"query","required":true,"desc":""},{"desc":"Your application's registered redirect URI","in":"query","name":"redirect_uri","ref":"","required":true,"type":"string","_id":"591b68e97feb040f00d2671b","default":"https://your_app.com/callback"}],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"url":"/authorize"},"isReference":true,"parentDoc":null,"title":"Authorize","isBodyEmpty":false,"children":[]},{"_id":"5b4cc75f666e630003bc9114","link_url":"","order":1,"title":"Token","type":"endpoint","category":"5b4cc75f666e630003bc9107","isReference":true,"sync_unique":"","api":{"apiSetting":"5b4cc75f666e630003bc9110","auth":"never","examples":{"codes":[{"language":"text","code":""}]},"method":"post","params":[{"_id":"591b69d67feb040f00d26744","ref":"","in":"body","required":true,"desc":"Auth code received from /authorize flow","default":"AUTH_CODE","type":"string","name":"code"},{"_id":"591b69d67feb040f00d26743","ref":"","in":"body","required":true,"desc":"","default":"authorization_code","type":"string","name":"grant_type"},{"_id":"591b69d67feb040f00d26742","ref":"","in":"body","required":true,"desc":"Your application client id","default":"YOUR_CLIENT_ID","type":"string","name":"client_id"},{"_id":"591b69d67feb040f00d26741","ref":"","in":"body","required":true,"desc":"Your application client secret","default":"YOUR_CLIENT_SECRET","type":"string","name":"client_secret"},{"_id":"591b69d67feb040f00d26740","ref":"","in":"body","required":true,"desc":"Your application redirect URI. This must match the redirect_uri value provided in the authorize step.","default":"https://your_app.com/callback","type":"string","name":"redirect_uri"}],"results":{"codes":[{"code":"{\n \"access_token\": \"844...bbb\",\n \"token_type\":\"bearer\",\n \"expires_in\": 2592000,\n \"refresh_token\": \"006...686\",\n \"scope\": \"public\", \n \"created_at\": 1494964915\n}","language":"json","status":200,"name":""},{"language":"json","status":401,"name":"","code":"{\n \"error\": \"invalid_grant\",\n \"error_description\": \"The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client.\"\n}⏎"}]},"url":"/token"},"slug":"token","createdAt":"2017-05-16T21:06:30.728Z","hidden":false,"link_external":false,"parentDoc":null,"isBodyEmpty":true,"children":[]},{"_id":"5b4cc75f666e630003bc911c","category":"5b4cc75f666e630003bc9107","createdAt":"2017-06-16T16:11:46.834Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"apiSetting":"5b4cc75f666e630003bc9110","examples":{"codes":[]},"results":{"codes":[{"status":200,"language":"json","code":"{\n \"resource_owner_id\": String,\n \"scopes\": Array<String>,\n \"expires_in_seconds\": Integer,\n \"application\": {\n \"uid\": String\n },\n \"created_at\": UnixEpochInteger\n}","name":""},{"status":401,"language":"json","code":"{\n \"error\":\"invalid_request\",\n \"error_description\": \"The request is missing a required parameter, includes an unsupported parameter value, or is otherwise malformed.\"\n}","name":""}]},"auth":"required","params":[{"_id":"594403d40802650039009a84","ref":"","in":"header","required":true,"desc":"You MUST prefix the value with 'Bearer '","default":"Bearer YOUR_TOKEN","type":"string","name":"Authorization"}],"url":"/token/info","method":"get"},"isReference":true,"order":2,"slug":"token-info","type":"endpoint","title":"Token Info","parentDoc":null,"isBodyEmpty":false,"children":[]}]},{"_id":"5b4cc75f666e630003bc9108","reference":true,"createdAt":"2017-05-30T16:52:01.380Z","order":7,"slug":"guestlist","__v":0,"apiSetting":"5b4cc75f666e630003bc9111","isAPI":true,"from_sync":false,"title":"REST","project":"586bd961c3ba161b00bee1f1","version":"5b4cc75f666e630003bc912a","pages":[{"_id":"5b4cc75f666e630003bc9117","category":"5b4cc75f666e630003bc9108","link_external":false,"order":0,"createdAt":"2017-05-30T16:57:39.231Z","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"javascript","code":"{\n \"data\": {\n \"guestlist\": [{\n \"id\": String,\n \"token\": String\n \"state\": StateEnum,\n \"updated_at\": ISO8601String,\n \"created_at\": ISO8601String,\n \"buyer\": {\n \"email\": String,\n \"name\": String,\n \"id\": String\n },\n \"attendee\": {\n \"email\": String,\n \"name\": String,\n \"id\": String\n },\n \"ticket_type\": {\n \"name\": String,\n \"price\": Float,\n \"id\": String\n },\n \"order\": {\n \"discount_code\": String,\n \"id\": String,\n \"currency\": String\n },\n \"listing\": {\n \"title\": String,\n \"id\": String\n },\n \"event\": {\n \"id\": String,\n \"start_stamp\": UnixEpochInteger,\n \"end_stamp\": UnixEpochInteger\n },\n \"answers\": {\n \"name\": String,\n \"value\": String\n }\n }]\n },\n \"meta\": {\n \"count\": Int, \n \"limit\": Int,\n \"offset\": Int\n }\n} ","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"url":"/api/v2/guestlists","auth":"required","examples":{"codes":[]},"method":"get","params":[{"_id":"592da48351a3e80f00eb50d5","ref":"","in":"query","required":false,"desc":"The limit on the number of returned documents, max 1000","default":"100","type":"string","name":"limit"},{"_id":"592da48351a3e80f00eb50d4","ref":"","in":"query","required":false,"desc":"The number of documents to skip in the result set (the starting point for the set returned)","default":"0","type":"string","name":"offset"},{"_id":"592da48351a3e80f00eb50d3","ref":"","in":"query","required":false,"desc":"An ISO8601 timestamp, which filters for documents updated/created after this moment in time.","default":"","type":"string","name":"since"},{"_id":"593dfc619b9673000ff88bac","ref":"","in":"query","required":false,"desc":"Restrict the Guestlist to just one Event","default":"","type":"string","name":"event_id"},{"_id":"593dfc619b9673000ff88bab","ref":"","in":"query","required":false,"desc":"Restrict the Guestlist to just one Listing","default":"","type":"string","name":"listing_id"},{"_id":"59a9844476af590025fca91a","ref":"","in":"header","required":true,"desc":"","default":"Bearer YOUR_TOKEN","type":"string","name":"Authorization"}],"apiSetting":"5b4cc75f666e630003bc9111"},"slug":"guestlists","sync_unique":"","title":"Guestlists","type":"endpoint","isReference":true,"link_url":"","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"5b4cc75f666e630003bc911a","category":"5b4cc75f666e630003bc9108","createdAt":"2017-06-09T20:51:23.421Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"examples":{"codes":[]},"results":{"codes":[{"name":"","code":"{\n \"current_user\": {\n \"id\": String,\n \"slug\": String,\n \"first_name\": String,\n \"last_name\": String,\n \"created_at\": ISO8601String,\n \"updated_at\": ISO8601String,\n \"email\": String\n }\n}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"auth":"required","params":[{"_id":"59a984652e53100019a87fd5","ref":"","in":"header","required":true,"desc":"","default":"Bearer YOUR_TOKEN","type":"string","name":"Authorization"}],"url":"/api/v2/current_user","method":"get","apiSetting":"5b4cc75f666e630003bc9111"},"isReference":true,"order":1,"slug":"current-user","type":"endpoint","title":"Current User","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"5b4cc75f666e630003bc911b","category":"5b4cc75f666e630003bc9108","createdAt":"2017-06-12T02:34:33.963Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"examples":{"codes":[{"language":"text","code":""}]},"results":{"codes":[{"name":"","code":"{\n \"listings\": [\n {\n \"id\": String,\n \"title\": String\n }\n ],\n \"meta\": {\n \"count\": Int, \n \"limit\": Int,\n \"offset\": Int\n }\n} ","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"auth":"never","params":[{"_id":"593dfeb6b612b1000f10ecc0","ref":"","in":"query","required":true,"desc":"","default":"","type":"string","name":"user_id"},{"_id":"59a9848da338de002d8c0ef2","ref":"","in":"header","required":true,"desc":"","default":"Bearer YOUR_TOKEN","type":"string","name":"Authorization"}],"url":"/api/v2/listings","method":"get","apiSetting":"5b4cc75f666e630003bc9111"},"isReference":true,"order":2,"slug":"listings","type":"endpoint","title":"Listings","parentDoc":null,"isBodyEmpty":false,"children":[]},{"_id":"5b4cc75f666e630003bc9123","category":"5b4cc75f666e630003bc9108","createdAt":"2017-08-14T13:49:47.098Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"examples":{"codes":[]},"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[{"_id":"5991aa7b0729d9000fd04108","ref":"","in":"body","required":true,"desc":"The Listing ID to which the Discount Code will apply","default":"","type":"string","name":"discount_code[listing_id]"},{"_id":"5991aa7b0729d9000fd04107","ref":"","in":"body","required":true,"desc":"The user-facing string that functions as the Diiscount Code itself","default":"","type":"string","name":"discount_code[code]"},{"_id":"5991aa7b0729d9000fd04106","ref":"","in":"body","required":false,"desc":"Must be either 'percent' or 'fixed'","default":"percent","type":"string","name":"discount_code[discount_type]"},{"_id":"5991aa7b0729d9000fd04105","ref":"","in":"body","required":false,"desc":"The number of times the Discount Code can be redemeed","default":"","type":"int","name":"discount_code[quantity]"},{"_id":"5991aa7b0729d9000fd04104","ref":"","in":"body","required":false,"desc":"A list of the Rate IDs (ticket types) for which the Discount Code is redeemable","default":"[]","type":"array_string","name":"discount_code[rate_ids]"},{"_id":"5991aa7b0729d9000fd04103","ref":"","in":"body","required":true,"desc":"A percent amount of the discount from 0 to 1. Either this field or discount_code[fixed] must be submitted - only one is actually required","default":"","type":"float","name":"discount_code[percent]"},{"_id":"5991aa7b0729d9000fd04102","ref":"","in":"body","required":true,"desc":"A dollar-amount of the discount. Either this field or discount_code[percent] must be submitted - only one is actually required","default":"","type":"float","name":"discount_code[fixed]"},{"_id":"59a984a08ebbe6001930c292","ref":"","in":"header","required":true,"desc":"","default":"Bearer YOUR_TOKEN","type":"string","name":"Authorization"}],"url":"/api/v2/discount_codes","method":"post","apiSetting":"5b4cc75f666e630003bc9111"},"isReference":true,"order":3,"slug":"discountcodes","type":"endpoint","title":"Discount Codes","parentDoc":null,"isBodyEmpty":false,"children":[]}]}]},"apiBaseUrl":"/","baseUrl":"/","search":{"appId":"T28YKFATPY","searchApiKey":"NTgxYzUxMzBjYThmMDAxZjc5M2NkM2I4MjE1NWUyNGIwNTVmM2RiNjkzZjE5ZWNiNDQwMDQyOGNlNjQ1MWIzZXRhZ0ZpbHRlcnM9KHByb2plY3Q6NTg2YmQ5NjFjM2JhMTYxYjAwYmVlMWYxKSwodmVyc2lvbjpub25lLHZlcnNpb246NWI0Y2M3NWY2NjZlNjMwMDAzYmM5MTJhKSwoaGlkZGVuOm5vbmUsaGlkZGVuOmZhbHNlKSwoaW5kZXg6Q3VzdG9tUGFnZSxpbmRleDpQYWdlLGluZGV4OkJsb2cp","indexName":"readme_search_v2","projectsMeta":[{"modules":{"suggested_edits":true,"discuss":false,"reference":true,"examples":true,"docs":true,"landing":true,"changelog":true,"custompages":true,"logs":false,"tutorials":false,"graphql":false},"id":"586bd961c3ba161b00bee1f1","name":"Universe Public API","subdomain":"universe","subpath":"","nav_names":{"discuss":"","reference":"API","docs":"Guides","changelog":"Changelog","tutorials":"","recipes":""}}],"UrlManager":{"options":{"child":false,"parent":null,"hasOneChild":false,"project":null,"version":null,"lang":"en"},"defaults":{"lang":"en"}},"urlManagerOpts":{"lang":"en","parent":{"childrenProjects":[]},"project":{"subdomain":"universe"},"version":"3"}},"activeDoc":"authorizing-with-oauth","rdmd":{"baseUrl":"/","body":"[block:callout]\n{\n \"type\": \"info\",\n \"title\": \"OAuth Application Required\",\n \"body\": \"In order to authorize with OAuth, you are required to create a Universe application.\\n\\nApplications can be created here: [https://www.universe.com/oauth/applications](https://www.universe.com/oauth/applications)\"\n}\n[/block]\nUniverse has built-in support for the OAuth 2.0 **Auth Code Grant Flow**. \n\nAll authorized requests in our API require you to implement this strategy or the [client credentials flow](https://developers.universe.com/docs/client-credentials-flow). Most developers requesting access to Universe user data should use this flow. Before proceeding with this guide, please make sure that you have created a Universe OAuth Application. Additionally, please familiarize yourself with OAuth 2.0 concepts generally: [http://oauthbible.com](http://oauthbible.com)\n\nHere is a quick demo which demonstrates how to get an access token at Universe in 1 minute:\n[block:embed]\n{\n \"html\": \"<iframe class=\\\"embedly-embed\\\" src=\\\"//cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FBafbpoahNJU%3Ffeature%3Doembed&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DBafbpoahNJU&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FBafbpoahNJU%2Fhqdefault.jpg&key=f2aa6fc3595946d0afc3d76cbbd25dc3&type=text%2Fhtml&schema=youtube\\\" width=\\\"854\\\" height=\\\"480\\\" scrolling=\\\"no\\\" frameborder=\\\"0\\\" allowfullscreen></iframe>\",\n \"url\": \"https://www.youtube.com/watch?v=BafbpoahNJU\",\n \"title\": \"Getting OAuth Access Token at Universe.com\",\n \"favicon\": \"https://s.ytimg.com/yts/img/ringo/img/favicon-vfl8qSV2F.ico\",\n \"image\": \"https://i.ytimg.com/vi/BafbpoahNJU/hqdefault.jpg\"\n}\n[/block]\n\n[block:api-header]\n{\n \"title\": \"Step 1. Get the User's Authorization\"\n}\n[/block]\nTo begin the Authorization Code flow, your web application should first send the user to the authorization URL:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"https://www.universe.com/oauth/authorize?response_type=code&scope=public&client_id=APPLICATION_ID&redirect_uri=CALLBACK_URL\\n\",\n \"language\": \"text\"\n }\n ]\n}\n[/block]\nWhere:\n\n * `response_type`: `code` – This must match the required value - specifying the type of authorization returned.\n * `scope`: `public` – The scopes which you want to request authorization for. Right now, Universe supports only one scope.\n * `client_id`: `Application ID` – Your application's Client ID. You were provided this by our developer support team.\n * `redirect_uri`: `Callback URL` – Your URL to which Universe will redirect the browser after authorization has been granted by the user. The Authorization Code will be available in the code URL parameter. This URL must be registered with your application and must be served via HTTPS.\n\nOptionally, you may also provide a `state` parameter. [Per the OAuth spec](https://tools.ietf.org/html/rfc6749#section-4.1.1), this value: \n\n> is used by the client to maintain state between the request and callback. The authorization server includes this value when redirecting the user-agent back to the client.\n\nFor example:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"<a href=\\\"https://www.universe.com/oauth/authorize?response_type=code&scope=public&client_id=APPLICATION_ID&redirect_uri=CALLBACK_URL\\\">\\n Sign In With Universe\\n</a>\",\n \"language\": \"html\"\n }\n ]\n}\n[/block]\nThe purpose of this call is to obtain consent from the user to invoke the API to do certain things on behalf of the user. Universe will authenticate the user and obtain consent, unless consent has been previously given.\n\nOnce consent has been granted, we will redirect the user back to your redirect_uri with a query parameter of `code` - this is the auth code you need to exchange for an access token.\n[block:callout]\n{\n \"type\": \"info\",\n \"title\": \"Using State?\",\n \"body\": \"Note that if you are using the optional state param, we will echo it back at the redirect phase.\"\n}\n[/block]\n\n[block:api-header]\n{\n \"title\": \"Step 2. Exchange the Authorization Code for an Access Token\"\n}\n[/block]\nNow that you have an Authorization Code, you must exchange it for an Access Token that can be used to make authenticated requests to our API. Using the Authorization Code (code) from the previous step, you will need to POST to the Token URL:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"export APPLICATION_ID=...\\nexport APPLICATION_SECRET=...\\nexport REDIRECT_URI=...\\nexport AUTHORIZATION_CODE=...\\n\\ncurl --request POST \\\\\\n --url 'https://www.universe.com/oauth/token' \\\\\\n --header 'content-type: application/json' \\\\\\n --data \\\"{\\\\\\\"grant_type\\\\\\\":\\\\\\\"authorization_code\\\\\\\", \\\\\\\"client_id\\\\\\\":\\\\\\\"$APPLICATION_ID\\\\\\\", \\\\\\\"client_secret\\\\\\\":\\\\\\\"$APPLICATION_SECRET\\\\\\\", \\\\\\\"redirect_uri\\\\\\\":\\\\\\\"$REDIRECT_URI\\\\\\\", \\\\\\\"code\\\\\\\":\\\\\\\"$AUTHORIZATION_CODE\\\\\\\"}\\\"\",\n \"language\": \"shell\"\n }\n ]\n}\n[/block]\nWhere:\n\n * `grant_type`: This must be `authorization_code`.\n * `client_id`: `APPLICATION_ID` – Your application's Client ID.\n * `client_secret`: `APPLICATION_SECRET` – Your application's Client Secret.\n * `code`: `AUTHORIZATION_CODE` – The Authorization Code received from the initial authorize call.\n * `redirect_uri`: `REDIRECT_URI` – The URL must match exactly the redirect_uri passed to /authorize.\n\nThe response contains the `access_token`, `refresh_token`, `expires_in`, `token_type`, `scope`, and `created_at` values, for example:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"{\\n \\\"access_token\\\": \\\"eyJz93a...k4laUWw\\\",\\n \\\"refresh_token\\\": \\\"GEbRxBN...edjnXbL\\\",\\n \\\"token_type\\\": \\\"Bearer\\\",\\n \\\"expires_in\\\": 2592000,\\n \\\"scope\\\": \\\"public\\\",\\n \\\"created_at\\\": 1494964915\\n}\\n\",\n \"language\": \"json\"\n }\n ]\n}\n[/block]\nNote that your `access_token` will be valid for the number of seconds specified by `expires_in`. Once the expiry time has passed, you will need to exchange the `refresh_token` for a new `access_token`.\n[block:callout]\n{\n \"type\": \"danger\",\n \"body\": \"It is important to understand that the Authorization Code flow should only be used in cases such as a Regular Web Application where the Client Secret can be safely stored. In cases such as a Single Page Application, the Client Secret is available to the client (in the web browser), so the integrity of the Client Secret cannot be maintained.\",\n \"title\": \"Security Warning\"\n}\n[/block]\n\n[block:api-header]\n{\n \"title\": \"Step 3. Using the Access Token\"\n}\n[/block]\nOnce the `access_token` has been obtained it can be used to make calls to the API by passing it as a Bearer Token in the Authorization header of the HTTP request:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"curl --request GET \\\\\\n --url https://www.universe.com/some_endpoint \\\\\\n --header 'authorization: Bearer ACCESS_TOKEN'\",\n \"language\": \"curl\"\n }\n ]\n}\n[/block]","dehydrated":{"toc":"<nav><ul class=\"toc-list\"><li><a class=\"tocHeader\" href=\"#\"><i class=\"icon icon-text-align-left\"></i>Table of Contents</a></li><li class=\"toc-children\"><ul>\n<li><a href=\"#step-1-get-the-users-authorization\">Step 1. Get the User&#x27;s Authorization</a></li>\n<li><a href=\"#step-2-exchange-the-authorization-code-for-an-access-token\">Step 2. Exchange the Authorization Code for an Access Token</a></li>\n<li><a href=\"#step-3-using-the-access-token\">Step 3. Using the Access Token</a></li>\n</ul></li></ul></nav>","body":"<blockquote class=\"callout callout_info\" theme=\"📘\"><h2 class=\"callout-heading\"><span class=\"callout-icon\">📘</span><p>OAuth Application Required</p></h2><p>In order to authorize with OAuth, you are required to create a Universe application.</p><p>Applications can be created here: <a href=\"https://www.universe.com/oauth/applications\" target=\"\" title=\"\">https://www.universe.com/oauth/applications</a></p></blockquote>\n<p>Universe has built-in support for the OAuth 2.0 <strong>Auth Code Grant Flow</strong>. </p>\n<p>All authorized requests in our API require you to implement this strategy or the <a href=\"https://developers.universe.com/docs/client-credentials-flow\" target=\"\" title=\"\">client credentials flow</a>. Most developers requesting access to Universe user data should use this flow. Before proceeding with this guide, please make sure that you have created a Universe OAuth Application. Additionally, please familiarize yourself with OAuth 2.0 concepts generally: <a href=\"http://oauthbible.com\" target=\"\" title=\"\">http://oauthbible.com</a></p>\n<p>Here is a quick demo which demonstrates how to get an access token at Universe in 1 minute:</p>\n<div class=\"embed embed_hasImg\"><div class=\"embed-media\"><iframe class=\"embedly-embed\" src=\"//cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FBafbpoahNJU%3Ffeature%3Doembed&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DBafbpoahNJU&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FBafbpoahNJU%2Fhqdefault.jpg&key=f2aa6fc3595946d0afc3d76cbbd25dc3&type=text%2Fhtml&schema=youtube\" width=\"854\" height=\"480\" scrolling=\"no\" frameborder=\"0\" allowfullscreen></iframe></div></div>\n<h2 class=\"heading heading-2 header-scroll\" align=\"\"><div class=\"heading-anchor anchor waypoint\" id=\"step-1-get-the-users-authorization\"></div><div class=\"heading-text\"><div id=\"section-step-1-get-the-users-authorization\" class=\"heading-anchor_backwardsCompatibility\"></div>Step 1. Get the User&#x27;s Authorization</div><a aria-label=\"Skip link to Step 1. Get the User&#x27;s Authorization\" class=\"heading-anchor-icon fa fa-anchor\" href=\"#step-1-get-the-users-authorization\"></a></h2>\n<p>To begin the Authorization Code flow, your web application should first send the user to the authorization URL:</p>\n<div class=\"CodeTabs CodeTabs_initial theme-light\"><div class=\"CodeTabs-toolbar\" role=\"tablist\"><button aria-selected=\"true\" class=\"CodeTabs_active\" role=\"tab\" type=\"button\">Text</button></div><div class=\"CodeTabs-inner\" role=\"tabpanel\"><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-text theme-light\" data-lang=\"text\" name=\"\" tabindex=\"0\">https://www.universe.com/oauth/authorize?response_type=code&amp;scope=public&amp;client_id=APPLICATION_ID&amp;redirect_uri=CALLBACK_URL\n</code></pre></div></div>\n<p>Where:</p>\n<ul>\n<li><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">response_type</code>: <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">code</code> – This must match the required value - specifying the type of authorization returned.</li>\n<li><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">scope</code>: <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">public</code> – The scopes which you want to request authorization for. Right now, Universe supports only one scope.</li>\n<li><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">client_id</code>: <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">Application ID</code> – Your application&#x27;s Client ID. You were provided this by our developer support team.</li>\n<li><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">redirect_uri</code>: <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">Callback URL</code> – Your URL to which Universe will redirect the browser after authorization has been granted by the user. The Authorization Code will be available in the code URL parameter. This URL must be registered with your application and must be served via HTTPS.</li>\n</ul>\n<p>Optionally, you may also provide a <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">state</code> parameter. <a href=\"https://tools.ietf.org/html/rfc6749#section-4.1.1\" target=\"\" title=\"\">Per the OAuth spec</a>, this value: </p>\n<blockquote>\n<p>is used by the client to maintain state between the request and callback. The authorization server includes this value when redirecting the user-agent back to the client.</p>\n</blockquote>\n<p>For example:</p>\n<div class=\"CodeTabs CodeTabs_initial theme-light\"><div class=\"CodeTabs-toolbar\" role=\"tablist\"><button aria-selected=\"true\" class=\"CodeTabs_active\" role=\"tab\" type=\"button\">HTML</button></div><div class=\"CodeTabs-inner\" role=\"tabpanel\"><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-html theme-light\" data-lang=\"html\" name=\"\" tabindex=\"0\">&lt;a href=&quot;https://www.universe.com/oauth/authorize?response_type=code&amp;scope=public&amp;client_id=APPLICATION_ID&amp;redirect_uri=CALLBACK_URL&quot;&gt;\n Sign In With Universe\n&lt;/a&gt;\n</code></pre></div></div>\n<p>The purpose of this call is to obtain consent from the user to invoke the API to do certain things on behalf of the user. Universe will authenticate the user and obtain consent, unless consent has been previously given.</p>\n<p>Once consent has been granted, we will redirect the user back to your redirect_uri with a query parameter of <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">code</code> - this is the auth code you need to exchange for an access token.</p>\n<blockquote class=\"callout callout_info\" theme=\"📘\"><h2 class=\"callout-heading\"><span class=\"callout-icon\">📘</span><p>Using State?</p></h2><p>Note that if you are using the optional state param, we will echo it back at the redirect phase.</p></blockquote>\n<h2 class=\"heading heading-2 header-scroll\" align=\"\"><div class=\"heading-anchor anchor waypoint\" id=\"step-2-exchange-the-authorization-code-for-an-access-token\"></div><div class=\"heading-text\"><div id=\"section-step-2-exchange-the-authorization-code-for-an-access-token\" class=\"heading-anchor_backwardsCompatibility\"></div>Step 2. Exchange the Authorization Code for an Access Token</div><a aria-label=\"Skip link to Step 2. Exchange the Authorization Code for an Access Token\" class=\"heading-anchor-icon fa fa-anchor\" href=\"#step-2-exchange-the-authorization-code-for-an-access-token\"></a></h2>\n<p>Now that you have an Authorization Code, you must exchange it for an Access Token that can be used to make authenticated requests to our API. Using the Authorization Code (code) from the previous step, you will need to POST to the Token URL:</p>\n<div class=\"CodeTabs CodeTabs_initial theme-light\"><div class=\"CodeTabs-toolbar\" role=\"tablist\"><button aria-selected=\"true\" class=\"CodeTabs_active\" role=\"tab\" type=\"button\">Shell</button></div><div class=\"CodeTabs-inner\" role=\"tabpanel\"><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-shell theme-light\" data-lang=\"shell\" name=\"\" tabindex=\"0\">export APPLICATION_ID=...\nexport APPLICATION_SECRET=...\nexport REDIRECT_URI=...\nexport AUTHORIZATION_CODE=...\n\ncurl --request POST \\\n --url &#x27;https://www.universe.com/oauth/token&#x27; \\\n --header &#x27;content-type: application/json&#x27; \\\n --data &quot;{\\&quot;grant_type\\&quot;:\\&quot;authorization_code\\&quot;, \\&quot;client_id\\&quot;:\\&quot;$APPLICATION_ID\\&quot;, \\&quot;client_secret\\&quot;:\\&quot;$APPLICATION_SECRET\\&quot;, \\&quot;redirect_uri\\&quot;:\\&quot;$REDIRECT_URI\\&quot;, \\&quot;code\\&quot;:\\&quot;$AUTHORIZATION_CODE\\&quot;}&quot;\n</code></pre></div></div>\n<p>Where:</p>\n<ul>\n<li><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">grant_type</code>: This must be <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">authorization_code</code>.</li>\n<li><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">client_id</code>: <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">APPLICATION_ID</code> – Your application&#x27;s Client ID.</li>\n<li><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">client_secret</code>: <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">APPLICATION_SECRET</code> – Your application&#x27;s Client Secret.</li>\n<li><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">code</code>: <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">AUTHORIZATION_CODE</code> – The Authorization Code received from the initial authorize call.</li>\n<li><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">redirect_uri</code>: <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">REDIRECT_URI</code> – The URL must match exactly the redirect_uri passed to /authorize.</li>\n</ul>\n<p>The response contains the <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">access_token</code>, <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">refresh_token</code>, <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">expires_in</code>, <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">token_type</code>, <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">scope</code>, and <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">created_at</code> values, for example:</p>\n<div class=\"CodeTabs CodeTabs_initial theme-light\"><div class=\"CodeTabs-toolbar\" role=\"tablist\"><button aria-selected=\"true\" class=\"CodeTabs_active\" role=\"tab\" type=\"button\">JSON</button></div><div class=\"CodeTabs-inner\" role=\"tabpanel\"><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-json theme-light\" data-lang=\"json\" name=\"\" tabindex=\"0\">{\n &quot;access_token&quot;: &quot;eyJz93a...k4laUWw&quot;,\n &quot;refresh_token&quot;: &quot;GEbRxBN...edjnXbL&quot;,\n &quot;token_type&quot;: &quot;Bearer&quot;,\n &quot;expires_in&quot;: 2592000,\n &quot;scope&quot;: &quot;public&quot;,\n &quot;created_at&quot;: 1494964915\n}\n</code></pre></div></div>\n<p>Note that your <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">access_token</code> will be valid for the number of seconds specified by <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">expires_in</code>. Once the expiry time has passed, you will need to exchange the <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">refresh_token</code> for a new <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">access_token</code>.</p>\n<blockquote class=\"callout callout_error\" theme=\"❗️\"><h2 class=\"callout-heading\"><span class=\"callout-icon\">❗️</span><p>Security Warning</p></h2><p>It is important to understand that the Authorization Code flow should only be used in cases such as a Regular Web Application where the Client Secret can be safely stored. In cases such as a Single Page Application, the Client Secret is available to the client (in the web browser), so the integrity of the Client Secret cannot be maintained.</p></blockquote>\n<h2 class=\"heading heading-2 header-scroll\" align=\"\"><div class=\"heading-anchor anchor waypoint\" id=\"step-3-using-the-access-token\"></div><div class=\"heading-text\"><div id=\"section-step-3-using-the-access-token\" class=\"heading-anchor_backwardsCompatibility\"></div>Step 3. Using the Access Token</div><a aria-label=\"Skip link to Step 3. Using the Access Token\" class=\"heading-anchor-icon fa fa-anchor\" href=\"#step-3-using-the-access-token\"></a></h2>\n<p>Once the <button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang- theme-light\" data-lang=\"\" name=\"\" tabindex=\"0\">access_token</code> has been obtained it can be used to make calls to the API by passing it as a Bearer Token in the Authorization header of the HTTP request:</p>\n<div class=\"CodeTabs CodeTabs_initial theme-light\"><div class=\"CodeTabs-toolbar\" role=\"tablist\"><button aria-selected=\"true\" class=\"CodeTabs_active\" role=\"tab\" type=\"button\">cURL</button></div><div class=\"CodeTabs-inner\" role=\"tabpanel\"><pre><button aria-label=\"Copy Code\" class=\"rdmd-code-copy fa\"></button><code class=\"rdmd-code lang-curl theme-light\" data-lang=\"curl\" name=\"\" tabindex=\"0\">curl --request GET \\\n --url https://www.universe.com/some_endpoint \\\n --header &#x27;authorization: Bearer ACCESS_TOKEN&#x27;\n</code></pre></div></div>"},"mdx":false,"opts":{"alwaysThrow":false,"compatibilityMode":false,"copyButtons":true,"correctnewlines":false,"markdownOptions":{"fences":true,"commonmark":true,"gfm":true,"ruleSpaces":false,"listItemIndent":"1","spacedTable":true,"paddedTable":true},"normalize":true,"lazyImages":true,"reusableContent":{"tags":{}},"safeMode":false,"settings":{"position":true},"theme":"light","customBlocks":{},"resourceID":"5b4cc75f666e630003bc9115","resourceType":"page","baseUrl":"/","terms":[],"variables":{"user":{},"defaults":[]}},"terms":[],"variables":{"user":{},"defaults":[]}},"doc":{"metadata":{"image":[],"title":"","description":"","keywords":"","robots":"index"},"mdx":{"altBody":"","status":"rdmd"},"api":{"method":"get","url":"","auth":"required","params":[],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]}},"next":{"description":"","pages":[]},"algolia":{"recordCount":1,"publishPending":false,"translationFailure":false},"title":"Auth Code Grant Flow","icon":"","updates":[],"type":"basic","slug":"authorizing-with-oauth","excerpt":"","body":"[block:callout]\n{\n \"type\": \"info\",\n \"title\": \"OAuth Application Required\",\n \"body\": \"In order to authorize with OAuth, you are required to create a Universe application.\\n\\nApplications can be created here: [https://www.universe.com/oauth/applications](https://www.universe.com/oauth/applications)\"\n}\n[/block]\nUniverse has built-in support for the OAuth 2.0 **Auth Code Grant Flow**. \n\nAll authorized requests in our API require you to implement this strategy or the [client credentials flow](https://developers.universe.com/docs/client-credentials-flow). Most developers requesting access to Universe user data should use this flow. Before proceeding with this guide, please make sure that you have created a Universe OAuth Application. Additionally, please familiarize yourself with OAuth 2.0 concepts generally: [http://oauthbible.com](http://oauthbible.com)\n\nHere is a quick demo which demonstrates how to get an access token at Universe in 1 minute:\n[block:embed]\n{\n \"html\": \"<iframe class=\\\"embedly-embed\\\" src=\\\"//cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FBafbpoahNJU%3Ffeature%3Doembed&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DBafbpoahNJU&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FBafbpoahNJU%2Fhqdefault.jpg&key=f2aa6fc3595946d0afc3d76cbbd25dc3&type=text%2Fhtml&schema=youtube\\\" width=\\\"854\\\" height=\\\"480\\\" scrolling=\\\"no\\\" frameborder=\\\"0\\\" allowfullscreen></iframe>\",\n \"url\": \"https://www.youtube.com/watch?v=BafbpoahNJU\",\n \"title\": \"Getting OAuth Access Token at Universe.com\",\n \"favicon\": \"https://s.ytimg.com/yts/img/ringo/img/favicon-vfl8qSV2F.ico\",\n \"image\": \"https://i.ytimg.com/vi/BafbpoahNJU/hqdefault.jpg\"\n}\n[/block]\n\n[block:api-header]\n{\n \"title\": \"Step 1. Get the User's Authorization\"\n}\n[/block]\nTo begin the Authorization Code flow, your web application should first send the user to the authorization URL:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"https://www.universe.com/oauth/authorize?response_type=code&scope=public&client_id=APPLICATION_ID&redirect_uri=CALLBACK_URL\\n\",\n \"language\": \"text\"\n }\n ]\n}\n[/block]\nWhere:\n\n * `response_type`: `code` – This must match the required value - specifying the type of authorization returned.\n * `scope`: `public` – The scopes which you want to request authorization for. Right now, Universe supports only one scope.\n * `client_id`: `Application ID` – Your application's Client ID. You were provided this by our developer support team.\n * `redirect_uri`: `Callback URL` – Your URL to which Universe will redirect the browser after authorization has been granted by the user. The Authorization Code will be available in the code URL parameter. This URL must be registered with your application and must be served via HTTPS.\n\nOptionally, you may also provide a `state` parameter. [Per the OAuth spec](https://tools.ietf.org/html/rfc6749#section-4.1.1), this value: \n\n> is used by the client to maintain state between the request and callback. The authorization server includes this value when redirecting the user-agent back to the client.\n\nFor example:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"<a href=\\\"https://www.universe.com/oauth/authorize?response_type=code&scope=public&client_id=APPLICATION_ID&redirect_uri=CALLBACK_URL\\\">\\n Sign In With Universe\\n</a>\",\n \"language\": \"html\"\n }\n ]\n}\n[/block]\nThe purpose of this call is to obtain consent from the user to invoke the API to do certain things on behalf of the user. Universe will authenticate the user and obtain consent, unless consent has been previously given.\n\nOnce consent has been granted, we will redirect the user back to your redirect_uri with a query parameter of `code` - this is the auth code you need to exchange for an access token.\n[block:callout]\n{\n \"type\": \"info\",\n \"title\": \"Using State?\",\n \"body\": \"Note that if you are using the optional state param, we will echo it back at the redirect phase.\"\n}\n[/block]\n\n[block:api-header]\n{\n \"title\": \"Step 2. Exchange the Authorization Code for an Access Token\"\n}\n[/block]\nNow that you have an Authorization Code, you must exchange it for an Access Token that can be used to make authenticated requests to our API. Using the Authorization Code (code) from the previous step, you will need to POST to the Token URL:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"export APPLICATION_ID=...\\nexport APPLICATION_SECRET=...\\nexport REDIRECT_URI=...\\nexport AUTHORIZATION_CODE=...\\n\\ncurl --request POST \\\\\\n --url 'https://www.universe.com/oauth/token' \\\\\\n --header 'content-type: application/json' \\\\\\n --data \\\"{\\\\\\\"grant_type\\\\\\\":\\\\\\\"authorization_code\\\\\\\", \\\\\\\"client_id\\\\\\\":\\\\\\\"$APPLICATION_ID\\\\\\\", \\\\\\\"client_secret\\\\\\\":\\\\\\\"$APPLICATION_SECRET\\\\\\\", \\\\\\\"redirect_uri\\\\\\\":\\\\\\\"$REDIRECT_URI\\\\\\\", \\\\\\\"code\\\\\\\":\\\\\\\"$AUTHORIZATION_CODE\\\\\\\"}\\\"\",\n \"language\": \"shell\"\n }\n ]\n}\n[/block]\nWhere:\n\n * `grant_type`: This must be `authorization_code`.\n * `client_id`: `APPLICATION_ID` – Your application's Client ID.\n * `client_secret`: `APPLICATION_SECRET` – Your application's Client Secret.\n * `code`: `AUTHORIZATION_CODE` – The Authorization Code received from the initial authorize call.\n * `redirect_uri`: `REDIRECT_URI` – The URL must match exactly the redirect_uri passed to /authorize.\n\nThe response contains the `access_token`, `refresh_token`, `expires_in`, `token_type`, `scope`, and `created_at` values, for example:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"{\\n \\\"access_token\\\": \\\"eyJz93a...k4laUWw\\\",\\n \\\"refresh_token\\\": \\\"GEbRxBN...edjnXbL\\\",\\n \\\"token_type\\\": \\\"Bearer\\\",\\n \\\"expires_in\\\": 2592000,\\n \\\"scope\\\": \\\"public\\\",\\n \\\"created_at\\\": 1494964915\\n}\\n\",\n \"language\": \"json\"\n }\n ]\n}\n[/block]\nNote that your `access_token` will be valid for the number of seconds specified by `expires_in`. Once the expiry time has passed, you will need to exchange the `refresh_token` for a new `access_token`.\n[block:callout]\n{\n \"type\": \"danger\",\n \"body\": \"It is important to understand that the Authorization Code flow should only be used in cases such as a Regular Web Application where the Client Secret can be safely stored. In cases such as a Single Page Application, the Client Secret is available to the client (in the web browser), so the integrity of the Client Secret cannot be maintained.\",\n \"title\": \"Security Warning\"\n}\n[/block]\n\n[block:api-header]\n{\n \"title\": \"Step 3. Using the Access Token\"\n}\n[/block]\nOnce the `access_token` has been obtained it can be used to make calls to the API by passing it as a Bearer Token in the Authorization header of the HTTP request:\n[block:code]\n{\n \"codes\": [\n {\n \"code\": \"curl --request GET \\\\\\n --url https://www.universe.com/some_endpoint \\\\\\n --header 'authorization: Bearer ACCESS_TOKEN'\",\n \"language\": \"curl\"\n }\n ]\n}\n[/block]","order":1,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"reusableContent":[],"previousSlug":"","slugUpdatedAt":"2025-03-27T00:10:13.205Z","revision":1,"_id":"5b4cc75f666e630003bc9115","parentDoc":null,"project":"586bd961c3ba161b00bee1f1","user":"598c9325e39328003783e6bf","githubsync":"","version":{"version":"3","version_clean":"3.0.0","codename":"","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["5b4cc75f666e630003bc9106","5879a0642e05e71900617fc1","5879a5882e05e71900617fc5","5879aad62e05e71900617fc8","5879acf21fe2370f001d07c1","5879acff1fe2370f001d07c2","5879ad031fe2370f001d07c3","5879ad057a58130f00303d72","587d26eb73e9731b008892b0","591b62418f2e010f00d382cd","5b4cc75f666e630003bc9107","5921fd03aca6050f005b1cea","5b4cc75f666e630003bc9108","5b4cc75f666e630003bc9109","593b0a239c56ba000f30233c","5953eff2c356e9001b125124","5b4cc75f666e630003bc910a","5b4cc75f666e630003bc910b","5b4cc75f666e630003bc910c","5b4cc75f666e630003bc910d","5b4cc75f666e630003bc910e","59a59ab34125d10031dbee45","5b4cd2fd9275b5000331e785","5b562065ddebdc0003ac54a7","5b895ed47d6ac70003cd5737","5b89783ef73f990003d535ea","6376bee0127d99000316938c"],"pdfStatus":"","source":"readme","_id":"5b4cc75f666e630003bc912a","__v":4,"project":"586bd961c3ba161b00bee1f1","forked_from":"586bd961c3ba161b00bee1f4","createdAt":"2017-01-03T17:03:29.977Z","releaseDate":"2017-01-03T17:03:29.977Z","apiRegistries":[]},"category":{"title":"OAuth","slug":"documentation","order":3,"reference":false,"_id":"5b4cc75f666e630003bc9106","createdAt":"2017-01-03T17:03:30.005Z","from_sync":false,"project":"586bd961c3ba161b00bee1f1","sync":{"url":"","isSync":false},"version":"5b4cc75f666e630003bc912a","__v":0,"type":"guide","id":"5b4cc75f666e630003bc9106"},"createdAt":"2017-05-16T21:15:39.276Z","__v":0,"updatedAt":"2019-04-04T17:17:39.451Z","isApi":false,"tutorials":[],"id":"5b4cc75f666e630003bc9115"},"hideTOC":false,"meta":{"_id":"5b4cc75f666e630003bc9115","description":"📘 OAuth Application Required: In order to authorize with OAuth, you are required to create a Universe application. Applications can be created here: https://www.universe.com/oauth/applications Universe has built-in support for the OAuth 2.0 Auth Code Grant Flow . All authorized requests in our API ...","hidden":false,"image":[],"keywords":"","metaTitle":"Auth Code Grant Flow","parent":null,"robots":"index","slug":"authorizing-with-oauth","title":"Auth Code Grant Flow","type":"docs"},"slugUrl":"/docs/authorizing-with-oauth","config":{"algoliaIndex":"readme_search_v2","amplitude":{"apiKey":"dc8065a65ef83d6ad23e37aaf014fc84","enabled":true},"asset_url":"https://cdn.readme.io","domain":"readme.io","domainFull":"https://dash.readme.com","encryptedLocalStorageKey":"ekfls-2025-03-26","fullstory":{"enabled":true,"orgId":"FSV9A"},"metrics":{"billingCronEnabled":"true","dashUrl":"https://m.readme.io","defaultUrl":"https://m.readme.io","exportMaxRetries":12,"wsUrl":"wss://m.readme.io"},"proxyUrl":"https://try.readme.io","readmeRecaptchaSiteKey":"6LesVBYpAAAAAESOCHOyo2kF9SZXPVb54Nwf3i2x","releaseVersion":"5.314.0","sentry":{"dsn":"https://3bbe57a973254129bcb93e47dc0cc46f@o343074.ingest.sentry.io/2052166","enabled":true,"tracesSampleRate":0},"shMigration":{"promoVideo":"","forceWaitlist":false},"sslBaseDomain":"readmessl.com","sslGenerationService":"ssl.readmessl.com","stripePk":"pk_live_5103PML2qXbDukVh7GDAkQoR4NSuLqy8idd5xtdm9407XdPR6o3bo663C1ruEGhXJjpnb2YCpj8EU1UvQYanuCjtr00t1DRCf2a","superHub":{"newProjectsEnabled":true},"wootric":{"accountToken":"NPS-122b75a4","enabled":true}},"context":{"labs":{},"user":{},"terms":[],"variables":{"user":{},"defaults":[]},"project":{"_id":"586bd961c3ba161b00bee1f1","appearance":{"categoriesAsDropdown":false,"html_promo":"","link_logo_to_url":false,"nextStepsLabel":"","sticky":false,"stylesheet_hub2":".content-body .magic-block-callout.type-info {\n border-color: #E2E5E7;\n background-color: #F5F5F5;\n}\n.content-body .magic-block-callout.type-info h3 {\n color: #4E78F1;\n}\n.content-body .magic-block-callout .fa.fa-info-circle {\n color: #4E78F1;\n}\n\n.content-body h2 {\n color: #FFF; \n}\n\np {\n line-height: 18px; \n margin-bottom: 20px;\n font-size:16px;\n}","typography":{"tk_body":"","tk_headline":"","tk_key":"","typekit":false,"body":"Open+Sans:400:sans-serif","headline":"Open+Sans:400:sans-serif"},"body":{"style":"none"},"html_head":"","javascript_hub2":"","logo":["https://files.readme.io/f9d220d-small-grey-color-small.png","grey-color-small.png",164,30,"#000000","https://files.readme.io/33caf50-grey-color-small.png"],"stylesheet":"","main_body":{"type":"links"},"overlay":"blueprint","promos":[{"extras":{"type":"buttons","buttonPrimary":"docs","buttonSecondary":""},"title":"Universe Developer Portal","text":"Welcome to the Universe Developer Portal. You'll find comprehensive guides and documentation to help you start working with Universe as quickly as possible, as well as support if you get stuck. Let's jump right in!","_id":"586bd961c3ba161b00bee1f2"}],"colors":{"body_highlight":"#3A66E5","header_text":"","highlight":"","main":"#4E78F1","main_alt":"#3CC6F2","custom_login_link_color":""},"html_footer":"","landing":true,"logo_white":["https://files.readme.io/55d0959-small-logo.png","logo.png",323,80,"#f4f4f4","https://files.readme.io/558e02f-logo.png"],"hideTableOfContents":false,"hide_logo":true,"html_body":"","html_hidelinks":false,"javascript":"","notheme":false,"favicon":[],"header":{"img_size":"auto","style":"solid","img":[],"img_pos":"tl"},"html_footer_meta":"","logo_white_use":true,"showVersion":false,"theme":"solid","referenceLayout":"row","subheaderStyle":"dropdown","childrenAsPills":false,"global_landing_page":{"html":"","redirect":""},"rdmd":{"callouts":{"useIconFont":false},"theme":{"background":"","border":"","markdownEdge":"","markdownFont":"","markdownFontSize":"","markdownLineHeight":"","markdownRadius":"","markdownText":"","markdownTitle":"","markdownTitleFont":"","mdCodeBackground":"","mdCodeFont":"","mdCodeRadius":"","mdCodeTabs":"","mdCodeText":"","tableEdges":"","tableHead":"","tableHeadText":"","tableRow":"","tableStripe":"","tableText":"","text":"","title":""}},"splitReferenceDocs":false,"showMetricsInReference":true,"referenceSimpleMode":true,"stylesheet_hub3":"","loginLogo":[],"logo_large":false,"colorScheme":"light","changelog":{"layoutExpanded":false,"showAuthor":true,"showExactDate":false},"allowApiExplorerJsonEditor":false},"custom_domain":"developers.universe.com","childrenProjects":[],"derivedPlan":"startup","description":"The API for ticketing.","error404":"","experiments":[],"first_page":"landing","flags":{"speedyRender":false,"enterprise":false,"hideGoogleAnalytics":false,"hub2":true,"autoSslGeneration":true,"correctnewlines":false,"stripe":false,"allowImport":false,"allowXFrame":false,"migrationRun":false,"migrationSwaggerRun":true,"oauth":false,"swagger":false,"allow_hub2":false,"jwt":false,"newApiExplorer":true,"newSearch":true,"alwaysShowDocPublishStatus":false,"cookieAuthentication":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"newEditor":true,"newMarkdownBetaProgram":true,"oldMarkdown":false,"rdmdCompatibilityMode":false,"staging":false,"translation":false,"tutorials":true,"allowApiExplorerJsonEditor":false,"useReactApp":true,"newHeader":false,"referenceRedesign":false,"auth0Oauth":false,"graphql":false,"singleProjectEnterprise":false,"dashReact":false,"allowReferenceUpgrade":true,"metricsV2":true,"newEditorDash":true,"enableRealtimeExperiences":false,"reviewWorkflow":true,"star":false,"allowDarkMode":false,"forceDarkMode":false,"useReactGLP":false,"disablePasswordlessLogin":false,"personalizedDocs":false,"myDevelopers":false,"superHub":false,"developerDashboard":false,"allowReusableOTPs":false,"dashHomeRefresh":false,"owlbotAi":false,"apiV2":false,"git":{"read":false,"write":false},"superHubBeta":false,"dashQuickstart":false,"disableAutoTranslate":false,"customBlocks":false,"devDashHub":false,"disableSAMLScoping":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"apiAccessRevoked":false,"passwordlessLogin":"default","disableSignups":false,"billingRedesignEnabled":true,"developerPortal":false,"mdx":false,"superHubDevelopment":false,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableOidc":false,"customComponents":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":false,"superHubMigrationSelfServeFlow":true,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false},"fullBaseUrl":"https://developers.universe.com/","git":{"migration":{"createRepository":{},"transformation":{},"migratingPages":{},"enableSuperhub":{}},"sync":{"linked_repository":{},"installationRequest":{},"connections":[]}},"glossaryTerms":[],"graphqlSchema":"","gracePeriod":{"enabled":false,"endsAt":null},"shouldGateDash":false,"healthCheck":{"provider":"","settings":{}},"intercom_secure_emailonly":false,"intercom":"","is_active":true,"integrations":{"login":{}},"internal":"","jwtExpirationTime":0,"landing_bottom":[{"type":"three","alignment":"left","group0":{"title":"OAuth","text":"[Auth Code Grant Flow](https://developers.universe.com/v3/docs/authorizing-with-oauth)\n[Client Credentials Flow](https://developers.universe.com/docs/client-credentials-flow)\n[read more...](https://developers.universe.com/docs/authorizing-with-oauth)"},"group1":{"title":"Guides","text":"[GraphQL Overview](https://developers.universe.com/docs/graphql)\n[GraphQL Basic Usage](https://developers.universe.com/docs/basic-usage-1)\n[read more...](https://developers.universe.com/docs)"},"group2":{"title":"API","text":"[GraphQL Explorer](https://www.universe.com/graphiql)\n[RESTful API](https://developers.universe.com/v3/reference#guestlists)\n[read more...](https://developers.universe.com/reference)"}}],"mdxMigrationStatus":"rdmd","metrics":{"monthlyLimit":0,"thumbsEnabled":false,"planLimit":1000000,"realtime":{"dashEnabled":false,"hubEnabled":false},"monthlyPurchaseLimit":0,"meteredBilling":{}},"modules":{"suggested_edits":true,"discuss":false,"reference":true,"examples":true,"docs":true,"landing":true,"changelog":true,"custompages":true,"logs":false,"tutorials":false,"graphql":false},"name":"Universe Public API","nav_names":{"discuss":"","reference":"API","docs":"Guides","changelog":"Changelog","tutorials":"","recipes":""},"oauth_url":"","onboardingCompleted":{"documentation":true,"appearance":true,"jwt":true,"api":true,"logs":false,"domain":true,"metricsSDK":false},"owlbot":{"enabled":false,"isPaying":false,"customization":{"answerLength":"long","customTone":"","defaultAnswer":"","forbiddenWords":"","tone":"neutral"},"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""}},"owner":{"id":null,"email":null,"name":null},"plan":"startup","planOverride":"","planSchedule":{"stripeScheduleId":null,"changeDate":null,"nextPlan":null},"planStatus":"active","planTrial":"startup","readmeScore":{"components":{"newDesign":{"enabled":true,"points":25},"reference":{"enabled":true,"points":50},"tryItNow":{"enabled":true,"points":35},"syncingOAS":{"enabled":false,"points":10},"customLogin":{"enabled":true,"points":25},"metrics":{"enabled":false,"points":40},"recipes":{"enabled":false,"points":15},"pageVoting":{"enabled":false,"points":1},"suggestedEdits":{"enabled":true,"points":10},"support":{"enabled":false,"points":5},"htmlLanding":{"enabled":false,"points":5},"guides":{"enabled":true,"points":10},"changelog":{"enabled":true,"points":5},"glossary":{"enabled":false,"points":1},"variables":{"enabled":false,"points":1},"integrations":{"enabled":false,"points":2}},"percentScore":37.5,"totalScore":160},"reCaptchaSiteKey":"","reference":{"alwaysUseDefaults":true,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false},"seo":{"overwrite_title_tag":false},"stable":{"_id":"5b4cc75f666e630003bc912a","__v":4,"project":"586bd961c3ba161b00bee1f1","forked_from":"586bd961c3ba161b00bee1f4","createdAt":"2017-01-03T17:03:29.977Z","releaseDate":"2017-01-03T17:03:29.977Z","categories":["5b4cc75f666e630003bc9106","5879a0642e05e71900617fc1","5879a5882e05e71900617fc5","5879aad62e05e71900617fc8","5879acf21fe2370f001d07c1","5879acff1fe2370f001d07c2","5879ad031fe2370f001d07c3","5879ad057a58130f00303d72","587d26eb73e9731b008892b0","591b62418f2e010f00d382cd","5b4cc75f666e630003bc9107","5921fd03aca6050f005b1cea","5b4cc75f666e630003bc9108","5b4cc75f666e630003bc9109","593b0a239c56ba000f30233c","5953eff2c356e9001b125124","5b4cc75f666e630003bc910a","5b4cc75f666e630003bc910b","5b4cc75f666e630003bc910c","5b4cc75f666e630003bc910d","5b4cc75f666e630003bc910e","59a59ab34125d10031dbee45","5b4cd2fd9275b5000331e785","5b562065ddebdc0003ac54a7","5b895ed47d6ac70003cd5737","5b89783ef73f990003d535ea","6376bee0127d99000316938c"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"3.0.0","version":"3"},"subdomain":"universe","subpath":"","superHubWaitlist":false,"topnav":{"edited":true,"left":[{"type":"docs","text":"Guides"},{"type":"reference","text":"API"},{"url":"https://careers.universe.com/","text":"Careers","type":"url"},{"type":"url","url":"https://engineering.universe.com/","text":"Blog"},{"type":"custompage","page":"open-source","text":"Open Source","url":"/page/open-source"}],"right":[{"type":"user","text":"User","url":"/login?redirect_uri=/docs/authorizing-with-oauth"}],"bottom":[]},"trial":{"trialEndsAt":"2017-02-17T17:03:29.950Z","trialDeadlineEnabled":true},"translate":{"languages":[],"provider":"transifex","key_public":"","org_name":"","project_name":"","show_widget":false},"url":"https://www.universe.com/","versions":[{"_id":"586bd961c3ba161b00bee1f4","is_stable":false,"__v":22,"codename":"","createdAt":"2017-01-03T17:03:29.977Z","is_beta":false,"is_deprecated":true,"is_hidden":true,"project":"586bd961c3ba161b00bee1f1","releaseDate":"2017-01-03T17:03:29.977Z","categories":["586bd962c3ba161b00bee1f5","5879a0642e05e71900617fc1","5879a5882e05e71900617fc5","5879aad62e05e71900617fc8","5879acf21fe2370f001d07c1","5879acff1fe2370f001d07c2","5879ad031fe2370f001d07c3","5879ad057a58130f00303d72","587d26eb73e9731b008892b0","591b62418f2e010f00d382cd","591b628e7d2cb40f00d470a6","5921fd03aca6050f005b1cea","592da331b9b6b9190056a3e3","592f38d462a2c90037f735f3","593b0a239c56ba000f30233c","5953eff2c356e9001b125124","5953f0068073c90015d54458","5963b33095d42e001b501001","5970d72c1793a90039814582","598dc155f0f95200256745af","59a59a3d428df70039d3066c","59a59ab34125d10031dbee45","6376bee0127d990003169385"],"version_clean":"2.0.0","version":"2"},{"_id":"5b4cc75f666e630003bc912a","__v":4,"project":"586bd961c3ba161b00bee1f1","forked_from":"586bd961c3ba161b00bee1f4","createdAt":"2017-01-03T17:03:29.977Z","releaseDate":"2017-01-03T17:03:29.977Z","categories":["5b4cc75f666e630003bc9106","5879a0642e05e71900617fc1","5879a5882e05e71900617fc5","5879aad62e05e71900617fc8","5879acf21fe2370f001d07c1","5879acff1fe2370f001d07c2","5879ad031fe2370f001d07c3","5879ad057a58130f00303d72","587d26eb73e9731b008892b0","591b62418f2e010f00d382cd","5b4cc75f666e630003bc9107","5921fd03aca6050f005b1cea","5b4cc75f666e630003bc9108","5b4cc75f666e630003bc9109","593b0a239c56ba000f30233c","5953eff2c356e9001b125124","5b4cc75f666e630003bc910a","5b4cc75f666e630003bc910b","5b4cc75f666e630003bc910c","5b4cc75f666e630003bc910d","5b4cc75f666e630003bc910e","59a59ab34125d10031dbee45","5b4cd2fd9275b5000331e785","5b562065ddebdc0003ac54a7","5b895ed47d6ac70003cd5737","5b89783ef73f990003d535ea","6376bee0127d99000316938c"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"3.0.0","version":"3"},{"_id":"5cc9e3c1340d190045e5833f","__v":0,"project":"586bd961c3ba161b00bee1f1","forked_from":"5b4cc75f666e630003bc912a","createdAt":"2017-01-03T17:03:29.977Z","releaseDate":"2017-01-03T17:03:29.977Z","categories":["5cc9e3c1340d190045e5830e","5879a0642e05e71900617fc1","5879a5882e05e71900617fc5","5879aad62e05e71900617fc8","5879acf21fe2370f001d07c1","5879acff1fe2370f001d07c2","5879ad031fe2370f001d07c3","5879ad057a58130f00303d72","587d26eb73e9731b008892b0","591b62418f2e010f00d382cd","5cc9e3c1340d190045e5830f","5921fd03aca6050f005b1cea","5cc9e3c1340d190045e58310","5cc9e3c1340d190045e58311","593b0a239c56ba000f30233c","5953eff2c356e9001b125124","5cc9e3c1340d190045e58312","5b4cc75f666e630003bc910b","5cc9e3c1340d190045e58313","5b4cc75f666e630003bc910d","5b4cc75f666e630003bc910e","59a59ab34125d10031dbee45","5cc9e3c1340d190045e58314","5cc9e3c1340d190045e58315","5cc9e3c1340d190045e58316","5cc9e3c1340d190045e58317","6376bee0127d990003169392"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":false,"codename":"","version_clean":"4.0.0","version":"4"}],"variableDefaults":[],"webhookEnabled":false,"isHubEditable":true},"projectStore":{"data":{"allow_crawlers":"disabled","canonical_url":null,"default_version":{"name":"3"},"description":"The API for ticketing.","glossary":[],"homepage_url":"https://www.universe.com/","id":"586bd961c3ba161b00bee1f1","name":"Universe Public API","parent":null,"redirects":[],"sitemap":"disabled","subdomain":"universe","suggested_edits":"enabled","uri":"/projects/me","variable_defaults":[],"webhooks":[],"api_designer":{"allow_editing":"enabled"},"custom_login":{"login_url":null,"logout_url":null},"features":{"custom_components":"disabled","mdx":"disabled"},"onboarding_completed":{"api":true,"appearance":true,"documentation":true,"domain":true,"jwt":true,"logs":false,"metricsSDK":false},"pages":{"not_found":null},"privacy":{"view":"public","password":null},"refactored":{"status":"disabled","migrated":"unknown"},"reference":{"api_sdk_snippets":"enabled","defaults":"always_use","json_editor":"disabled","oauth_flows":"disabled","request_history":"enabled","response_examples":"collapsed","response_schemas":"collapsed"},"seo":{"overwrite_title_tag":"disabled"},"plan":{"type":"startup","grace_period":{"enabled":false,"end_date":null},"trial":{"expired":false,"end_date":"2017-02-17T17:03:29.950Z"}},"health_check":{"provider":"none","settings":{"manual":{"status":"down","url":null},"statuspage":{"id":null}}},"integrations":{"aws":{"readme_webhook_login":{"region":null,"external_id":null,"role_arn":null,"usage_plan_id":null}},"bing":{"verify":null},"google":{"analytics":null,"site_verification":null},"heap":{"id":null},"koala":{"key":null},"localize":{"key":null},"recaptcha":{"site_key":null,"secret_key":null},"segment":{"key":null,"domain":null},"typekit":{"key":null},"zendesk":{"subdomain":null},"intercom":{"app_id":null,"secure_mode":{"key":null,"email_only":false}}},"permissions":{"appearance":{"private_label":"disabled","custom_code":{"css":"enabled","html":"disabled","js":"disabled"}}},"appearance":{"brand":{"primary_color":"#4E78F1","link_color":"#3A66E5","theme":"light"},"changelog":{"layout":"collapsed","show_author":true,"show_exact_date":false},"markdown":{"callouts":{"icon_font":"emojis"}},"table_of_contents":"enabled","whats_next_label":null,"footer":{"readme_logo":"hide"},"logo":{"size":"default","dark_mode":{"uri":null,"url":"https://files.readme.io/55d0959-small-logo.png","name":"logo.png","width":323,"height":80,"color":"#f4f4f4","links":{"original_url":"https://files.readme.io/558e02f-logo.png"}},"main":{"uri":null,"url":"https://files.readme.io/f9d220d-small-grey-color-small.png","name":"grey-color-small.png","width":164,"height":30,"color":"#000000","links":{"original_url":"https://files.readme.io/33caf50-grey-color-small.png"}},"favicon":{"uri":null,"url":null,"name":null,"width":null,"height":null,"color":null,"links":{"original_url":null}}},"custom_code":{"css":".content-body .magic-block-callout.type-info {\n border-color: #E2E5E7;\n background-color: #F5F5F5;\n}\n.content-body .magic-block-callout.type-info h3 {\n color: #4E78F1;\n}\n.content-body .magic-block-callout .fa.fa-info-circle {\n color: #4E78F1;\n}\n\n.content-body h2 {\n color: #FFF; \n}\n\np {\n line-height: 18px; \n margin-bottom: 20px;\n font-size:16px;\n}","js":null,"html":{"header":null,"home_footer":null,"page_footer":null}},"header":{"type":"solid","gradient_color":"#3CC6F2","overlay":{"fill":"auto","type":"blueprint","position":"top-left","image":{"uri":null,"url":null,"name":null,"width":null,"height":null,"color":null,"links":{"original_url":null}}}},"navigation":{"first_page":"landing_page","left":[{"type":"guides","title":null,"url":null,"custom_page":null},{"type":"reference","title":null,"url":null,"custom_page":null},{"type":"link_url","title":"Careers","url":"https://careers.universe.com/","custom_page":null},{"type":"link_url","title":"Blog","url":"https://engineering.universe.com/","custom_page":null},{"type":"custom_page","title":"Open Source","url":null,"custom_page":"open-source"}],"logo_link":"landing_page","right":[{"type":"user_controls","title":null,"url":null,"custom_page":null}],"sub_nav":[],"subheader_layout":"dropdown","version":"disabled","links":{"home":{"label":"Home","visibility":"enabled"},"graphql":{"label":"GraphQL","visibility":"disabled"},"guides":{"label":"Guides","alias":"Guides","visibility":"enabled"},"reference":{"label":"API Reference","alias":"API","visibility":"enabled"},"recipes":{"label":"Recipes","alias":null,"visibility":"disabled"},"changelog":{"label":"Changelog","alias":"Changelog","visibility":"enabled"},"discussions":{"label":"Discussions","alias":null,"visibility":"disabled"}}}},"git":{"connection":{"status":"inactive"}}}},"version":{"_id":"5b4cc75f666e630003bc912a","__v":4,"project":"586bd961c3ba161b00bee1f1","forked_from":"586bd961c3ba161b00bee1f4","createdAt":"2017-01-03T17:03:29.977Z","releaseDate":"2017-01-03T17:03:29.977Z","categories":["5b4cc75f666e630003bc9106","5879a0642e05e71900617fc1","5879a5882e05e71900617fc5","5879aad62e05e71900617fc8","5879acf21fe2370f001d07c1","5879acff1fe2370f001d07c2","5879ad031fe2370f001d07c3","5879ad057a58130f00303d72","587d26eb73e9731b008892b0","591b62418f2e010f00d382cd","5b4cc75f666e630003bc9107","5921fd03aca6050f005b1cea","5b4cc75f666e630003bc9108","5b4cc75f666e630003bc9109","593b0a239c56ba000f30233c","5953eff2c356e9001b125124","5b4cc75f666e630003bc910a","5b4cc75f666e630003bc910b","5b4cc75f666e630003bc910c","5b4cc75f666e630003bc910d","5b4cc75f666e630003bc910e","59a59ab34125d10031dbee45","5b4cd2fd9275b5000331e785","5b562065ddebdc0003ac54a7","5b895ed47d6ac70003cd5737","5b89783ef73f990003d535ea","6376bee0127d99000316938c"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"3.0.0","version":"3"}},"isDetachedProductionSite":false,"lang":"en","langFull":"Default","reqUrl":"/docs/authorizing-with-oauth","version":{"_id":"5b4cc75f666e630003bc912a","__v":4,"project":"586bd961c3ba161b00bee1f1","forked_from":"586bd961c3ba161b00bee1f4","createdAt":"2017-01-03T17:03:29.977Z","releaseDate":"2017-01-03T17:03:29.977Z","categories":["5b4cc75f666e630003bc9106","5879a0642e05e71900617fc1","5879a5882e05e71900617fc5","5879aad62e05e71900617fc8","5879acf21fe2370f001d07c1","5879acff1fe2370f001d07c2","5879ad031fe2370f001d07c3","5879ad057a58130f00303d72","587d26eb73e9731b008892b0","591b62418f2e010f00d382cd","5b4cc75f666e630003bc9107","5921fd03aca6050f005b1cea","5b4cc75f666e630003bc9108","5b4cc75f666e630003bc9109","593b0a239c56ba000f30233c","5953eff2c356e9001b125124","5b4cc75f666e630003bc910a","5b4cc75f666e630003bc910b","5b4cc75f666e630003bc910c","5b4cc75f666e630003bc910d","5b4cc75f666e630003bc910e","59a59ab34125d10031dbee45","5b4cd2fd9275b5000331e785","5b562065ddebdc0003ac54a7","5b895ed47d6ac70003cd5737","5b89783ef73f990003d535ea","6376bee0127d99000316938c"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"3.0.0","version":"3"}}"></script></div><div id="hub-container"><div class="hub-container"><div state-container ng-attr-id="{{state.current().root !== 'docs' && 'react-app-content-container'}}"><div id="replace-view" ng-non-bindable></div></div></div></div><script>var is_hub = true; var is_hub2 = true; var is_hub_edit = true; </script><div id="ssr-end"><script id="__LOADABLE_REQUIRED_CHUNKS__" type="application/json">[6601,1802,6563,9772,4904,7449,7372,2249,5382,734,954,6903,2395,8161,1008,7188,5753,2852,3901,7783,1456,4935,4287,5948,4201,8230,1313,1343,6060,5798,1936,1666,1202,3221,7327,7717,5359,3307,7356,2144,9141,1080,9852,8684,9575,3859,6591,3787,5408,2637,2402,3457,2859,4467,2578,4674,1731,678,8063]</script><script id="__LOADABLE_REQUIRED_CHUNKS___ext" type="application/json">{"namedChunks":["routes-SuperHub","Header","core-icons-chevron-up-down-svg","routes-Reference","core-icons-more-vertical-svg","core-icons-lock-svg","Footer","routes-Doc","routes-PageNotFound","core-icons-alert-circle-svg","core-icons-search-svg","core-icons-custom-pages-svg","routes-SuperHub-Routes","RMDX","routes-Changelog","Post","Editor","core-icons-x-circle-svg","core-icons-suggested-edits-svg","core-icons-arrow-right-svg","core-icons-chevron-down-svg","routes-Landing","routes-Discuss","Page","CustomPage","routes-Tutorials","core-icons-eye-off-svg","List","core-icons-webhook-svg","core-icons-arrow-up-right-svg","routes-CustomPage"]}</script> <script async data-chunk="main" src="https://cdn.readme.io/public/hub/web/main.8401cd74fcdd93642c6b.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/6601.cef2fa12a9b5e2b9df03.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/1802.00a1e88cc0d9da2aae1b.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/6563.fbd3d15eee3b5e94f665.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/9772.2b0a744b76cb77e0dced.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/4904.1067704c85da57778e22.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/7449.dae0332305a8704415a6.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/7372.fbd27ab77e6e47de9931.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/2249.cb1f4fb7d2cce2c5e425.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/5382.f3d48dea01a7ee0548c9.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/734.2949e3d7010fa5c21ffd.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/954.53ce7f86793664155f78.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/6903.75b9333e2c99d6924d0e.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/2395.0e49c51ab8d22525f6ff.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/8161.a15ebcbf0b5b4748c0fd.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/1008.828e1c3ad92702b30f8b.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/7188.006f6f7e3184fb873f71.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/5753.19245c7129f056485c33.js"></script> <script async data-chunk="routes-SuperHub" src="https://cdn.readme.io/public/hub/web/routes-SuperHub.80f0348ff5861a413a46.js"></script> <script async data-chunk="Header" src="https://cdn.readme.io/public/hub/web/3901.9a23139e8c32bd6a1186.js"></script> <script async data-chunk="Header" src="https://cdn.readme.io/public/hub/web/7783.4d5a6e419a35233ebd3c.js"></script> <script async data-chunk="Header" src="https://cdn.readme.io/public/hub/web/Header.e076d4e6ea766318a213.js"></script> <script async data-chunk="core-icons-chevron-up-down-svg" src="https://cdn.readme.io/public/hub/web/core-icons-chevron-up-down-svg.6aae957df71e6f4c5e24.js"></script> <script async data-chunk="routes-Reference" src="https://cdn.readme.io/public/hub/web/4287.916cdd386055d2c5d238.js"></script> <script async data-chunk="routes-Reference" src="https://cdn.readme.io/public/hub/web/5948.a51402657e2eb40ab43b.js"></script> <script async data-chunk="routes-Reference" src="https://cdn.readme.io/public/hub/web/4201.ae4918ddf0595a4bfca6.js"></script> <script async data-chunk="routes-Reference" src="https://cdn.readme.io/public/hub/web/8230.69318b242a05e8e74cd8.js"></script> <script async data-chunk="routes-Reference" src="https://cdn.readme.io/public/hub/web/routes-Reference.52b5b8c183631200e8bc.js"></script> <script async data-chunk="core-icons-more-vertical-svg" src="https://cdn.readme.io/public/hub/web/core-icons-more-vertical-svg.4822b3f831e11095980d.js"></script> <script async data-chunk="core-icons-lock-svg" src="https://cdn.readme.io/public/hub/web/core-icons-lock-svg.70942d3ee6bad6267696.js"></script> <script async data-chunk="Footer" src="https://cdn.readme.io/public/hub/web/Footer.f3a023593089686064a9.js"></script> <script async data-chunk="routes-Doc" src="https://cdn.readme.io/public/hub/web/routes-Doc.a69d1038565eec3baddc.js"></script> <script async data-chunk="routes-PageNotFound" src="https://cdn.readme.io/public/hub/web/routes-PageNotFound.7f382f4941474998a761.js"></script> <script async data-chunk="core-icons-alert-circle-svg" src="https://cdn.readme.io/public/hub/web/core-icons-alert-circle-svg.4cee8264c97045599b56.js"></script> <script async data-chunk="core-icons-search-svg" src="https://cdn.readme.io/public/hub/web/core-icons-search-svg.ad9cac962958d30983a7.js"></script> <script async data-chunk="core-icons-custom-pages-svg" src="https://cdn.readme.io/public/hub/web/core-icons-custom-pages-svg.444e514638d9afbec182.js"></script> <script async data-chunk="routes-SuperHub-Routes" src="https://cdn.readme.io/public/hub/web/7717.c3f46aef4dac129abcfb.js"></script> <script async data-chunk="routes-SuperHub-Routes" src="https://cdn.readme.io/public/hub/web/5359.fb0c48929b1827a8a2b2.js"></script> <script async data-chunk="routes-SuperHub-Routes" src="https://cdn.readme.io/public/hub/web/routes-SuperHub-Routes.f7a42c9e7ca76978c49b.js"></script> <script async data-chunk="RMDX" src="https://cdn.readme.io/public/hub/web/RMDX.6966846032c03969e44f.js"></script> <script async data-chunk="routes-Changelog" src="https://cdn.readme.io/public/hub/web/routes-Changelog.c2ef3ef5eb8f547c5186.js"></script> <script async data-chunk="Post" src="https://cdn.readme.io/public/hub/web/Post.71d2a77f709abc802115.js"></script> <script async data-chunk="Editor" src="https://cdn.readme.io/public/hub/web/Editor.778b5192afd13371d8ec.js"></script> <script async data-chunk="core-icons-x-circle-svg" src="https://cdn.readme.io/public/hub/web/core-icons-x-circle-svg.abc0e0ea5b7f9dff667c.js"></script> <script async data-chunk="core-icons-suggested-edits-svg" src="https://cdn.readme.io/public/hub/web/core-icons-suggested-edits-svg.8d2d8ac2fd22ded9238d.js"></script> <script async data-chunk="core-icons-arrow-right-svg" src="https://cdn.readme.io/public/hub/web/core-icons-arrow-right-svg.eadb74658f93b4e7d75f.js"></script> <script async data-chunk="core-icons-chevron-down-svg" src="https://cdn.readme.io/public/hub/web/core-icons-chevron-down-svg.e20b84e9871bd73d1b8c.js"></script> <script async data-chunk="routes-Landing" src="https://cdn.readme.io/public/hub/web/6591.ebe74884cadb175806e0.js"></script> <script async data-chunk="routes-Landing" src="https://cdn.readme.io/public/hub/web/routes-Landing.55eccb79070682a90c02.js"></script> <script async data-chunk="routes-Discuss" src="https://cdn.readme.io/public/hub/web/routes-Discuss.9ac9478f3014cd9a6ef2.js"></script> <script async data-chunk="Page" src="https://cdn.readme.io/public/hub/web/2637.910d32e664cf986b636e.js"></script> <script async data-chunk="Page" src="https://cdn.readme.io/public/hub/web/Page.2c323cd107e7e82fe5ce.js"></script> <script async data-chunk="CustomPage" src="https://cdn.readme.io/public/hub/web/3457.54b5f96a07aafc769550.js"></script> <script async data-chunk="CustomPage" src="https://cdn.readme.io/public/hub/web/2859.dc9d7bf83dcb38e2167f.js"></script> <script async data-chunk="routes-Tutorials" src="https://cdn.readme.io/public/hub/web/routes-Tutorials.6686c9c18f1ee096cdc9.js"></script> <script async data-chunk="core-icons-eye-off-svg" src="https://cdn.readme.io/public/hub/web/core-icons-eye-off-svg.b2b8b241b4b324dfd9c1.js"></script> <script async data-chunk="List" src="https://cdn.readme.io/public/hub/web/4674.b77d8e6ddbdaef99bf47.js"></script> <script async data-chunk="List" src="https://cdn.readme.io/public/hub/web/List.ff2cf58cdb1ec8d5703f.js"></script> <script async data-chunk="core-icons-webhook-svg" src="https://cdn.readme.io/public/hub/web/core-icons-webhook-svg.fe540ea1c09e1c0e0247.js"></script> <script async data-chunk="core-icons-arrow-up-right-svg" src="https://cdn.readme.io/public/hub/web/core-icons-arrow-up-right-svg.8ec73f7e322d79a2695b.js"></script></div><script id="hub-me" type="application/json" data-json="{"loggedIn":false,"search":{"app":"T28YKFATPY","token":"NTgxYzUxMzBjYThmMDAxZjc5M2NkM2I4MjE1NWUyNGIwNTVmM2RiNjkzZjE5ZWNiNDQwMDQyOGNlNjQ1MWIzZXRhZ0ZpbHRlcnM9KHByb2plY3Q6NTg2YmQ5NjFjM2JhMTYxYjAwYmVlMWYxKSwodmVyc2lvbjpub25lLHZlcnNpb246NWI0Y2M3NWY2NjZlNjMwMDAzYmM5MTJhKSwoaGlkZGVuOm5vbmUsaGlkZGVuOmZhbHNlKSwoaW5kZXg6Q3VzdG9tUGFnZSxpbmRleDpQYWdlLGluZGV4OkJsb2cp","filters":"tagFilters=(project:586bd961c3ba161b00bee1f1),(version:none,version:5b4cc75f666e630003bc912a),(hidden:none,hidden:false),(index:CustomPage,index:Page,index:Blog)","metaData":[{"modules":{"suggested_edits":true,"discuss":false,"reference":true,"examples":true,"docs":true,"landing":true,"changelog":true,"custompages":true,"logs":false,"tutorials":false,"graphql":false},"id":"586bd961c3ba161b00bee1f1","name":"Universe Public API","subdomain":"universe","subpath":"","nav_names":{"discuss":"","reference":"API","docs":"Guides","changelog":"Changelog","tutorials":"","recipes":""}}]}}"></script><script id="readme-data-baseUrl" type="application/json" data-json=""/""></script></body></html>