When to Use the API
The Genlook Widget API is designed for:- Custom widget implementations - Building a completely custom try-on experience
- Advanced integrations - Integrating try-on into custom apps or platforms
- White-label solutions - Embedding Genlook into third-party applications
- Special use cases - Scenarios where the standard widget doesn’t meet your needs
Standard setup is recommended for 99% of merchants. The standard Shopify app widget is easier to set up, fully customizable through the admin panel, and includes all features like analytics, email collection, and integrations.
Base URL
All API requests are made through your Shopify store’s app proxy:your-store with your actual Shopify store domain.
The app proxy path (
/apps/proxy_genlook-x) is configured when you install the Genlook app. This path is consistent across all stores.Authentication
Authentication is handled automatically by Shopify’s app proxy system. You don’t need to:- Generate API keys
- Manage authentication tokens
- Include authorization headers
The app proxy ensures requests are authenticated and associated with your Shopify store. This means you can make API calls directly from your store’s frontend without exposing credentials.
Rate Limits
Different endpoints have different rate limits PER USERS to ensure fair usage:| Endpoint | Rate Limit |
|---|---|
| Upload Image | 10 requests per 5 minutes |
| Create Generation | 50 requests per week |
| Check Credits | Cached for 2 minutes |
| Share Generation | 20 requests per minute |
HTTP Status Codes
The API uses standard HTTP status codes:| Code | Meaning |
|---|---|
200 | Success |
400 | Bad Request - Invalid parameters |
401 | Unauthorized - Authentication failed |
404 | Not Found - Resource doesn’t exist |
429 | Too Many Requests - Rate limit exceeded |
500 | Internal Server Error |
Error Responses
When an error occurs, the response body includes details:QUOTA_EXCEEDED- Monthly generation quota reachedRATE_LIMIT_EXCEEDED- Too many requests in time periodBILLING_NOT_ALLOWED- Billing issue or plan expired
Request Format
Most endpoints accept JSON in the request body:multipart/form-data:
Response Format
Successful responses return JSON:Best Practices
Endpoints Overview
Upload Image
Upload customer photos for virtual try-on
Create Generation
Request a virtual try-on generation
Generation Status
Check the status of a generation job
Collect Email
Collect customer email addresses
Share Generation
Create shareable links for try-on results
Download Image
Download generated try-on images
Check Credits
Verify if credits are available
Tracking Events
Send analytics events

