Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.limitly.dev/llms.txt

Use this file to discover all available pages before exploring further.

The Limitly Next.js SDK uses API key authentication to interact with the Limitly API.

API Key Setup

To use the SDK, you need a Limitly API key. You can get one from your Limitly Dashboard.

Basic Authentication

Initialize the SDK with your API key:
import { Limitly } from '@limitly/limitly-nextjs';

const limitly = new Limitly({
  apiKey: 'lk_1234567890abcdef'
});

Environment Variables

For security, store your API key in environment variables:
# .env.local
LIMITLY_API_KEY=lk_1234567890abcdef
Then use it in your application:
import { Limitly } from '@limitly/limitly-nextjs';

const limitly = new Limitly({
  apiKey: process.env.LIMITLY_API_KEY!
});

API Route Example

Here’s how to use authentication in a Next.js API route:
// app/api/users/route.ts
import { Limitly } from '@limitly/limitly-nextjs';

const limitly = new Limitly({
  apiKey: process.env.LIMITLY_API_KEY!
});

export async function GET(request: Request) {
  const apiKey = request.headers.get('authorization')?.replace('Bearer ', '');
  
  if (!apiKey) {
    return Response.json({ error: 'API Key required' }, { status: 401 });
  }

  const result = await limitly.validation.validate(
    apiKey,
    '/api/users',
    'GET'
  );

  if (!result.success) {
    return Response.json({ error: 'Rate limit exceeded' }, { status: 429 });
  }

  return Response.json({ message: 'Request allowed' });
}

Error Handling

The SDK provides comprehensive error handling:
import { Limitly } from '@limitly/limitly-nextjs';

const limitly = new Limitly({
  apiKey: process.env.LIMITLY_API_KEY!
});

try {
  const result = await limitly.validation.validate(
    'user_api_key',
    '/api/users',
    'GET'
  );
  
  if (result.success) {
    console.log('Request allowed');
  } else {
    console.log('Request denied:', result.error);
  }
} catch (error) {
  console.error('Authentication error:', error);
}

Next Steps