A GraphQL library for Python that leverages type annotations 🍓
See the code
Python GraphQL library based on dataclasses
The quick start method provides a server and CLI to get going quickly. Install with:
pip install "strawberry-graphql[cli]"
Create a file called app.py with the following code:
import strawberry
@strawberry.type
class User:
name: str
age: int
@strawberry.type
class Query:
@strawberry.field
def user(self) -> User:
return User(name="Patrick", age=100)
schema = strawberry.Schema(query=Query)
This will create a GraphQL schema defining a User type and a single query
field user that will return a hardcoded user.
To serve the schema using the dev server run the following command:
strawberry dev app
Open the dev server by clicking on the following link: http://0.0.0.0:8000/graphql
This will open GraphiQL where you can test the API.
Strawberry comes with a mypy plugin that enables statically type-checking your
GraphQL schema. To enable it, add the following lines to your mypy.ini
configuration:
[mypy]
plugins = strawberry.ext.mypy_plugin
A Django view is provided for adding a GraphQL endpoint to your application.
INSTALLED_APPS.INSTALLED_APPS = [
..., # your other apps
"strawberry.django",
]
urls.py file.from strawberry.django.views import GraphQLView
from .schema import schema
urlpatterns = [
...,
path("graphql", GraphQLView.as_view(schema=schema)),
]
We use uv to manage dependencies, to get started follow these steps:
git clone https://github.com/strawberry-graphql/strawberry
cd strawberry
uv sync
uv run pytest
For all further detail, check out the Contributing Page
We have a configuration for pre-commit, to add the hook run the following command:
pre-commit install
The code in this project is licensed under MIT license. See LICENSE for more information.
Overall
Maintained
Code review
Latest release
Releases this year
(top 24 of 37)
3,540 followers · starred Jul 2025
32,342 followers · starred Oct 2021
4,002 followers · starred Jan 2020
418 followers · starred Dec 2025
A GraphQL library for Python that leverages type annotations 🍓
See the code
Python GraphQL library based on dataclasses
The quick start method provides a server and CLI to get going quickly. Install with:
pip install "strawberry-graphql[cli]"
Create a file called app.py with the following code:
import strawberry
@strawberry.type
class User:
name: str
age: int
@strawberry.type
class Query:
@strawberry.field
def user(self) -> User:
return User(name="Patrick", age=100)
schema = strawberry.Schema(query=Query)
This will create a GraphQL schema defining a User type and a single query
field user that will return a hardcoded user.
To serve the schema using the dev server run the following command:
strawberry dev app
Open the dev server by clicking on the following link: http://0.0.0.0:8000/graphql
This will open GraphiQL where you can test the API.
Strawberry comes with a mypy plugin that enables statically type-checking your
GraphQL schema. To enable it, add the following lines to your mypy.ini
configuration:
[mypy]
plugins = strawberry.ext.mypy_plugin
A Django view is provided for adding a GraphQL endpoint to your application.
INSTALLED_APPS.INSTALLED_APPS = [
..., # your other apps
"strawberry.django",
]
urls.py file.from strawberry.django.views import GraphQLView
from .schema import schema
urlpatterns = [
...,
path("graphql", GraphQLView.as_view(schema=schema)),
]
We use uv to manage dependencies, to get started follow these steps:
git clone https://github.com/strawberry-graphql/strawberry
cd strawberry
uv sync
uv run pytest
For all further detail, check out the Contributing Page
We have a configuration for pre-commit, to add the hook run the following command:
pre-commit install
The code in this project is licensed under MIT license. See LICENSE for more information.
Overall
Maintained
Code review
Latest release
Releases this year
(top 24 of 37)
3,540 followers · starred Jul 2025
32,342 followers · starred Oct 2021
4,002 followers · starred Jan 2020
418 followers · starred Dec 2025