--- title: "Get started with Arcjet" titleByFramework: default: "Get started with Arcjet" astro: "Get started with Astro" bun: "Get started with Bun" bun-hono: "Get started with Bun + Hono" deno: "Get started with Deno" fastify: "Get started with Fastify" nest-js: "Get started with NestJS" next-js: "Get started with Next.js" node-js: "Get started with Node.js" node-js-express: "Get started with Node.js + Express" node-js-hono: "Get started with Node.js + Hono" nuxt: "Get started with Nuxt" python-fastapi: "Get started with Python + FastAPI" python-flask: "Get started with Python + Flask" react-router: "Get started with React Router" remix: "Get started with Remix" sveltekit: "Get started with SvelteKit" description: "Getting started with Arcjet. Quick start guide to protect your AI applications from abuse, apply per-user token budgets, and block automated clients." prev: false next: false frameworks: - astro - bun - bun-hono - deno - fastify - nest-js - next-js - node-js - node-js-express - node-js-hono - nuxt - python-fastapi - python-flask - react-router - remix - sveltekit ajToc: - text: 0. Get Started anchor: "0-get-started" - text: 1. Install Arcjet anchor: "1-install-arcjet" - text: 2. Set your key anchor: "2-set-your-key" - text: 3. Configure anchor: "3-configure" - text: 4. Start app anchor: "4-start-app" - text: "FAQs" anchor: "faqs" - text: "What next?" anchor: "what-next" - text: "Get help" anchor: "get-help" --- import { YouTube } from "astro-embed"; import SlotByFramework from "@/components/SlotByFramework"; import FrameworkLinks from "@/components/FrameworkLinks"; import { Link } from "@/components/link"; import { LinkButton, CardGrid } from "@astrojs/starlight/components"; import FAQs from "/src/components/FAQs.astro"; import WhatIsArcjet from "/src/components/WhatIsArcjet.astro"; import SdkReferenceLinkByFramework from "/src/components/SdkReferenceLinkByFramework.astro"; import AstroStep1 from "@/snippets/shared/astro/Install.mdx"; import AstroRequirements from "@/snippets/get-started/astro/Requirements.mdx"; import AstroStep2 from "@/snippets/get-started/astro/Step2.mdx"; import AstroStep3 from "@/snippets/get-started/astro/Step3.mdx"; import AstroStep4 from "@/snippets/get-started/astro/Step4.mdx"; import BunStep1 from "@/snippets/get-started/bun/Step1.mdx"; import BunRequirements from "@/snippets/get-started/bun/Requirements.mdx"; import BunStep2 from "@/snippets/get-started/bun/Step2.mdx"; import BunStep3 from "@/snippets/get-started/bun/Step3.mdx"; import BunStep4 from "@/snippets/get-started/bun/Step4.mdx"; import BunHonoStep1 from "@/snippets/get-started/bun-hono/Step1.mdx"; import BunHonoRequirements from "@/snippets/get-started/bun-hono/Requirements.mdx"; import BunHonoStep2 from "@/snippets/get-started/bun-hono/Step2.mdx"; import BunHonoStep3 from "@/snippets/get-started/bun-hono/Step3.mdx"; import BunHonoStep4 from "@/snippets/get-started/bun-hono/Step4.mdx"; import DenoStep1 from "@/snippets/get-started/deno/Step1.mdx"; import DenoRequirements from "@/snippets/get-started/deno/Requirements.mdx"; import DenoStep2 from "@/snippets/get-started/deno/Step2.mdx"; import DenoStep3 from "@/snippets/get-started/deno/Step3.mdx"; import DenoStep4 from "@/snippets/get-started/deno/Step4.mdx"; import FastifyStep1 from "@/snippets/get-started/fastify/Step1.mdx"; import FastifyRequirements from "@/snippets/get-started/fastify/Requirements.mdx"; import FastifyStep2 from "@/snippets/get-started/fastify/Step2.mdx"; import FastifyStep3 from "@/snippets/get-started/fastify/Step3.mdx"; import FastifyStep4 from "@/snippets/get-started/fastify/Step4.mdx"; import NestJsStep1 from "@/snippets/get-started/nest-js/Step1.mdx"; import NestJsRequirements from "@/snippets/get-started/nest-js/Requirements.mdx"; import NestJsStep2 from "@/snippets/get-started/nest-js/Step2.mdx"; import NestJsStep3 from "@/snippets/get-started/nest-js/Step3.mdx"; import NestJsStep4 from "@/snippets/get-started/nest-js/Step4.mdx"; import NextJsStep1 from "@/snippets/get-started/next-js/Step1.mdx"; import NextJsRequirements from "@/snippets/get-started/next-js/Requirements.mdx"; import NextJsStep2 from "@/snippets/get-started/next-js/Step2.mdx"; import NextJsStep3 from "@/snippets/get-started/next-js/Step3.mdx"; import NextJsStep4 from "@/snippets/get-started/next-js/Step4.mdx"; import NodeJsStep1 from "@/snippets/get-started/node-js/Step1.mdx"; import NodeJsRequirements from "@/snippets/get-started/node-js/Requirements.mdx"; import NodeJsStep2 from "@/snippets/get-started/node-js/Step2.mdx"; import NodeJsStep3 from "@/snippets/get-started/node-js/Step3.mdx"; import NodeJsStep4 from "@/snippets/get-started/node-js/Step4.mdx"; import NodeJsExpressStep1 from "@/snippets/get-started/node-js-express/Step1.mdx"; import NodeJsExpressRequirements from "@/snippets/get-started/node-js-express/Requirements.mdx"; import NodeJsExpressStep2 from "@/snippets/get-started/node-js-express/Step2.mdx"; import NodeJsExpressStep3 from "@/snippets/get-started/node-js-express/Step3.mdx"; import NodeJsExpressStep4 from "@/snippets/get-started/node-js-express/Step4.mdx"; import NodeJsHonoStep1 from "@/snippets/get-started/node-js-hono/Step1.mdx"; import NodeJsHonoRequirements from "@/snippets/get-started/node-js-hono/Requirements.mdx"; import NodeJsHonoStep2 from "@/snippets/get-started/node-js-hono/Step2.mdx"; import NodeJsHonoStep3 from "@/snippets/get-started/node-js-hono/Step3.mdx"; import NodeJsHonoStep4 from "@/snippets/get-started/node-js-hono/Step4.mdx"; import NuxtStep1 from "@/snippets/shared/nuxt/Install.mdx"; import NuxtRequirements from "@/snippets/get-started/nuxt/Requirements.mdx"; import NuxtStep2 from "@/snippets/shared/nuxt/Key.mdx"; import NuxtStep3 from "@/snippets/get-started/nuxt/Step3.mdx"; import NuxtStep4 from "@/snippets/get-started/nuxt/Step4.mdx"; import PythonFastapiStep1 from "@/snippets/get-started/python-fastapi/Step1.mdx"; import PythonFastapiRequirements from "@/snippets/get-started/python-fastapi/Requirements.mdx"; import PythonFastapiStep2 from "@/snippets/get-started/python-fastapi/Step2.mdx"; import PythonFastapiStep3 from "@/snippets/get-started/python-fastapi/Step3.mdx"; import PythonFastapiStep4 from "@/snippets/get-started/python-fastapi/Step4.mdx"; import PythonFlaskStep1 from "@/snippets/get-started/python-flask/Step1.mdx"; import PythonFlaskRequirements from "@/snippets/get-started/python-flask/Requirements.mdx"; import PythonFlaskStep2 from "@/snippets/get-started/python-flask/Step2.mdx"; import PythonFlaskStep3 from "@/snippets/get-started/python-flask/Step3.mdx"; import PythonFlaskStep4 from "@/snippets/get-started/python-flask/Step4.mdx"; import ReactRouterStep1 from "@/snippets/get-started/react-router/Step1.mdx"; import ReactRouterRequirements from "@/snippets/get-started/react-router/Requirements.mdx"; import ReactRouterStep2 from "@/snippets/get-started/react-router/Step2.mdx"; import ReactRouterStep3 from "@/snippets/get-started/react-router/Step3.mdx"; import ReactRouterStep4 from "@/snippets/get-started/react-router/Step4.mdx"; import RemixStep1 from "@/snippets/get-started/remix/Step1.mdx"; import RemixRequirements from "@/snippets/get-started/remix/Requirements.mdx"; import RemixStep2 from "@/snippets/get-started/remix/Step2.mdx"; import RemixStep3 from "@/snippets/get-started/remix/Step3.mdx"; import RemixStep4 from "@/snippets/get-started/remix/Step4.mdx"; import SvelteKitStep1 from "@/snippets/get-started/sveltekit/Step1.mdx"; import SvelteKitRequirements from "@/snippets/get-started/sveltekit/Requirements.mdx"; import SvelteKitStep2 from "@/snippets/get-started/sveltekit/Step2.mdx"; import SvelteKitStep3 from "@/snippets/get-started/sveltekit/Step3.mdx"; import SvelteKitStep4 from "@/snippets/get-started/sveltekit/Step4.mdx"; [Arcjet](https://arcjet.com/) is the runtime policy engine for AI features. Authorize tools, control budgets, and protect against spam and bots. A developer-first approach to securing AI applications. This guide will show you how to protect an application with Arcjet by blocking automated clients that inflate costs and enforcing per-user token budgets. ## 1. Install Arcjet In your project root, run the following: ### Requirements ## 2. Set your key [Create a free Arcjet account](https://app.arcjet.com) then follow the instructions to add a site and get a key. ## 3. Configure This configures Arcjet to protect your AI application: block automated clients that inflate costs, and enforce per-user token budgets. The requests will also show in the [Arcjet dashboard](https://app.arcjet.com). ## FAQs ## What next? ## Get help Need help with anything? [Email us](mailto:support@arcjet.com) or [join our Discord](https://arcjet.com/discord) to get support from our engineering team.