**Vercel AI SDK**: Arcjet works alongside the Vercel AI SDK. Call `protect()` before `streamText()` / `generateText()`. If denied
return a plain error response instead of calling the AI SDK.
Explore
123,061 skills indexed with the new KISS metadata standard.
return a plain error response instead of calling the AI SDK.
the client gets a broken response. Always call `protect()` first and return an error before opening the stream.
independent of the model provider.
return the error before opening the stream — don't start streaming and then abort.
promote to `LIVE`.
`res.status(429).json(...)` for Express).
filter by conclusion to see blocks
// injection detection
{ status: 403 });
decision.reason.message);
// PII scanning
// tokens to deduct for rate limiting
{
consider adding Arcjet advanced signals for client-side bot detection that catches sophisticated headless browsers. See https://docs.arcjet.com/bot-protection/advanced-signals for setup.
deduct 1 token per message
defaults to IP-based.
directly linking rate limiting to cost. It also allows short bursts while enforcing an average rate
SensitiveInfoType.CREDIT_CARD_NUMBER
PII leakage
set one up first with `shield()` as the base rule. The user will need to register for an Arcjet account at https://app.arcjet.com then use the `ARCJET_KEY` in their environment variables.
role-play escapes
rule types
PII blocking
block PII and sensitive info from leaking in responses