Bulk Link Creation
ProRequires a Pro or Builder plan with API access
What is Bulk Link Creation?
The AWSYS.CO bulk API endpoint lets you create up to 100 short links in a single HTTP request. This is essential for high-volume use cases such as generating unique tracking links for thousands of email subscribers, creating per-product links from a product catalogue, or setting up QR codes for printed materials at scale. Bulk creation applies the same rules as individual link creation — all settings including custom slugs, UTM parameters, expiry, and click limits are supported per link.
Requirements
Bulk link creation requires a Pro or Builder plan and an API key. Generate one from Settings → Developer → API Keys. Each batch is limited to 100 links per request. Builder plan accounts benefit from higher API rate limits (500 calls/hour vs 50/hour on Pro), which allows faster throughput when you need to create many batches.
Step-by-step: Create links in bulk
- Generate an API key from Settings → Developer → API Keys if you don't have one yet.
- Prepare an array of link objects. Each object must have at minimum a
longfield containing your destination URL encoded as a Base64 string. - Send a
POSTrequest tohttps://awsys.co/api/bulkwith theAuthorization: Bearer <api_key>header andContent-Type: application/json. - The request body is
{"links": [...]}— an array of up to 100 link objects. - The response is a JSON array in the same order as your input, each element containing
shortUrl,url(full short URL), and any error that occurred for that individual item. - Items that fail individually (e.g., slug already taken) return an error object in their position; successful items return the created link data. The overall HTTP status is 200 even if some items failed.
Configuration reference
| Field | Type | Notes |
|---|---|---|
long |
String (Base64-encoded URL) | Required. Encode with btoa(url) in JS or base64.b64encode in Python |
slug |
String | Optional. Custom slug within your namespace |
expiresAt |
ISO 8601 datetime | Optional. Link expiry in UTC |
maxClicks |
Integer | Optional. Maximum click count before link stops redirecting |
| Max batch size | 100 links | Split larger jobs into multiple requests |
Common questions
Why is the destination URL Base64-encoded?
Base64 encoding prevents URL parsing issues with special characters in destination URLs (like ampersands or percent-encoded sequences). Encode each URL individually before placing it in the JSON array.
What happens if one link in the batch fails?
Failures are per-item. Successful items in the same batch are created normally. The response array mirrors the input array order, so you can identify which items succeeded and which failed by index.
How many links can I create per hour?
Pro accounts have 50 API calls per hour; Builder accounts have 500. With a batch size of 100, Builder accounts can create up to 50,000 links per hour. For higher throughput, contact support about Enterprise options.
Do bulk-created links appear in my dashboard?
Yes. All links created via the API — including bulk — appear in your dashboard with full analytics. You can search, filter, and manage them exactly like links created through the UI.