> ## 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

> Die vollständige API für alles andere!

Diese API ermöglicht es dir, absolut alles zu tun, was du dir wünschst. Du kannst deine Anfragen anpassen, um genau das zu lesen/schreiben, was du brauchst.

<Warning>
  Wir garantieren nicht, dass die in dieser API verfügbaren Informationen sich nicht ohne Vorankündigung ändern. Wir
  empfehlen dir, diese API nicht für kritische Anwendungen zu nutzen, ohne vorher mit uns zu sprechen.
</Warning>

<CardGroup cols={1}>
  <Card title="Query-Editor öffnen" 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">
    Der Editor bietet dir eine Oberfläche, die alle Möglichkeiten aufzeigt und dir erlaubt, deine Anfragen in Echtzeit
    zu testen.
  </Card>
</CardGroup>

Hier siehst du in einem Video, wie du den Query-Editor verwendest:

<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

````