Skip to content
Back to skills

Async Api Routes

ASecurity

Imported skill async_api_routes from vercel

  • 3 stars
  • 0 votes
  • 0 copies
  • 6 views
  • Added September 11, 2026
developmenttypescriptreactapi

Works with

  • api

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add bitwikiorg/skills.md --skill async_api_routes --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Async Api Routes?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Async Api Routes
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bitwikiorg-async-api-routes/badge)](https://www.skillsdirectory.com/skills/bitwikiorg-async-api-routes)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
description: Imported skill async_api_routes from vercel
name: async_api_routes
signature: 523338540d73427dc14c0cbb19f2741ebccdf8b105a7b2c1b33d2905cf237a42
source: /a0/tmp/skills_research/vercel/skills/react-best-practices/rules/async-api-routes.md
---

---
title: Prevent Waterfall Chains in API Routes
impact: CRITICAL
impactDescription: 2-10× improvement
tags: api-routes, server-actions, waterfalls, parallelization
---

## Prevent Waterfall Chains in API Routes

In API routes and Server Actions, start independent operations immediately, even if you don't await them yet.

**Incorrect (config waits for auth, data waits for both):**

```typescript
export async function GET(request: Request) {
  const session = await auth()
  const config = await fetchConfig()
  const data = await fetchData(session.user.id)
  return Response.json({ data, config })
}
```

**Correct (auth and config start immediately):**

```typescript
export async function GET(request: Request) {
  const sessionPromise = auth()
  const configPromise = fetchConfig()
  const session = await sessionPromise
  const [config, data] = await Promise.all([
    configPromise,
    fetchData(session.user.id)
  ])
  return Response.json({ data, config })
}
```

For operations with more complex dependency chains, use `better-all` to automatically maximize parallelism (see Dependency-Based Parallelization).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.