Tailor Platform GraphQL API Specification

The Tailor Platform GraphQL API offers flexibility and the ability to define precisely the data you want to fetch.

Endpoint

GraphQL queries can be executed by sending POST HTTP requests to the endpoint. You can set up domain name in environment variables. See Quickstart for step-by-step guidance.

https://<your_domain_name>.erp.dev

Get started with GraphQL API

Please see GraphQL basics to get started with GraphQL API.

Authentication

In the Tailor Platform, authentication is required to access most resources, except all-user access is enabled.

First, open the GraphQL Playground by running the following command.

<span><span style="color: var(--shiki-token-comment)"># Open the browser and open GraphQL playground</span></span>
<span><span style="color: var(--shiki-token-function)">tailorctl</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">app</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">open</span></span>
<span></span>

To obtain an authorization token, perform the login mutation.

<span><span style="color: var(--shiki-token-keyword)">mutation</span><span style="color: var(--shiki-color-text)"> {</span></span>
<span><span style="color: var(--shiki-color-text)">  login(</span></span>
<span><span style="color: var(--shiki-color-text)">    orgKey: </span><span style="color: var(--shiki-token-string-expression)">&quot;&lt;your_organization_name&gt;&quot;</span></span>
<span><span style="color: var(--shiki-color-text)">    id: </span><span style="color: var(--shiki-token-string-expression)">&quot;&lt;your_user_name&gt;&quot;</span></span>
<span><span style="color: var(--shiki-color-text)">    password: </span><span style="color: var(--shiki-token-string-expression)">&quot;&lt;your_password&gt;&quot;</span></span>
<span><span style="color: var(--shiki-color-text)">  ) {</span></span>
<span><span style="color: var(--shiki-color-text)">    token</span></span>
<span><span style="color: var(--shiki-color-text)">    user {</span></span>
<span><span style="color: var(--shiki-color-text)">      username</span></span>
<span><span style="color: var(--shiki-color-text)">    }</span></span>
<span><span style="color: var(--shiki-color-text)">  }</span></span>
<span><span style="color: var(--shiki-color-text)">}</span></span>
<span></span>

After successfully logging in, you will receive the authorization token in the token field. You can now include this token in the HTTP Authorization header to access protected resources. To include the token in GraphQL Playground, navigate to the Headers tab and add the token to the Authorization header.

<span><span style="color: var(--shiki-color-text)">{</span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-keyword)">&quot;Authorization&quot;</span><span style="color: var(--shiki-token-punctuation)">:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string-expression)">&quot;Bearer &lt;your_token&gt;&quot;</span></span>
<span><span style="color: var(--shiki-color-text)">}</span></span>
<span></span>

Pagination, Filtering, and Sorting

You can paginate, filter, and sort data through GraphQL query inputs.

  • from and size arguments are used for pagination.
  • order argument is used for sorting.
  • query argument is used for filtering.
<span><span style="color: var(--shiki-token-function)">QueryNames</span><span style="color: var(--shiki-color-text)">(</span></span>
<span><span style="color: var(--shiki-color-text)">  from: </span><span style="color: var(--shiki-token-constant)">Int</span></span>
<span><span style="color: var(--shiki-color-text)">  size: </span><span style="color: var(--shiki-token-constant)">Int</span></span>
<span><span style="color: var(--shiki-color-text)">  order: [</span><span style="color: var(--shiki-token-constant)">QueryNameOrderInput</span><span style="color: var(--shiki-color-text)">]</span></span>
<span><span style="color: var(--shiki-color-text)">  query: </span><span style="color: var(--shiki-token-constant)">QueryNameQueryInput</span></span>
<span><span style="color: var(--shiki-color-text)">)</span></span>
<span></span>

Pagination

You can do pagination of the query by defining from and size in query inputs. You will get the size number of data from from position of the data.

Here is the example of query and response data.

<span><span style="color: var(--shiki-token-keyword)">query</span><span style="color: var(--shiki-color-text)"> {</span></span>
<span><span style="color: var(--shiki-color-text)">  users(from: </span><span style="color: var(--shiki-token-constant)">3</span><span style="color: var(--shiki-color-text)">, size: </span><span style="color: var(--shiki-token-constant)">2</span><span style="color: var(--shiki-color-text)">) {</span></span>
<span><span style="color: var(--shiki-color-text)">    collection {</span></span>
<span><span style="color: var(--shiki-color-text)">      id</span></span>
<span><span style="color: var(--shiki-color-text)">    }</span></span>
<span><span style="color: var(--shiki-color-text)">  }</span></span>
<span><span style="color: var(--shiki-color-text)">}</span></span>
<span></span>

The above query respond 4th and 5th data.

<span><span style="color: var(--shiki-color-text)">{</span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-keyword)">&quot;data&quot;</span><span style="color: var(--shiki-token-punctuation)">:</span><span style="color: var(--shiki-color-text)"> {</span></span>
<span><span style="color: var(--shiki-color-text)">    </span><span style="color: var(--shiki-token-keyword)">&quot;users&quot;</span><span style="color: var(--shiki-token-punctuation)">:</span><span style="color: var(--shiki-color-text)"> {</span></span>
<span><span style="color: var(--shiki-color-text)">      </span><span style="color: var(--shiki-token-keyword)">&quot;collection&quot;</span><span style="color: var(--shiki-token-punctuation)">:</span><span style="color: var(--shiki-color-text)"> [</span></span>
<span><span style="color: var(--shiki-color-text)">        {</span></span>
<span><span style="color: var(--shiki-color-text)">          </span><span style="color: var(--shiki-token-keyword)">&quot;id&quot;</span><span style="color: var(--shiki-token-punctuation)">:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string-expression)">&quot;bb2b565d-e2ce-4604-865d-7b7386ff38e0&quot;</span></span>
<span><span style="color: var(--shiki-color-text)">        }</span></span>
<span><span style="color: var(--shiki-color-text)">        {</span></span>
<span><span style="color: var(--shiki-color-text)">          </span><span style="color: var(--shiki-token-keyword)">&quot;id&quot;</span><span style="color: var(--shiki-token-punctuation)">:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string-expression)">&quot;1b22c830-aec6-4195-bb8c-8a670d836e23&quot;</span></span>
<span><span style="color: var(--shiki-color-text)">        }</span></span>
<span><span style="color: var(--shiki-color-text)">      ]</span></span>
<span><span style="color: var(--shiki-color-text)">    }</span></span>
<span><span style="color: var(--shiki-color-text)">  }</span></span>
<span><span style="color: var(--shiki-color-text)">}</span></span>
<span></span>

Sorting

You can use the order: [QueryNameOrderInput] argument to sort the results of the query. The argument accepts an array of QueryNameOrderInput values, each of which will be evaluated in the order specified in the array.

ArgumentDescription
directionDesc or Asc
fieldsField name as the enumeration value

Filtering

Refer to Filters guide.

Service specific API specification

The API reference is based on the current Tailor Platform GraphQL schema.

  • Tailor DB API: provides primary database within Tailor Platform, where you store and retrieve your data.
  • StateFlow API: provides state management capabilities.