← Back to Home
10,000+ HD Wallpapers
99.9% Uptime
Free Basic Tier
4K Max Quality
🚀 Getting Started

The Pet Wallpaper Paradise API provides free access to our collection of HD pet wallpapers. Our API is built on top of The Cat API and The Dog API, with additional features and caching for better performance.

🎯 No Registration Required: Start using our API immediately! Basic tier includes 1000 requests per day without any signup process.

Base URL

https://api.catdog.vinnesia.my.id/v1/

Authentication

Basic tier requires no authentication. For higher rate limits and premium features, contact us for an API key.

📱 Endpoints

Get Random Pet Images

GET /images/random FREE

Returns random pet wallpapers with optional filtering.

Query Parameters

Parameter Type Default Description
limit integer 10 Number of images (1-50)
type string all Filter: cat, dog, or all
size string full Image size: thumb, medium, full
format string json Response format: json, xml

Example Request

curl -X GET "https://api.catdog.vinnesia.my.id/v1/images/random?limit=5&type=cat&size=full"

Example Response

{ "success": true, "data": [ { "id": "abc123", "url": "https://cdn2.thecatapi.com/images/abc123.jpg", "width": 1920, "height": 1080, "type": "cat", "breeds": [], "categories": [ { "id": 1, "name": "cute" } ], "created_at": "2025-01-15T10:30:00Z" } ], "pagination": { "total": 10000, "limit": 5, "offset": 0 } }
🐱 Cat-Specific Endpoints

Get Cat Images

GET /cats/images FREE

Returns cat wallpapers with breed information.

Get Cat Breeds

GET /cats/breeds FREE

Returns list of available cat breeds.

Example Request

// Using JavaScript fetch fetch('https://api.catdog.vinnesia.my.id/v1/cats/images?limit=10') .then(response => response.json()) .then(data => { console.log('Cat wallpapers:', data.data); }) .catch(error => { console.error('Error:', error); });
🐶 Dog-Specific Endpoints

Get Dog Images

GET /dogs/images FREE

Returns dog wallpapers with breed information.

Get Dog Breeds

GET /dogs/breeds FREE

Returns list of available dog breeds.

Example Request

# Using Python requests import requests url = "https://api.catdog.vinnesia.my.id/v1/dogs/images" params = { "limit": 15, "breed": "golden-retriever", "size": "full" } response = requests.get(url, params=params) data = response.json() if data['success']: for image in data['data']: print(f"Dog wallpaper: {image['url']}")
⭐ Premium Features

Upgrade to premium for additional features and higher rate limits.

Upload Custom Wallpapers

POST /images/upload PREMIUM

Upload your own pet wallpapers to share with the community.

Favorites Management

GET /user/favorites PREMIUM
POST /user/favorites PREMIUM
DELETE /user/favorites/{id} PREMIUM

Analytics

GET /analytics/usage PREMIUM

Get detailed analytics about your API usage and popular wallpapers.

🚀 Premium Benefits:
  • 10,000 requests per day (vs 1,000 free)
  • Upload custom wallpapers
  • Manage favorites across devices
  • Detailed analytics dashboard
  • Priority support
  • Webhook notifications
📊 Rate Limits
Tier Requests/Day Requests/Hour Features
Free 1,000 50 Basic API access, Random images
Premium 10,000 500 All features, Upload, Analytics
Enterprise Unlimited Unlimited Custom solutions, Dedicated support
⚠️ Rate Limit Headers:
All responses include rate limit information in headers:
  • X-RateLimit-Limit - Your rate limit
  • X-RateLimit-Remaining - Remaining requests
  • X-RateLimit-Reset - Reset timestamp
❌ Error Handling

The API uses conventional HTTP response codes to indicate success or failure.

HTTP Status Codes

Status Code Meaning Description
200 OK Request successful
400 Bad Request Invalid parameters
401 Unauthorized Invalid API key
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Something went wrong

Error Response Format

{ "success": false, "error": { "code": "RATE_LIMIT_EXCEEDED", "message": "Rate limit exceeded. Try again in 1 hour.", "details": { "limit": 1000, "reset_time": "2025-01-15T12:00:00Z" } } }
🛠️ Code Examples

JavaScript (Fetch API)

