Quickstart

Get Productive In 5 Minutes

Follow these focused steps to obtain an API key, make your first request, and parse movie recommendations using Screenpick.

1

Create a Free Account & Get API Key

Visit the RapidAPI listing and subscribe to the Free plan. Copy the provided API key.

  1. Go to Screenpick on RapidAPI
  2. Sign in & click Subscribe
  3. Copy your X-RapidAPI-Key
  4. Store it securely (e.g. SCREENPICK_API_KEY env var)
Never commit API keys to Git – use environment variables.
2

Test Connectivity

Ping the health endpoint – you should receive a simple JSON confirming availability.

curl -s https://screenpick.fun/api/ping
3

Make Your First Search

Use natural language in the q parameter – the AI interprets intent (genre, mood, era, style).

curl -s -H "Authorization: Bearer YOUR_API_KEY" 
  "https://screenpick.fun/api/search?q=classic+space+adventure"
Example partial response:
{
  "success": true,
  "query": "classic space adventure",
  "movies": [
    {
      "id": 11,
      "title": "Star Wars: A New Hope",
      "release_date": "1977-05-25",
      "overview": "Luke Skywalker joins forces...",
      "genre_ids": [12, 28, 878],
      "vote_average": 8.2,
      "vote_count": 18000,
      "popularity": 120.5,
      "poster_path": "/abc123.jpg",
      "backdrop_path": "/def456.jpg",
      "adult": false,
      "original_language": "en",
      "original_title": "Star Wars"
    },
    { "id": 1893, "title": "Star Wars: Attack of the Clones", ... }
  ],
  "total": 10,
  "requestId": "a2f3b0d2-...",
  "timestamp": "2025-09-17T12:34:56.789Z",
  "authMethod": "jwt",
  "userPlan": "basic"
}
4

Integrate in Your Code

const res = await fetch('https://screenpick.fun/api/search?q=thrilling+heist', {
  headers: {
    Authorization: 'Bearer YOUR_API_KEY' // optional; higher limits when provided
  }
});
const data = await res.json();
console.log(data.movies[0]);
5

Handle Errors & Rate Limits

Check HTTP status codes. On 429 back off & retry after the Retry-After header.

async function api(path, params) {
  const url = new URL('https://screenpick.fun/api' + path);
  Object.entries(params || {}).forEach(([k,v]) => url.searchParams.set(k, String(v)));
  const res = await fetch(url, { headers: { Authorization: 'Bearer ' + process.env.NEXT_PUBLIC_SCREENPICK_KEY } });
  if (!res.ok) {
    let msg = res.status + ' error';
    try {
      const err = await res.json();
      msg = err.error?.message || msg;
    } catch {}
    if (res.status === 429) {
      const retry = res.headers.get('Retry-After') || '60';
      throw new Error('Rate limited. Retry after ' + retry + 's');
    }
    throw new Error(msg);
  }
  return res.json();
}
  • 400 – Validate your parameters
  • 401 – Wrong / missing key
  • 429 – Too many requests (respect headers)
  • 500+ – Temporary server issue, implement retry

Next Steps

Explore genre discovery, trending titles, and detailed movie lookup endpoints in the full documentation. Scale usage by upgrading your plan when needed.