GitPedia

Absinthe plug

Plug support for Absinthe, the GraphQL toolkit for Elixir

From absinthe-graphql·Updated May 16, 2026·View on GitHub·

[Plug](https://hex.pm/packages/plug) support for [Absinthe](https://hex.pm/packages/absinthe), the GraphQL toolkit for Elixir. The project is written primarily in Elixir, distributed under the MIT License license, first published in 2015. Key topics include: absinthe, absinthe-graphql, graphiql, graphql, phoenix.

Latest release: v1.5.101.5.10
May 16, 2026View Changelog →

Absinthe.Plug

Build Status
Version
Hex Docs
Download
License
Last Updated

Plug support for Absinthe,
the GraphQL toolkit for Elixir.

Please see the website at http://absinthe-graphql.org.

Installation

Install from Hex.pm:

elixir
def deps do [{:absinthe_plug, "~> 1.5"}] end

Note: Absinthe.Plug requires Elixir 1.10 or higher.

Absinthe.Plug also requires a JSON codec. Jason and Poison work out of the box.

elixir
def deps do [ ..., {:absinthe_plug, "~> 1.5"}, {:jason, "~> 1.0"} ] end

Upgrading

See CHANGELOG for upgrade steps between versions.

You may want to look for the specific upgrade guide in the Absinthe documentation.

Documentation

See "Usage," below, for basic usage information and links to specific resources.

See the GitHub organization.

Usage

In your MyAppWeb.Router module add:

elixir
plug Plug.Parsers, parsers: [:urlencoded, :multipart, :json, Absinthe.Plug.Parser], pass: ["*/*"], json_decoder: Jason plug Absinthe.Plug, schema: MyAppWeb.Schema

If you want Absinthe.Plug to serve only a particular route, configure your
MyAppWeb.Router like:

elixir
plug Plug.Parsers, parsers: [:urlencoded, :multipart, :json, Absinthe.Plug.Parser], pass: ["*/*"], json_decoder: Jason forward "/api", to: Absinthe.Plug, init_opts: [schema: MyAppWeb.Schema]

For more information, see the API documentation for Absinthe.Plug.

Phoenix.Router

If you are using Phoenix.Router, forward expects different arguments:

Plug.Router

elixir
forward "/graphiql", to: Absinthe.Plug.GraphiQL, init_opts: [ schema: MyAppWeb.Schema, interface: :simple ]

Phoenix.Router

elixir
forward "/graphiql", Absinthe.Plug.GraphiQL, schema: MyAppWeb.Schema, interface: :simple

For more information see Phoenix.Router.forward/4.

GraphiQL

To add support for a GraphiQL interface, add a configuration for
Absinthe.Plug.GraphiQL:

elixir
forward "/graphiql", to: Absinthe.Plug.GraphiQL, init_opts: [schema: MyAppWeb.Schema]

See the API documentation for Absinthe.Plug.GraphiQL for more information.

Community

The project is under constant improvement by a growing list of
contributors, and your feedback is important. Please join us in Slack
(#absinthe-graphql under the Elixir Slack account) or the Elixir Forum
(tagged absinthe).

Please remember that all interactions in our official spaces follow
our Code of Conduct.

Contributing

Please follow contribution guide.

License

See LICENSE.md.

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from absinthe-graphql/absinthe_plug via the GitHub API.Last fetched: 6/16/2026