async function getPetWallpapers(type = 'all', limit = 10) { try { const response = await fetch( `https://api.catdog.vinnesia.my.id/v1/images/random?type=${type}&limit=${limit}` ); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } const data = await response.json(); if (data.success) { return data.data; } else { throw new Error(data.error.message); } } catch (error) { console.error('Failed to fetch wallpapers:', error); return []; } } // Usage getPetWallpapers('cat', 5).then(wallpapers => { wallpapers.forEach(wallpaper => { console.log(`${wallpaper.type} wallpaper: ${wallpaper.url}`); }); });

PHP (cURL)

$type, 'limit' => $limit, 'size' => 'full' ]); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url . '?' . $params); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'User-Agent: Pet Wallpaper App/1.0' ]); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpCode === 200) { $data = json_decode($response, true); return $data['success'] ? $data['data'] : []; } return []; } // Usage $wallpapers = getPetWallpapers('dog', 8); foreach ($wallpapers as $wallpaper) { echo "Dog wallpaper: " . $wallpaper['url'] . "\n"; } ?>

Python (Requests)

import requests from typing import List, Dict, Optional class PetWallpaperAPI: def __init__(self, base_url: str = "https://api.catdog.vinnesia.my.id/v1"): self.base_url = base_url self.session = requests.Session() self.session.headers.update({ 'User-Agent': 'Pet Wallpaper App/1.0' }) def get_random_images(self, pet_type: str = 'all', limit: int = 10, size: str = 'full') -> List[Dict]: """Get random pet wallpapers""" try: response = self.session.get( f"{self.base_url}/images/random", params={ 'type': pet_type, 'limit': limit, 'size': size }, timeout=30 ) response.raise_for_status() data = response.json() return data['data'] if data['success'] else [] except requests.exceptions.RequestException as e: print(f"API request failed: {e}") return [] def get_cat_images(self, limit: int = 10) -> List[Dict]: """Get cat-specific wallpapers""" return self.get_random_images('cat', limit) def get_dog_images(self, limit: int = 10) -> List[Dict]: """Get dog-specific wallpapers""" return self.get_random_images('dog', limit) # Usage api = PetWallpaperAPI() # Get mixed pet wallpapers wallpapers = api.get_random_images(limit=5) for wallpaper in wallpapers: print(f"{wallpaper['type'].title()} wallpaper: {wallpaper['url']}") # Get only cat wallpapers cat_wallpapers = api.get_cat_images(limit=3) print(f"\nFound {len(cat_wallpapers)} cat wallpapers")
🔧 SDKs and Libraries

Official and community SDKs for popular programming languages:

📦 JavaScript/NPM
COMING SOON
🐍 Python/PyPI
COMING SOON
🐘 PHP/Composer
COMING SOON
💎 Ruby/Gem
COMING SOON
🚀 Want to contribute? We're looking for developers to help build official SDKs. Contact us at hello@catdog.vinnesia.my.id if you're interested!
📚 Best Practices

🚀 Performance Tips

  • Cache responses: Cache images locally to reduce API calls
  • Use appropriate sizes: Request 'thumb' for previews, 'full' for downloads
  • Batch requests: Use higher limits instead of multiple requests
  • Handle errors gracefully: Always check for API errors and rate limits
  • Respect rate limits: Implement exponential backoff for retries

🔒 Security Considerations

  • API Keys: Keep premium API keys secure and never expose them client-side
  • HTTPS only: Always use HTTPS endpoints
  • Validate responses: Always validate API responses before using data
  • User-Agent: Include a descriptive User-Agent header

📱 Mobile App Guidelines

  • Lazy loading: Load images on-demand to save bandwidth
  • Image caching: Implement proper image caching strategies
  • Offline support: Cache favorite wallpapers for offline viewing
  • Quality selection: Let users choose image quality based on connection
🌟 Community & Support

Join our developer community and get help with the Pet Wallpaper Paradise API:

📧 Email Support

hello@catdog.vinnesia.my.id

📖 Documentation

Always up-to-date

🐛 Issue Tracking

Report bugs via email

Response Time

< 24 hours

💡 Feature Requests: Have an idea for a new API feature? We'd love to hear from you! Send your suggestions to hello@catdog.vinnesia.my.id
🎯 Try It Now

Ready to start using the Pet Wallpaper Paradise API? Test it right now!