Getting Started
Go from zero to a live short link in under five minutes.
Tip
New to 10x? This guide walks you through account setup, handle creation, and your first link.
Key concepts
| Concept | What it means |
|---|---|
| Account | Your login identity — one email, one account |
| Handle | A namespace you own (e.g., acme). All your links, campaigns, files, and pages live under a handle |
| Slug | The short path after your handle (e.g., acme.10x.in/launch) |
| Public URL | The live link visitors see: https://{handle}.{PUBLIC_DOMAIN}/{slug} |
One account can own multiple handles (e.g., one for your brand, one for a side project). Each handle has its own links, analytics, and collaborators.
Set up your account
Sign up
Open
https://app.{PUBLIC_DOMAIN}and sign up with your email. Confirm the verification code sent to your inbox.Create a handle
Pick a short, memorable name (e.g.,
acme). This becomes your subdomain:acme.{PUBLIC_DOMAIN}.Create your first link
Navigate to Links and click Create Link. Enter a destination URL and a slug (e.g.,
launch).Verify
Open
https://acme.{PUBLIC_DOMAIN}/launchin an incognito window to confirm the redirect works.
Sign up
Request
curl -sS -X POST "https://api.10x.in/v2/auth/signup" \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com", "password": "your-password"}'Body
{
"email": "you@example.com",
"password": "your-password"
}You will receive a verification code via email.
Confirm signup
Request
curl -sS -X POST "https://api.10x.in/v2/auth/signup/confirm" \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com", "confirmationCode": "123456"}'Body
{
"email": "you@example.com",
"confirmationCode": "123456"
}Log in
Request
curl -sS -X POST "https://api.10x.in/v2/auth/login" \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com", "password": "your-password"}'Body
{
"email": "you@example.com",
"password": "your-password"
}Returns an access token (JWT). Use it in subsequent requests:
Authorization: Bearer <access-token>
Create a handle
Request
curl -sS -X POST "https://api.10x.in/v2/handles" \
-H "Authorization: Bearer <access-token>" \
-H "Content-Type: application/json" \
-d '{"handle": "acme"}'Body
{
"handle": "acme"
}Returns 201 with the new handle details.
Create your first link
Request
curl -sS -X PUT "https://api.10x.in/v2/handles/acme/links/launch" \
-H "Authorization: Bearer <access-token>" \
-H "Content-Type: application/json" \
-d '{"destinationUrl": "https://example.com/launch", "title": "Product Launch"}'Body
{
"destinationUrl": "https://example.com/launch",
"title": "Product Launch"
}Your link is now live at https://acme.{PUBLIC_DOMAIN}/launch.
What you should have at the end
✓ A confirmed account with a valid JWT
✓ At least one handle
✓ At least one live link that redirects to your destination
If anything fails, check Troubleshooting and Support or run through the Troubleshooting Decision Trees.
Common errors
| Code | Error | Cause |
|---|---|---|
| 400 | invalid_handle | Handle name does not match allowed format (lowercase alphanumeric, hyphens, 3-30 chars) |
| 409 | conflict | Handle name is already taken |
| 401 | invalid_token | JWT is malformed or expired — log in again |
| 400 | invalid_destination_url | Destination URL is not a valid HTTP(S) URL |
Next steps
Short Links
Create and manage more links
API Tokens
Set up tokens for programmatic access
Custom Domains
Run links on your own domain
Plans and Quotas
Understand plan limits