Integrate our powerful movie recommendation API into your applications with ease. Get started in minutes with our comprehensive guides and examples.
Integrate AI-powered movie recommendations into your applications with our simple and powerful API.
Welcome to the Screenpick API – your gateway to intelligent, AI-powered movie discovery. Our sophisticated recommendation engine leverages advanced machine learning algorithms to understand natural language queries and deliver personalized movie suggestions that match your exact preferences, mood, or specific criteria.
Integrate intelligent movie recommendations into your apps, websites, or services. Our RESTful API is designed for easy integration with comprehensive documentation and code examples.
Built with scalability and reliability in mind, featuring rate limiting, comprehensive error handling, and multiple authentication options to meet enterprise requirements.
The Screenpick API follows RESTful principles and returns responses in JSON format. All endpoints support CORS for browser-based applications and require HTTPS for secure communication. Our API is built on a modern, scalable infrastructure ensuring fast response times and high availability.
https://screenpick.fun/api/
Start with our health check endpoint (/api/ping
) to verify connectivity, then explore our AI recommendations endpoint with simple queries like "popular comedies" or "award-winning dramas from the 2010s" to see the power of our natural language processing.
The Screenpick API uses API key authentication to ensure secure access to our services. All API requests require a valid API key that identifies your application and tracks usage against your plan limits.
Include your API key in the Authorization header using the Bearer token format:
Authorization: Bearer YOUR_API_KEY
For RapidAPI integration, use the X-RapidAPI-Key header:
X-RapidAPI-Key: YOUR_RAPIDAPI_KEY
For quick testing, you can include the API key as a query parameter:
https://screenpick.fun/api/search?apiKey=YOUR_API_KEY&q=action+movies
⚠️ Not recommended for production use due to potential exposure in logs
cURL:
curl -H "Authorization: Bearer your_api_key_here"
JavaScript (fetch):
headers: { 'Authorization': 'Bearer your_api_key_here' }
Python (requests):
headers = {'Authorization': 'Bearer your_api_key_here'}
To ensure fair usage and maintain optimal service performance for all users, the Screenpick API implements intelligent rate limiting. Our rate limits are designed to accommodate both casual developers and high-volume enterprise applications.
We use a sliding window approach that provides more flexible usage patterns compared to fixed windows.
Rate limits are tracked individually for each API key, ensuring your usage doesn't affect others.
Plan | Daily Requests | Per Minute | Features | Best For |
---|---|---|---|---|
Free | 15 requests | 1 request | Basic AI recommendations | Testing & prototyping |
Basic | 2,500 requests | 10 requests | All endpoints + priority support | Small applications |
Pro | 10,000 requests | 50 requests | Enhanced AI + analytics dashboard | Production apps |
Enterprise | Custom limits | Custom burst | White-label + SLA + dedicated support | High-volume enterprise |
Every API response includes rate limit information in the headers:
X-RateLimit-Limit
Daily limitX-RateLimit-Remaining
Remaining requestsX-RateLimit-Reset
Reset timestampX-RateLimit-Window
Window periodBest practices for rate limit management:
When you exceed your rate limit, you'll receive a 429 Too Many Requests response:
{ "error": "Rate limit exceeded", "message": "You have exceeded your daily request limit. Please upgrade your plan or try again tomorrow.", "limit": 15, "remaining": 0, "resetTime": "2024-01-01T00:00:00Z" }
/api/search
Generate personalized movie recommendations using advanced AI. Simply describe what you're looking for, and our intelligent system will suggest movies tailored to your preferences, mood, or specific criteria.
Name | Type | Location | Required | Description |
---|---|---|---|---|
q | string | query | Yes | Natural language query describing the type of movies you want. Examples: 'romantic comedies from the 90s', 'sci-fi movies with time travel', 'feel-good animated movies for kids'. |
Authorization | string | header | Yes | Bearer token for API authentication (Authorization: Bearer YOUR_API_KEY) or X-RapidAPI-Key header. |
{
"movies": [
{
"adult": false,
"backdrop_path": "/wj2nLa0vfS0SLu2vJ6ABTRhMrok.jpg",
"genre_ids": [
18
],
"id": 334541,
"original_language": "en",
"original_title": "Manchester by the Sea",
"overview": "After his older brother passes away, Lee Chandler is forced to return home to care for his 16-year-old nephew...",
"popularity": 37.713,
"poster_path": "/o9VXYOuaJxCEKOxbA86xqtwmqYn.jpg",
"release_date": "2016-11-18",
"title": "Manchester by the Sea",
"video": false,
"vote_average": 7.5,
"vote_count": 5868
}
]
}
curl -X GET "https://screenpick.fun/api/search?q=romantic%20comedies%20from%20the%2090s" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"
/api/getID
Retrieve TMDb and IMDb identifiers for movies by title. This endpoint searches our comprehensive movie database and returns matching entries with their corresponding database IDs.
Name | Type | Location | Required | Description |
---|---|---|---|---|
title | string | query | Yes | The movie title to search for. Partial matches are supported (e.g., 'La La Land', 'Inception', 'The Dark Knight'). |
Authorization | string | header | Yes | Bearer token for API authentication or X-RapidAPI-Key header. |
[
{
"title": "La La Land (2016)",
"imdb": "tt3783958",
"tmdb": "313369"
},
{
"title": "La La Land (Short 2014)",
"imdb": "tt4282966",
"tmdb": "285473"
}
]
curl -X GET "https://screenpick.fun/api/getID?title=La%20La%20Land" \
-H "Authorization: Bearer YOUR_API_KEY"
/api/ping
Simple endpoint to check if the API is running and accessible. Returns the current status of the service.
No parameters required for this endpoint.
{
"status": "ok"
}
curl -X GET "https://screenpick.fun/api/ping"
The Screenpick API uses conventional HTTP response codes to indicate the success or failure of requests. Our error responses include detailed information to help you quickly identify and resolve issues.
Code | Status | Description |
---|---|---|
200 | OK | Request completed successfully |
400 | Bad Request | Invalid request parameters or malformed request |
401 | Unauthorized | Missing or invalid API key |
403 | Forbidden | Valid API key but insufficient permissions |
404 | Not Found | Requested resource or endpoint doesn't exist |
429 | Too Many Requests | Rate limit exceeded - slow down your requests |
500 | Internal Server Error | Something went wrong on our servers |
503 | Service Unavailable | API is temporarily down for maintenance |
When an error occurs, the API returns a structured JSON response with detailed error information to help you understand and resolve the issue quickly:
{
"error": {
"code": "invalid_request",
"message": "The request was invalid. Please check your parameters.",
"details": "The 'q' parameter is required for movie recommendations.",
"timestamp": "2024-01-15T10:30:00Z",
"requestId": "req_abc123def456"
}
}
missing_parameter
- Required parameter not providedinvalid_api_key
- API key is malformed or invalidrate_limit_exceeded
- Too many requests sentservice_unavailable
- AI service temporarily downquery_too_long
- Search query exceeds maximum lengthasync function handleApiResponse(response) {
if (!response.ok) {
const errorData = await response.json();
switch (response.status) {
case 400:
throw new Error(`Bad Request: ${errorData.error.message}`);
case 401:
throw new Error('Invalid API key. Please check your credentials.');
case 429:
const retryAfter = response.headers.get('Retry-After') || 60;
throw new Error(`Rate limit exceeded. Retry after ${retryAfter} seconds.`);
case 500:
throw new Error('Server error. Please try again later.');
default:
throw new Error(`API Error: ${errorData.error.message}`);
}
}
return await response.json();
}
While the Screenpick API is simple enough to use with any HTTP library, we've created SDKs and helper libraries to make integration even easier. These libraries handle authentication, error handling, and provide convenient methods for common use cases.
Full-featured SDK for browser and Node.js environments with TypeScript support.
npm install screenpick-js
Pythonic SDK with async support, perfect for data science and web applications.
pip install screenpick-python
Lightweight and fast Go client with built-in concurrency support.
go get github.com/screenpick/go-sdk
import { ScreenpickClient } from 'screenpick-js';
// Initialize the client
const client = new ScreenpickClient({
apiKey: 'your_api_key_here',
timeout: 10000, // 10 seconds
});
// Get movie recommendations
async function getRecommendations() {
try {
const movies = await client.recommendations.search({
query: 'romantic comedies from the 90s',
limit: 10
});
console.log(`Found ${movies.length} recommendations:`);
movies.forEach(movie => {
console.log(`- ${movie.title} (${movie.release_date?.split('-')[0]})`);
});
return movies;
} catch (error) {
if (error.code === 'RATE_LIMIT_EXCEEDED') {
console.log('Rate limit hit, waiting before retry...');
await client.waitForRateLimit();
return getRecommendations(); // Retry
}
throw error;
}
}
// Get movie IDs
async function getMovieIDs(title) {
const ids = await client.movies.getIDs(title);
return ids;
}
// Check API health
const isHealthy = await client.health.check();
Don't see your favorite language? The community has created unofficial libraries:
Join thousands of developers who are already using Screenpick to power their movie recommendation features. Get started with our free tier and scale as you grow.
Need help getting started? Check out our quickstart guide or contact our support team.
Built for developers who need reliable, fast, and intelligent movie recommendations. Our API combines cutting-edge AI with developer-friendly design.
RESTful API with clear endpoints and comprehensive documentation for quick implementation
Sub-second response times with globally distributed infrastructure and optimized caching
API key authentication, rate limiting, and HTTPS encryption for secure data transmission
Worldwide availability with 99.9% uptime SLA and automatic failover protection
Powered by state-of-the-art machine learning models trained on vast movie databases
Comprehensive movie information including ratings, genres, cast, and detailed descriptions
Ready to discover your next favorite movie?
Join thousands of movie lovers finding perfect recommendations