> ## Documentation Index
> Fetch the complete documentation index at: https://tyk.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Developer Portal GraphQL

> How to publish GraphQL APIs to your Tyk Developer Portal

<Warning>
  **Legacy: Tyk Classic Portal**

  You're viewing documentation for the **Tyk Classic Portal**, which is no longer actively maintained.

  If you're looking for the latest API documentation for the **new Tyk Developer Portal**, please refer to the
  [Postman collection](/product-stack/tyk-enterprise-developer-portal/api-documentation/tyk-edp-api) or visit the
  [Tyk Developer Portal](/portal/overview/intro) section.

  The Classic Portal is in maintenance mode and will be deprecated soon. For questions or support, contact us at
  [support@tyk.io](<mailto:support@tyk.io?subject=Tyk classic developer portal>).
</Warning>

As of Tyk v3.0.0, you can now publish GraphQL APIs, including [Universal Data Graph](/api-management/data-graph#overview) APIs(UDG) to the Tyk Developer Portal.

When you do that, your API consumers can navigate through a GraphQL Playground, with an IDE complete with Intellisense.

<img src="https://mintcdn.com/tyk/RMh3iOJIGf2eKkTO/img/portal/portal-graphql.png?fit=max&auto=format&n=RMh3iOJIGf2eKkTO&q=85&s=ee78979e87b28e4db16cc0ff92c68142" alt="Portal GraphQL Playground" width="1222" height="468" data-path="img/portal/portal-graphql.png" />

## Video Walkthrough

We have a YouTube walkthrough of how to publish a GraphQL API to your Developer Portal:

<iframe width="560" height="315" src="https://www.youtube.com/embed/A2Hn9ub2mNg" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />

## How To Set Up

Simply create a GraphQL or Universal Data Graph API, create a Policy which protects it, and then publish it to the Developer Portal Catalog.

In the "Create a Catalog" section, at the bottom, make sure you enable the "Display Playground"

<img src="https://mintcdn.com/tyk/RMh3iOJIGf2eKkTO/img/portal/portal-graphql-setup.png?fit=max&auto=format&n=RMh3iOJIGf2eKkTO&q=85&s=25aec41e414090bd275ae0f1327908a8" alt="Portal GraphQL Playground Setup" width="1015" height="192" data-path="img/portal/portal-graphql-setup.png" />

And then, when your API consumers are on the Developer Portal Catalog and click on View Documentation, they will be taken to the GraphQL Playground.

<img src="https://mintcdn.com/tyk/RMh3iOJIGf2eKkTO/img/portal/portal-graphql-playground-viewdocs.png?fit=max&auto=format&n=RMh3iOJIGf2eKkTO&q=85&s=0fb9f8a37ce00c40dc48536994c06b6e" alt="Portal GraphQL Playground View Docs" width="922" height="323" data-path="img/portal/portal-graphql-playground-viewdocs.png" />

## Protected GraphQL Catalog

If you have a protected API, your users won't be able to inspect the GraphQL schema or make API calls until they add their API Key to the Headers section:

<img src="https://mintcdn.com/tyk/RMh3iOJIGf2eKkTO/img/portal/portal-graphql-header-injection.png?fit=max&auto=format&n=RMh3iOJIGf2eKkTO&q=85&s=27cbcb51c581cdef017a066509c519ba" alt="Portal GraphQL Playground Header Injection" width="784" height="308" data-path="img/portal/portal-graphql-header-injection.png" />

## CORS

You may have to enable the following CORS settings in the "Advanced Options" of the API Designer to allow your consumers to access the GraphQL Playground:

<img src="https://mintcdn.com/tyk/RMh3iOJIGf2eKkTO/img/portal/portal-graphql-cors.png?fit=max&auto=format&n=RMh3iOJIGf2eKkTO&q=85&s=d92df79d5d2ce856bf96ee314589b145" alt="Portal GraphQL Playground CORS" width="1017" height="771" data-path="img/portal/portal-graphql-cors.png" />
