Docs

GraphQL Explorer

Write and run GraphQL queries in the Capa admin, as one of your API keys, and copy them into your site.

View as Markdown

The GraphQL Explorer is in the Capa admin under Developers > GraphQL. You pick an API key, write a query with autocomplete, run it, and copy it out as cURL, fetch or a URL. Admins and developers on the project can open it.

Everything here is a real request to /api/graphql, sent from your browser with the key, version and headers you choose, as your site would send it.

Runs as a key

The key picker lists your project's active API keys. The line under it says what a run will see:

Runs as Website build, a production key with 1 scope. Published entries only. It can read 1 model.

  • A production key reads published entries only. Any other environment includes drafts.
  • A legacy key (pk_, sk_) is ready to use as listed.
  • A cap_ key asks you to paste its secret, because Capa stores only a hash of it. The pasted secret stays in the page's memory and is gone when you close the tab.

The editor, the autocomplete and the docs know exactly the models and fields the chosen key can read, and nothing else. Switch keys to see what a different key sees.

Write and run

The query editor completes fields and arguments as you type, marks problems as you go, and shows the docs for the name at the cursor. Below it are the Variables and Headers panes. Press ⌘ Enter (Ctrl Enter on Windows) to run.

The toolbar picks the Version, sent as Capa-Version, from the versions the API serves, and the method, POST or GET. A GET whose URL would be too long goes as a POST, as the SDK does, and the response says which method went.

Each tab holds one document. Open more tabs to keep several queries side by side.

The side panel

TabWhat it does
BuilderPick a model, a list or a single entry, then tick fields. Set first, filters and sorts. The query text is written for you
DocsEvery type and field the key can read, with a search. Each type has an example query you can run in a new tab
HistoryYour saved operations, and your last 20 runs in this project with what each read and how it went. Open one to run it again

The response

The response pane shows the status, the time and the size, then:

  • the errors, each with its hint, whatever the status;
  • what the query cost (see Limits);
  • the REST request each root field ran as on /api/entries;
  • the cache headers.

A refused query answers 200 with errors and no data, as it does for your site. The Explorer reads the errors, so a refusal shows as a failure.

The REST popover shows the same read as /api/entries URLs before you run anything.

Save and share

Save keeps the open tab under a name, up to 100 per project. Saved operations, history and open tabs are kept in this browser, per project. They hold your query, variables and headers text, never a key's secret and never a response.

Copy share link makes a link that opens the Explorer on the same query, variables and operation name. It never carries a key or your headers: whoever opens it runs it as a key of their own.

Copy into your site

The Copy menu writes code that reads the API's address from CAPA_API_URL and the key from CAPA_KEY. The key itself is never copied.

ItemWhat you get
Copy environment linesthe lines that set CAPA_API_URL and CAPA_KEY
Copy as cURLthe request as a shell command
Copy as fetchthe request as a fetch call
Copy GET URLthe query as a GET URL, which the CDN can cache
Copy persisted GET URLa GET URL that sends only the query's hash. The Explorer registers the query first, with a development key, so the URL answers with data
Download SDLthe schema the key can read, as SDL

A persisted query belongs to the project, not the key that registered it, so the URL works with your site's production key. See Persisted queries.

Shortcuts

Press ? outside the editor for the full list. The ones you will use most:

KeysDoes
⌘ Enterrun the query
Ctrl Shift Pprettify
⌘ Ssave the operation
Ctrl Spacesuggest fields and arguments
/search the docs

On Windows and Linux, ⌘ is Ctrl.