--- title: "GraphQL" slug: "graphql" updated: 2022-01-03T21:07:24Z published: 2022-01-03T21:07:24Z canonical: "docs.echo.stream/graphql" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.echo.stream/llms.txt > Use this file to discover all available pages before exploring further. # GraphQL The EchoStream API is built using [GraphQL](https://graphql.org/). GraphQL is simpler, more descriptive, and faster than typical RESTful APIs. "GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools." - graphql.org Simplistically, a GraphQL schema is composed of Types and Fields, where Fields are contained by Types. Fields may require Arguments, thereby effectively becoming methods. GraphQL can be used to approximate an Object-Oriented schema, and this is exactly what we have tried to accomplish in the EchoStream API. Operations where you do not already have an Echo object can be found in either the `Mutation` or the `Query` types. For example, to create a new `Edge` object you would call `Mutation.CreateEdge`, and to retrieve an existing `Edge` you would call `Query.GetEdge`. Once you have the `Edge` (either through creation or getting), you could retrive the attribute `maxReceiveCount` or you could call `Purge` to purge the `Edge` of all current Messages. ### Naming Conventions - All names use [camel case](https://en.wikipedia.org/wiki/Camel_case). - All Type names begin with uppercase - All attribute names begin with lowercase - Attributes never have Arguments - All method names begin with uppercase - Methods may or may not have Arguments - Methods that are "global" are in the `Mutation` or the `Query` Types - Methods that require an Echo object are in the associated object Type (e.g. - the `Edge.Purge` example above)