# API

> API route scaffolding

- Skill: `mgoodman60/api` (Agent Skill)
- Install (CLI): `npx skillmds@latest add mgoodman60/api`
- Raw SKILL.md: https://api.skillmd.com/api/skills/mgoodman60/api/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: mgoodman60 (https://skillmd.com/u/mgoodman60)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/mgoodman60/api

---


Create a new API route with proper structure.

## Usage

- `/api projects/budget` - Create route at app/api/projects/budget/route.ts

## Route Template

```typescript
import { NextRequest, NextResponse } from 'next/server';
import { getServerSession } from 'next-auth';
import { authOptions } from '@/lib/auth-options';
import { prisma } from '@/lib/db';

export async function GET(request: NextRequest) {
  try {
    const session = await getServerSession(authOptions);
    if (!session?.user) {
      return NextResponse.json({ error: 'Unauthorized' }, { status: 401 });
    }

    // Implementation

    return NextResponse.json({ data });
  } catch (error) {
    console.error('[API] Error:', error);
    return NextResponse.json(
      { error: 'Internal server error' },
      { status: 500 }
    );
  }
}
```

## Route Pattern

```
Auth Check → Rate Limit → Validation → Business Logic → Response
```

## File Location

`app/api/$ARGUMENTS/route.ts`

