6 min readAgencies

White-Label URL Shorteners for Agencies: Client Setup

How an agency runs white-label short links for clients: workspaces, roles, DNS, branding, billing and reporting, and what Elido's reseller API does today

Ana Kowalska
Marketing solutions engineering

An agency needs more than a logo on a dashboard. You need a clean wall between clients, a way for client staff to log in without seeing each other, DNS you can repeat for the twentieth client, and an answer to "who sends the invoice?" This guide covers that operating side.

The general question of what white-label means, and how vendors list it, lives in the white-label URL shorteners guide. I don't repeat it here. Everything about Elido below was checked against the code on 2026-10-24, and where something doesn't exist I say so.

One Workspace Per Client

Don't put clients in a shared workspace. They'd see each other's links and analytics, and you couldn't hand one of them an export without cleaning it first. The pattern that works is a parent workspace for your own team and one workspace per client.

On Elido, any signed-in user can create a workspace and becomes its owner, so you create each client workspace yourself. The reseller API then records the relationship. You register a reseller account on your parent workspace with POST /v1/workspaces/{id}/reseller (company name, contact email, optional domain and branding config). You link a client with POST /v1/workspaces/{id}/reseller/workspaces, passing the client's workspace_id and an internal label the client never sees. There are list and remove endpoints too.

Be clear about what that is. Linking records an association. It doesn't create the workspace, move billing, or roll up usage. It's a registry of which client workspaces belong to your agency.

One reseller parent workspace for the agency branching into three isolated client workspaces, each with its own custom domain and branding, all resolving through the shared Elido edge

Roles for Your Team and Client Staff

Every workspace has members with one of four roles: owner, admin, editor or viewer. Each role maps to a permission set, and the API enforces permissions per route. Branding and reseller management have their own permissions, so an editor can't change a client's branding by accident.

A sensible split:

  • You and your account lead: owner or admin on every client workspace.
  • Client marketers who build links: editor.
  • Client stakeholders who only read reports: viewer.

You invite people by email from the workspace, and API keys are bound to a workspace and a role, so a key you hand a client's developer can't reach another client. Single sign-on and SCIM exist per workspace, which matters for enterprise clients; see SCIM and SSO.

Onboarding One Client

Run the same sequence every time. It's scriptable, and the dashboard path is identical.

Five-step reseller setup flow from enabling reseller on the agency workspace, linking a client workspace, configuring client DNS, setting per-workspace branding, to the client logging in at their own portal

1. Register once, link per client. Register the reseller account, then create the client workspace and link it:

curl -X POST https://api.elido.app/v1/workspaces/$AGENCY_WS/reseller/workspaces \
  -H "Authorization: Bearer $ELIDO_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"workspace_id": 99201, "label": "Client: TechCorp EMEA"}'

2. Point the client's domain. In Settings, add the hostname. The dashboard returns two records for the client's DNS panel:

_elido-verify.techcorp-emea.example.  TXT    "verify=<token>"
go.techcorp-emea.example.             CNAME  edge.elido.me.

A background worker re-checks DNS every 30 seconds for up to 24 hours, then the certificate is issued on the first request. For a wildcard, the CNAME is *.example.com and the TXT sits on the parent. The custom domains guide covers CAA records and propagation, and the docs list it under custom domains, from the Starter plan.

3. Brand the workspace. One call sets the name, logo, colour, email sender name and portal hostname:

curl -X PUT https://api.elido.app/v1/workspaces/99201/branding \
  -H "Authorization: Bearer $ELIDO_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"brand_name":"TechCorp Links","primary_color":"#0a2463",
       "email_from_name":"TechCorp Links",
       "portal_hostname":"links.techcorp-emea.example","enabled":true}'

Here's the catch that surprises agencies. The plan check reads the plan of the workspace you're branding, not your parent. A client workspace on Free or a lower paid tier gets 402 Payment Required. Business is per client workspace.

4. Invite the client. Add their staff as editors or viewers and keep yourself as owner. The emails they receive carry your brand name, colour, logo and sender display name. The sending address is still Elido's, which I'd tell clients up front.

Billing: Be Honest With Clients

This is where white-label resale breaks down, so I'll give you the full picture instead of a sales answer.

Elido bills per workspace. The reseller API doesn't produce a consolidated invoice, a wholesale rate or a per-client statement. So you buy each client workspace's plan, or let the client subscribe, and invoice your own markup outside the product. If you want one bill covering twenty clients, the product can't do that yet. I've put it on the implementation backlog, and I'd rather you know now than discover it at month-end.

