Create a link
Create a short link, configure its behavior, and optionally attach workspace resources or an SVG QR code.
long_url is required.
biqli_ API key belongs to exactly one
workspace, and every resource created or attached by this request is scoped
to that workspace.Authentication and permissions
Send your workspace API key as a Bearer token:links.create). If you attach existing
workspace resources, it also needs the matching read permission.
Minimal request
example.com/product becomes https://example.com/product.
Link identity and destination
409 alias_taken and does not create a link.
An external_id is unique within the API key’s workspace. A duplicate returns
409 external_id_taken.
Access and expiration
UTM parameters
Useutm for an ampersand-separated query string without a leading ?.
Biqli prefixes keys with utm_ when the prefix is missing, then appends the
parameters to the destination without replacing its existing query string.
Dynamic routing
Use targeting rules to override the destination for matching visitors. Each rule has akey and destination value. Biqli uses the first matching rule.
long_url.
Attach workspace resources
Pass public IDs to attach resources that already exist in the key’s workspace. Internal numeric database IDs are not accepted.422. If it is valid but missing or belongs to another workspace, the
API returns 404 resource_not_found. This prevents cross-workspace resource
disclosure.
Conversion tracking and indexing
Setconversion_tracking_enabled to append a Biqli click ID to the destination
for conversion attribution. It defaults to false.
Set allow_search_engine_indexing to true only when you want search engines
to index the short-link page. It defaults to false, which sends no-index
instructions.
Custom social preview
Setproxy to true to use your own social preview metadata. You can provide
any combination of title, description, and image.
image rejects local hostnames, private or reserved IP literals, and non-HTTPS
URLs. Providing preview metadata without proxy: true returns a validation
error. Set proxy to false or omit it to use destination metadata instead.
Create an attached QR code
Setcreate_qr_code to true to generate a 1,024-pixel SVG QR code that points
to the new short URL.
qr_logo accepts:
app: Include the Biqli logo. This is the default.none: Generate the QR code without a center logo. This option requires the workspace plan permission for unbranded QR codes.
qr_logo when create_qr_code is true. The response
includes the stored SVG URL, format, and selected logo mode.
Complete request
Successful response
A link that clears synchronous safety checks returns201 Created.
Pending safety response
If a destination redirects or needs deeper inspection, Biqli atomically creates the link and returns202 Accepted with safety_status: "pending".
The following abridged response highlights the pending state:
422 url_blocked and no link is created.
Plans, quotas, and atomicity
Workspace plan permissions and quotas apply before Biqli writes the link. Plan-gated options include custom aliases, passwords, activation and expiration, click expiration, UTM parameters, dynamic routing, and unbranded QR codes.- A missing plan entitlement returns
403 upgrade_required. - Exhausted monthly link quota returns
403 quota_exceeded. - The API rate limit uses the plan attached to the key’s workspace, not another workspace owned by the same user.
- Link fields, rules, tags, folders, pixels, and the attached QR code are created as one operation. A failure rolls back the database changes and removes a QR file created by that failed operation.
workspaceId,
workspace_id, accessToken, type, and type_id; those are internal or
legacy fields and are never part of the workspace API contract.
Errors
Every error uses the same envelope:X-Biq-Request-Id response header. You
can send your own X-Biq-Request-Id value up to 100 characters for distributed
tracing. Include it when contacting support.
error.details.errors object keyed by field.
Upgrade errors can include current_plan, required_plan, and feature.
Quota errors include current workspace usage details.
Shared API behavior
Authentication is workspace-scoped; see Authentication. Errors use the standard envelope and request IDs described in Errors, and requests are subject to Rate limits.Authorizations
A workspace API key beginning with biqli_.
Body
Destination URL. Biqli normalizes a missing scheme to HTTPS.
3 - 1000"https://example.com/product"
Internal label for the link.
150Caller-controlled identifier, unique within the API key's workspace.
255Public ID of a custom domain available to this workspace. Omit it to use the Biqli default domain.
^biq_dom_[0-9A-HJKMNP-TV-Z]{26}$Requested short-link alias. The configured alias character and length rules apply.
50Whether the link can redirect after it passes safety checks.
Password visitors must enter before redirecting.
250ISO 8601 date and time when the link becomes active.
Future ISO 8601 expiration date and time. It must be later than activates_at.
Ampersand-separated UTM parameters without a leading question mark. Biqli prefixes keys with utm_ when needed.
2000"source=newsletter&medium=email&campaign=summer"
Destination overrides evaluated for matching visitors.
100Destination overrides evaluated for matching visitors.
100Destination overrides evaluated for matching visitors.
100Unique public IDs of folders in this workspace.
100^biq_fld_[0-9A-HJKMNP-TV-Z]{26}$Unique public IDs of tracking pixels in this workspace.
100^biq_pxl_[0-9A-HJKMNP-TV-Z]{26}$Unique public IDs of tags in this workspace.
100^biq_tag_[0-9A-HJKMNP-TV-Z]{26}$Append a Biqli click ID for conversion attribution.
Allow search engines to index the short-link page.
Enable the custom social preview supplied by title, description, and image.
Custom social preview title. Requires proxy=true.
255Custom social preview description. Requires proxy=true.
1000Public HTTPS URL for the custom social preview image. Requires proxy=true. Private and local hosts are rejected.
2048Generate and attach an SVG QR code for this short link.
Use the Biqli app logo or no center logo. Requires create_qr_code=true. The none option is plan-gated.
app, none, null 
