FastAPI を Vercel 上にデプロイする流れと、サンプルリポジトリのセットアップ手順をまとめました。
Vercelをこれから触る方や、FastAPIで作ったAPIのデプロイ先を探している方の参考になれば幸いです。
Vercelは無料枠でかなり使えるので、個人開発の公開にも向いています。
この記事でわかること
- FastAPI を Vercel にデプロイするまでの一連の流れ
- uv を使った仮想環境の構築とローカル起動
- Vercel CLI の
vercel dev/vercel/vercel --prodの使い分け - Pytest でテストを実行する方法
- Vercel で動かすときの api フォルダ構成 と requirements.txt の置き場所の注意点
デモ・テンプレート
実際にデプロイしたサンプルです。
サンプルページ:

サンプルページの表示例です。

API用ドキュメント(Swagger UI)の表示例です。
Vercel のテンプレートからそのままデプロイすることもできます。
注意: Git と Vercel の連携が必要です。
開発環境
- macOS Sequoia 15.5
- VS Code
- zsh 5.9 (arm64-apple-darwin24.0)
事前に必要なもの
Vercel で FastAPI を動かすときの注意点
重要: バックエンドの API は ルート直下ではなく
api以下に置く必要がありました。ルートに置くと Vercel 上で正しく起動しなかったため、この記事ではapiという名前のフォルダ構成にしています。また requirements.txt は プロジェクトルート に置かないとインストールが失敗するので、ルート以下に配置してください。
ローカルでのセットアップと起動
1. リポジトリをクローンする
git clone https://github.com/testkun08080/FastAPI-vercel.git
cd FastAPI-vercel2. 仮想環境を構築する
uv venv -p 3.12
uv pip install -r requirements.txt3. アプリを起動する
uv run -m api.app.mainブラウザでローカルにアクセスして動作を確認できます。
Pytest でテストを実行する
1. テスト用依存関係を入れる
uv pip install -r requirements_test.txt2. Pytest を実行する
uv run pytest --html=report.html --self-contained-html --log-level=INFOVercel CLI でローカル確認からデプロイまで
1. ローカルで Vercel 環境を試す
vercel devVercel の実行環境に近い形でローカルで動作確認できます。
2. プレビューとして Vercel にデプロイする
vercel本番ではなく、プレビュー用の URL が発行されます。
3. 本番として Vercel にデプロイする
vercel --prodプロダクション用の URL にデプロイされます。
まとめ
- FastAPI は Vercel にデプロイ可能で、uv と Vercel CLI を使えばローカルから本番まで一貫して扱えます。
- API は
api以下、requirements.txt はルートに置く構成にすると Vercel で問題なく動かせます。 - 無料で素早くデプロイできるので、とりあえず公開したいものなどには便利だと思います。