Symptoms:
{"error": "Unauthorized", "message": "Invalid or missing API key"}Solutions:
- Verify API key is set:
echo $DEAPI_API_KEY
- Check for typos or extra whitespace
- Regenerate API key at https://deapi.ai/dashboard
- Ensure key hasn't expired
Symptoms:
{"error": "Forbidden", "message": "Insufficient permissions"}Solutions:
- Check your plan limits
- Verify endpoint access on your plan
- Contact support if issue persists
Symptoms:
{"error": "Rate limit exceeded", "retry_after": 60}Solutions:
- Wait for
retry_afterseconds - Implement exponential backoff
- Reduce request frequency
- Upgrade to premium for higher limits
Best practice:
# Implement backoff
sleep_time=1
max_retries=5
for i in $(seq 1 $max_retries); do
response=$(curl -s ...)
if [[ $response != *"429"* ]]; then break; fi
sleep $sleep_time
sleep_time=$((sleep_time * 2))
doneSymptoms:
- Status remains
processingfor extended time - No progress after 5+ minutes
Solutions:
- Check expected processing times:
- Image generation: 10-60 seconds
- Video generation: 1-5 minutes
- Transcription: ~1x media duration
- Cancel and retry if exceeds 2x expected time
- Try with smaller input (lower resolution, shorter media)
Symptoms:
{"status": "failed", "error": "Processing error"}Solutions:
- Check input validity (URL accessible, correct format)
- Verify input size limits
- Review error message for specific issues
- Retry once after 30 seconds
- Try alternative parameters
Symptoms:
{"error": "Invalid URL", "message": "Could not fetch resource"}Solutions:
- Verify URL is publicly accessible (not behind auth)
- Check URL format (https://, no spaces)
- Test URL in browser
- For YouTube: ensure video is public
- Use direct file URLs when possible
Symptoms:
{"error": "Unsupported format"}Supported formats:
| Type | Formats |
|---|---|
| Image | PNG, JPG, JPEG, WebP, GIF, BMP |
| Audio | MP3, WAV, M4A, FLAC, OGG |
| Video | MP4, WebM, MOV, AVI |
Solutions:
- Convert to supported format
- Use online converter if needed
- Check file isn't corrupted
Symptoms:
{"error": "Content too large", "max_size": "50MB"}Solutions:
- Compress image/video
- Reduce resolution
- Split audio/video into segments
- Use streaming URL if available
Symptoms:
result_urlreturns 404 or access denied- Link worked before but now fails
Solutions:
- Download results promptly (URLs expire in 24h)
- Store results locally after fetching
- Re-run job if URL expired
Image generation:
- Add more detail to prompt
- Increase
steps(20-50) - Adjust
guidance_scale(7-12) - Use
fluxinstead ofzimageturbo - Add negative prompt
Transcription:
- Ensure clear audio
- Reduce background noise
- Use
WhisperLargeV3model
TTS:
- Add punctuation for natural pauses
- Try different voice
- Break long text into segments
Symptoms:
- Connection timeout
- Request hangs
Solutions:
- Check internet connection
- Verify deAPI status: https://status.deapi.ai
- Increase client timeout settings
- Try from different network
Symptoms:
SSL certificate problem: unable to get local issuer certificate
Solutions:
- Update CA certificates
- Check system time is correct
- Use
-kflag for testing (not production):curl -k -s ...
curl -v -X POST "https://api.deapi.ai/api/v1/client/txt2img" \
-H "Authorization: Bearer $DEAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt": "test"}'# Save full response
curl -s -w "\n%{http_code}" -o response.json \
"https://api.deapi.ai/api/v1/client/request-status/{id}" \
-H "Authorization: Bearer $DEAPI_API_KEY"echo '{"prompt": "test"}' | jq .- Documentation: https://docs.deapi.ai
- Status page: https://status.deapi.ai
- Discord: https://discord.gg/deapi
- Email: support@deapi.ai
When reporting issues, include:
- Request ID (if available)
- Endpoint used
- Input parameters (redact sensitive data)
- Full error response
- Timestamp