LinkWrangler Customer API
The LinkWrangler API allows you to programmatically access your data, sync products, and manage batches and serials.
Note: API access requires a paid subscription. You can manage your API keys in the Account Settings.
1. API Key Setup
To start using the LinkWrangler API, you first need to generate an API key.
- Navigate to the Account Settings page.
- Click on the API Access tab.
- Enter a descriptive name for your key (e.g., "Production Web Server").
- Select the required permissions (scopes) for this key.
- Click Generate New Key.
Important: Your API key will only be shown once. Copy it immediately and store it securely. We cannot recover lost keys.
2. Scopes & Permissions
LinkWrangler uses scopes to restrict API key access to specific endpoints. You should always use the principle of least privilege when creating keys.
| Scope | Description |
|---|---|
| products:read | List and view product details |
| products:write | Create or update products by GTIN |
| batches:write | Create or update production batches |
| serials:write | Bulk upload serial numbers to batches |
| scans:read | Access historical scan event data |
3. Authentication
Authenticate your requests by including your API key in the Authorization header of your HTTP requests.
Your API keys carry many privileges, so be sure to keep them secure! Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.
4. Rate Limiting
The API is rate limited to 100 requests per minute per account. If you exceed this limit, you will receive a 429 Too Many Requests response.
5. Base URL
All API requests should be made to the following base URL:
6. Scans Endpoint
Retrieve a list of scan events for your account. Segments can be filtered by product, batch, or date.
https://www.linkwrangler.com/api/v1/scansRetrieve a paginated list of scan events for your account.
Developer Note: This is a GET endpoint. All parameters must be passed as URL search parameters (e.g. ?gtin=123...). If you are using tools like Make.com or Zapier, do not put these fields in the "Request Body" as they will be ignored.
Query Parameters:
limit(int): Max records (default 50, max 100)offset(int): Pagination offset for large datasetsgtin(string): Filter events by Product GTINbatch(string): Filter events by Batch Numberstart_date(ISO 8601): Filter events occurring after this dateend_date(ISO 8601): Filter events occurring before this date
Response Structure:
7. Products Endpoint
Manage your product catalog.
https://www.linkwrangler.com/api/v1/productsList all products associated with your account.
Query Parameters:
limit(int): Max records (default 50, max 100)offset(int): Pagination offsetgtin(string): Filter by specific GTIN
https://www.linkwrangler.com/api/v1/productsCreate or update (upsert) a product. Identify records by GTIN.
Payload Fields:
gtin(string, required): Product barcode (14 digits)name(string, required): Product display namebrand_name(string): Product brand (e.g., Acme Co)sku(string): Your internal Stock Keeping Unitcategory(string): Product category (see values below)msrp(float): Manufacturer suggested retail priceimage_url(string): Public URL for product photovideo_url(string): Public URL for promotional videodescription_short(string): Brief marketing textproduct_url(string): Primary destination URL for redirectsis_active(boolean): Product availability status
Example Body:
Valid Categories:
| Value (Payload) | Display Label |
|---|---|
| food_beverage | Food, Beverage & Tobacco |
| beauty_personal_care | Beauty & Personal Care |
| health_pharma | Health & Pharmaceuticals |
| apparel_footwear | Clothing, Apparel & Footwear |
| home_garden | Home, Garden & Kitchen |
| pet_care | Pet Care |
| electronics | Electronics & Computing |
| automotive_tools | Automotive & Tools |
| toys_sports | Toys, Games & Sports |
| construction | Building & Construction |
| other | Other / Logistics |
8. Batches Endpoint
Create or update production batches linked to a product.
https://www.linkwrangler.com/api/v1/batchesCreate or update (upsert) a production batch.
Payload Fields:
product_gtin(string, required): Product barcode / GTIN-14batch_number(string, required): Unique batch identifiermfg_date(ISO 8601): Manufacturing dateexpiry_date(ISO 8601): Expiry dateauthorized_countries(array of strings): ISO country codes (e.g. [US, AU])quantity(int): Total batch quantitystatus(string): active, recalled, quarantine, or expired
Example Body:
9. Serials Endpoint
Bulk upload serial numbers for a specific batch.
https://www.linkwrangler.com/api/v1/serialsBulk upload serial numbers to a specific batch. If the batch doesn't exist, it will be created automatically.
Payload Fields:
product_gtin(string, required): GTIN of the parent productbatch_number(string, required): Batch number to assign serials toserials(array of strings, required): List of serial numbers (max 1,000 per request)
Example Body:
Note: Duplicate serial numbers in the same batch will be ignored automatically.