Two practical consequences. First, price your service as a managed service (setup, reporting, support) rather than as a resold seat, because the line-item cost to you is visible per workspace. Second, work out your cost per client from the pricing page for the plan each client needs. Branding forces Business on every client you want fully branded, and that dominates the math more than click volume does.

Reporting Per Client

Analytics are scoped to the workspace, so a viewer sees only that client's clicks. Through the API, a key tied to a workspace can query that workspace's analytics, and there are async CSV export jobs for bigger pulls. That's enough for a monthly client report.

What's missing is a cross-client view. An agency-wide summary today means one query per workspace, stitched together in your own spreadsheet or BI tool. Plan for that if you report to your own leadership.

EU Clients and Data Processing

When you resell to EU clients, they're controllers, you're a processor, and the platform is a sub-processor under GDPR Article 28. Your client contract needs a DPA that covers click data as personal data and names your sub-processors. Take the sub-processor list and DPA terms from Elido's trust page rather than from this blog, since they change. I won't make residency promises here. The GDPR post has the article-by-article detail, and the EU data residency post covers what a DPO asks.

Moving a Client Book Over

Moving clients from another tool has three tracks: links, DNS and communication.

Export every client's links first, with slug, destination, domain and tags, and flag links printed on paper or embedded where you can't edit them. Import with POST /v1/workspaces/{id}/links/bulk before touching DNS, and test a few redirects. Lower the CNAME TTL to 300 seconds at least 48 hours ahead, cut over at a quiet hour, and keep the old account for about two weeks. Tell clients a week ahead.

Click history doesn't migrate between tools, so export reports for each client before the old account closes. The Bitly migration playbook has the Bitly specifics.

What Other Tools Show for Client Separation

Public pricing pages say little about agency features. Read on 2026-10-24:

VendorWhat the pricing page lists for separating clients
RebrandlyWorkspaces: 1 on Free and Essentials, 2+ Professional, 5+ Growth
Short.ioEnterprise: user groups with access to different sets of domains
BitlyNot checked on the page
DubNot checked on the page
ElidoWorkspace per client, roles, reseller registry; no consolidated billing

Sources: Rebrandly, Short.io, Bitly and Dub, accessed 2026-10-24. Absence on a pricing page isn't proof of absence in the product, so ask each vendor to show you the client-onboarding flow in a trial.

Frequently asked questions

How should an agency separate clients in a link shortener?

Give each client its own workspace, so links, domains, analytics and members stay isolated, and keep your own team in a parent workspace. A single shared workspace means clients can see each other's links and data. On Elido each workspace has its own members and roles, and the reseller API links client workspaces to your agency account.

Does Elido bill my clients for me?

No. Billing in Elido is per workspace, and the reseller API links workspaces but doesn't produce consolidated invoices or client-facing statements. Agencies invoice their own clients and use per-workspace analytics to justify the numbers. Consolidated reseller billing is on our implementation backlog, so ask before you build a resale model on it.

Can each client log in at their own hostname?

Yes, on the Business plan. A workspace can set a portal hostname such as links.client.com, and the dashboard resolves that host to the client's workspace. The client workspace itself must be on Business, because the branding endpoint checks the plan of the workspace being branded and returns 402 otherwise.

What roles can I give client staff?

Workspace roles are owner, admin, editor and viewer, each backed by a permission set. A client reviewer who only needs reports is a viewer. A client marketer who creates links is an editor. Invite them from the workspace, and keep yourself as owner so you can still manage domains and branding.

How do I report per-client results?

Analytics are scoped to the workspace, so each client sees only its own clicks, and you can pull the same numbers through the API with a key tied to that workspace. There's no cross-client rollup view yet, so an agency-wide report means one query per client workspace.

What happens to client links if I leave the platform?

Short links keep working only while the domain's DNS points at the platform. Before you move, export the links, lower the CNAME TTL, import into the new tool, then cut DNS over. Click history doesn't move between tools, so export reports for your clients first and keep the old account open during the overlap.

Try Elido

Paste a URL, get a working short link

No signup. Link lives for 30 days. Sign up to keep it forever.

No signup needed. Sign up free for 50 links a month.

Try Elido

EU-hosted URL shortener with custom domains, deep analytics, and an open API. Free tier - no credit card.

Tags
white label url shortener
agency url shortener
reseller url shortener
client workspaces
white label link management
agency link reporting

Continue reading