Shopify: 3 months for $1/month, plus up to $10,000 credits as you sell
Back to QR Code toolAPI

QR Code API

Generate SVG or PNG data URL QR codes from links or text. Quota is counted by request.

Authentication
Create an API key from settings. The full secret is shown once, so copy it into your agent or secret manager. Later views only show a masked key.
Authorization: Bearer ecw_live_...
X-API-Key: ecw_live_...
Quota And Rate Limits
API usage is tracked separately. Responses include quota and rate-limit headers so your agent can decide whether to continue.
X-Quota-Limit: 1000
X-Quota-Remaining: 997
X-RateLimit-Limit: 30
Safe Retries
If a request times out or your agent retries automatically, send the same Idempotency-Key. The same request key and body reuse the result without duplicate generation or quota usage.
Idempotency-Key: order-sync-2026-06-14-001

Current Plan Limits

Limits are calculated from the current membership tier of the API key owner. Send requests sequentially; the quota and rateLimit fields in each response are the source of truth for your agent.

PlanAPI accessDaily quotaPer requestPer minuteHow to use it
BasicNot included in API access todayUnavailableUnavailableUnavailableIf the API returns membership_required, stop and check the account plan.
ProIncluded500 requests1 QR code30 requestsOne request generates one QR code and does not use a quantity field. Stop requests when quota.remaining is 0.
MaxIncluded5,000 requests1 QR code120 requestsOne request generates one QR code and does not use a quantity field. Stop requests when quota.remaining is 0.

Send Requests Sequentially

For the same API key and tool, Ecomwith handles one request at a time. If the API returns 429 concurrency_limited, wait for the previous request to finish and retry with the same Idempotency-Key.

Copy This To Your Agent
Give this instruction to your automation agent so it knows how to authenticate, request, handle quota, rate limits, and safe retries.
You are my automation agent. Use the Ecomwith Tool API to call the QR Code API, and never print the full API key in logs, chat, or error messages.

Authentication:
- Read the secret from the ECOMWITH_API_KEY environment variable.
- Send Authorization: Bearer <ECOMWITH_API_KEY>.

Request:
- Endpoint: POST https://ecomwith.com/api/v1/tools/qrcode/generate
- Headers: Content-Type: application/json
- Body example: {"text":"https://example.com","format":"svg","size":300}
- One request generates one QR code and does not use a quantity field.

Current limits:
- Pro: 500 requests per day, 1 QR code per request, up to 30 requests per minute.
- Max: 5,000 requests per day, 1 QR code per request, up to 120 requests per minute.
- Basic does not include API access today. If the API returns membership_required, stop and ask me to check the plan.

Quota and rate-limit handling:
- Read quota.remaining and rateLimit.remaining from every response.
- If quota.remaining is 0, stop requests.
- Do not call the same tool concurrently. Wait for the previous request to finish before sending the next one.
- If the API returns 429 concurrency_limited, wait for the previous request to finish and retry with the same Idempotency-Key.
- If the API returns 429 rate_limited, wait before retrying. If it returns 429 quota_exceeded, stop and report that quota is exhausted.

Safe retries:
- Generate one stable Idempotency-Key for each business task, for example qr-product-page-123.
- On a network timeout or 5xx response, retry with the same Idempotency-Key. Do not switch to a new key.
- Do not automatically retry 400, 401, or 403 responses.
- If the API returns 409 idempotency_conflict, the same key was used with a different request body. Stop and ask me to confirm.

On success, return qrcode.dataUrl, format, quota.remaining, and rateLimit.remaining.

Example Requests

curl -X POST https://ecomwith.com/api/v1/tools/qrcode/generate \
  -H "Authorization: Bearer $ECOMWITH_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: qr-001" \
  -d '{"text": "https://example.com", "format": "svg", "size": 300}'