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

# GraphQL

> L'API complète pour faire tout le reste !

Cette API peut vous permettre de faire absolument tout ce que vous le souahitez. Vous pouvez personnaliser vos requêtes pour lire / écrire ce dont vous avez besoin.

<Warning>
  Nous ne garantissons pas que les informations disponibles dans cette API ne changent pas sans préavis. Nous vous
  conseillons de ne utiliser cette API pour des utilisations critiques sans nous en parler préalablement.
</Warning>

<CardGroup cols={1}>
  <Card title="Ouvrir l'éditeur de requêtes" icon="circle-play" href="https://cloud.hasura.io/public/graphiql?header=content-type%3Aapplication%2Fjson&header=X-Api-Key%3AREPLACEWITHYOURAPIKEY&endpoint=https%3A%2F%2Ffunctions.prod.jarvi.tech%2Fv1%2Fpublic-api%2Fgraphql" target="_blank">
    L'éditeur vous permet d'avoir une interface détaillant toutes les possibilités et vous permettant de tester vos
    requêtes en direct.
  </Card>
</CardGroup>

Voici comment utiliser l'éditeur de requête en vidéo :

<iframe width="100%" height="400" src="https://www.loom.com/embed/0f55b83295ec456b89e83eca52535bcb?sid=1ba88143-dade-42e9-b354-1f348b42077f" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen />


## OpenAPI

````yaml POST /graphql
openapi: 3.0.1
info:
  title: Jarvi API
  description: An API to help you read and manage your projects, profiles, and more.
  license:
    name: MIT
  version: 2.0.0
servers:
  - url: https://functions.prod.jarvi.tech/v1/public-api
security:
  - ApiKeyAuth: []
paths:
  /graphql:
    post:
      summary: Send a graphql query or mutation
      description: >-
        Use the playground console to build and test your requests and see all
        the possibilies
      requestBody:
        required: true
        content:
          application/json:
            schema:
              properties:
                operationName:
                  type: string
                  description: >-
                    The name of the operation. Used for log and debugging. If
                    not provided, will be the first word of the query or
                    mutation
                  example: fields
                query:
                  type: string
                  description: >-
                    The graphQL query as a SourcesEnum. You can use the
                    playground console to build and test your requests and see
                    all the possibilies
                  example: >-
                    query fields($limit: Int, $offset: Int, $order_by:
                    [fields_order_by!]!, $where: fields_bool_exp) {
                                        items: fields(
                                          limit: $limit
                                          offset: $offset
                                          order_by: $order_by
                                          where: $where
                                        ) {
                                          id
                                          createdAt
                                          updatedAt
                                          deletedAt
                                          name
                                          userId
                                          type
                                          order
                                          targetedEntity
                                          isHidden
                                          defaultValue
                                          purpose
                                          isMadeForSales
                                          isMadeForRecruitment
                                          values(where: {deletedAt: {_is_null: true}}, order_by: {name: asc}) {
                                            id
                                            fieldId
                                            name
                                            isDefault
                                            technicalValue
                                            __typename
                                          }
                                          parentId
                                          parent {
                                            id
                                            name
                                            isMadeForSales
                                            isMadeForRecruitment
                                            __typename
                                          }
                                          children(where: {deletedAt: {_is_null: true}}, order_by: {order: asc}) {
                                            id
                                            createdAt
                                            updatedAt
                                            deletedAt
                                            name
                                            userId
                                            type
                                            order
                                            targetedEntity
                                            isHidden
                                            defaultValue
                                            purpose
                                            isMadeForSales
                                            isMadeForRecruitment
                                            values(where: {deletedAt: {_is_null: true}}, order_by: {name: asc}) {
                                              id
                                              fieldId
                                              name
                                              isDefault
                                              technicalValue
                                              __typename
                                            }
                                            parentId
                                            parent {
                                              id
                                              name
                                              isMadeForSales
                                              isMadeForRecruitment
                                              __typename
                                            }
                                            __typename
                                          }
                                          __typename
                                        }
                                        total: fields_aggregate(order_by: $order_by, where: $where) {
                                          aggregate {
                                            count
                                            __typename
                                          }
                                          __typename
                                        }
                                      }
                variables:
                  type: object
                  description: >-
                    If you have variables in your query or mutation, you can
                    provide them here. You can use the playground console to
                    build and test your requests and see all the possibilies
                  example:
                    where:
                      _and:
                        - parentId:
                            _is_null: true
                        - deletedAt:
                            _is_null: true
                    limit: 1000
                    offset: 0
                    order_by:
                      order: asc
      responses:
        '200':
          description: GraphQL response (can contain errors)
          content:
            application/json:
              schema:
                properties:
                  data:
                    type: object
                    example: The data you wanted to get
                  errors:
                    type: object
                    example: Errors details if any
        '401':
          description: Unauthorized, check your API key
        '500':
          description: Unknown error
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY

````