# Terminology

As GraphQL manipulates different concepts to a REST API, let's take a moment to define commonly used GraphQL terminology. The [official GraphQL documentation](https://graphql.org/learn/) is pretty complete, but you'll find here a very short summary of essential terms.

## Schema

The schema is where we define all the API's types. We'll find objects and their fields, their relations, the definitions of queries as well as mutation. This schema is [publicly available](https://graphql.iadvize.dev/) and can be used both as a reference to know what can be done, but also to [generate code](https://graphql.org/code/) that will access our API.

A GraphQL query or mutation will be validated against that schema. To learn more about this topic, head over to the official [GraphQL documentation](https://graphql.org/learn/schema/).

## Field

Fields are named properties of an object. They go from being simple (such as being typed as a number or a boolean) to being more complicated (such as being a complete description of a user). Fields are named, have a type, a description and can require arguments.

**Queries** and **mutations** are two special cases of fields, the former allowing to retrieve data, and the later allowing to modify, create or delete data.

## Argument

Arguments are named values that will be passed to fields in order to query or mutate the API. A good example of an argument would be a search criteria to a query data, or an object description passed to a mutation.

## Edge & Node

A node is an object, that could be represented by a point, and an edge is the relation between these objects, that could be represented by a line between these points. Together they could draw a graph, hence the name GraphQL. When making use of [pagination](/technologies/graphql-api/pagination.md), you'll experience these terms.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.iadvize.dev/technologies/graphql-api/terminology.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
