Open API Overview
Comprehensive guide to LikeDo's Open API endpoints
Introduction
Welcome to the LikeDo Open API documentation. Our RESTful API enables you to integrate LikeDo's powerful domain services directly into your applications, scripts, and workflows. Whether you're building automation tools, integrating with existing systems, or creating custom solutions, our API provides the flexibility and power you need.
Available APIs
LikeDo currently provides the following API endpoints:
1. Short Link API
Create and manage branded short links programmatically.
- Endpoint:
POST /api/v1/links/create - Use Cases:
- Automated link shortening in social media tools
- Dynamic QR code generation
- Campaign tracking and analytics
- Bulk link creation
- Marketing automation integration
View Short Link API Documentation →
Try the Interactive Playground →
2. Email API
Create custom email addresses on your domain programmatically.
- Endpoint:
POST /api/v1/emails/create - Use Cases:
- Automated email address provisioning
- User onboarding workflows
- Temporary email creation
- Email management systems
- Multi-tenant applications
View Email API Documentation →
Try the Interactive Playground →
Getting Started
1. Create an API Key
Before using any API endpoint, you need to create an API key:
- Sign in to your LikeDo account
- Navigate to Settings > API Keys
- Click Create API Key
- Configure your rate limits based on your plan
- Save your API key securely (it's only shown once)
2. Authentication
All API requests require authentication using your API key. You can provide your API key in two ways:
Option 1: Authorization Header (Recommended)
Authorization: Bearer YOUR_API_KEYOption 2: Query Parameter
?key=YOUR_API_KEY3. Rate Limits
Rate limits are automatically configured based on your subscription tier:
| Plan | Rate Limit |
|---|---|
| Free | 200 requests/hour |
| Pro | 2000 requests/hour |
| Lifetime | 2000 requests/hour |
Rate limit information is included in response headers:
X-RateLimit-Limit: Total requests allowed per hourX-RateLimit-Remaining: Requests remaining in current windowX-RateLimit-Reset: Timestamp when the rate limit resets
API Response Format
All API endpoints return responses in JSON format with a consistent structure:
Success Response
{
"success": true,
"data": {
// Response data specific to the endpoint
}
}Error Response
{
"success": false,
"error": "Error message describing what went wrong",
"details": [
// Optional: Array of validation errors or additional details
]
}HTTP Status Codes
Our API uses standard HTTP status codes:
| Status Code | Meaning |
|---|---|
| 200 | OK - Request succeeded |
| 201 | Created - Resource successfully created |
| 400 | Bad Request - Invalid request data |
| 401 | Unauthorized - Missing or invalid API key |
| 403 | Forbidden - Valid API key but insufficient permissions |
| 409 | Conflict - Resource already exists |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal Server Error - Something went wrong on our end |
Best Practices
Security
- Keep API keys secure: Never commit API keys to version control
- Use environment variables: Store keys in
.envfiles or secure vaults - Rotate keys regularly: Generate new keys periodically for enhanced security
- Use HTTPS: Always make requests over secure connections
- Monitor usage: Regularly review API key usage in your dashboard
Performance
- Implement retry logic: Handle temporary failures with exponential backoff
- Cache responses: Cache API responses when appropriate to reduce requests
- Batch operations: If creating multiple resources, consider spacing out requests
- Monitor rate limits: Track your usage to avoid hitting limits
- Use webhooks: For real-time updates, consider using webhooks instead of polling
Error Handling
async function createShortLink(data) {
try {
const response = await fetch('/api/v1/links/create', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify(data),
});
const result = await response.json();
if (!response.ok) {
// Handle different error scenarios
if (response.status === 401) {
throw new Error('Invalid API key');
} else if (response.status === 429) {
throw new Error('Rate limit exceeded. Please try again later.');
} else {
throw new Error(result.error || 'Request failed');
}
}
return result.data;
} catch (error) {
console.error('API Error:', error);
throw error;
}
}API Playground
Try out our APIs interactively before integrating them into your application:
- Short Link Playground: /ing/short-link
- Email Playground: /ing/email
The playgrounds allow you to:
- Test API endpoints with your own API key
- See real-time request and response data
- Copy code examples in multiple languages
- Understand API behavior before implementation
Support
Need help with the API?
- Documentation: Browse our comprehensive API documentation
- Examples: Check out code examples in multiple programming languages
- Community: Join our community for discussions and support
- Contact: Reach out to our support team for technical assistance
Coming Soon
We're constantly expanding our API offerings. Stay tuned for:
- Webhook API: Real-time notifications for link clicks and events
- Analytics API: Detailed statistics and insights
- Domain Management API: Programmatic domain configuration
- File Storage API: Upload and manage files via API
Changelog
Track API updates and changes in our Changelog.
LikeDo Docs