REST API v1
API for AI Agents
Send product photos, get marketplace listings ready to publish. REST API with API key authentication, quota, and rate limiting.
Quick Start
2
Check your quota
curl https://phototolisting.com/api/v1/usage \
-H "X-API-Key: ptl_your_key_here"3
Generate listings
curl -X POST https://phototolisting.com/api/v1/listings \
-H "X-API-Key: ptl_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"photos": ["data:image/jpeg;base64,..."],
"platforms": ["leboncoin", "vinted"],
"language": "fr",
"tone": "friendly"
}'Endpoints
| Method | Path | Description |
|---|---|---|
| POST | /api/v1/listings | Generate listings from product photos |
| GET | /api/v1/usage | Check remaining quota |
Authentication
All API requests require an API key passed via the X-API-Key header.
X-API-Key: ptl_your_key_here- Keys use the ptl_ prefix followed by 64 hex characters
- Maximum 10 active keys per account
- The key is shown only once at creation — save it immediately
Limits & Quota
Rate Limiting
Free10 req/min
Pro60 req/min
X-RateLimit-Limit and X-RateLimit-Remaining headers are included in every response.
Generation Quota
Free3 / month
ProUnlimited
Credit Pack20 generations
Example Response
{
"success": true,
"data": {
"listings": [
{
"platform": "leboncoin",
"title": "Veste en cuir noir - Taille M",
"description": "Superbe veste en cuir véritable...",
"price": 45,
"category": "Vêtements",
"condition": "Bon état"
}
],
"attributes": {
"name": "Veste en cuir noir",
"brand": "Unknown",
"size": "M",
"condition": "good",
"color": "Noir",
"material": "Cuir"
},
"suggestedPrice": 45
},
"usage": {
"freeUsed": 1,
"freeLimit": 3,
"creditsRemaining": 0,
"isSubscribed": false,
"canGenerate": true
}
}Supported Platforms
leboncoin
Leboncoin
France
vinted
Vinted
Europe
marketplace
Facebook Marketplace
Global
ebay
eBay
Global
etsy
Etsy
Global
vestiaire
Vestiaire Collective
Europe
selency
Selency
France
poshmark
Poshmark
US
mercari
Mercari
US/Japan
depop
Depop
UK/US
craigslist
Craigslist
US
offerup
OfferUp
US
Error Codes
| Code | Meaning |
|---|---|
| 400 | Bad Request |
| 401 | Unauthorized |
| 402 | Payment Required |
| 429 | Too Many Requests |
| 500 | Server Error |
Resources
Ready to integrate?
Start free with 3 generations per month. Upgrade to Pro for unlimited access.