---
title: Form Data
description: Handle HTML form submissions and form data in JustAPI.
keywords: [JustAPI, form data, form submission, HTML forms]
---
## Basic Form Data
Use `Form(...)` to receive form data:
```python
from justapi import JustAPIApp, Form
app = JustAPIApp()
@app.post("/login")
def login(username: str = Form(...), password: str = Form(...)):
return {"username": username}
```
This accepts `application/x-www-form-urlencoded` requests.
## Required vs Optional
```python
@app.post("/items")
def create_item(
name: str = Form(...), # required
description: str = Form(None), # optional
):
return {"name": name, "description": description}
```
## Multiple Form Fields
```python
@app.post("/submit")
def submit_form(
title: str = Form(...),
body: str = Form(...),
tags: str = Form(""),
publish: bool = Form(False),
):
return {"title": title, "body": body, "tags": tags, "publish": publish}
```
## See Also
- [Form Models](/tutorials/form-models/) — Pydantic models for forms
- [Request Files](/tutorials/request-files/) — file uploads
- [Request Body](/tutorials/request-body/) — JSON request bodies