ZipZy Developer Platform

Build on the ZipZy platform.

Powerful REST APIs for developers to integrate URL shortening, QR codes, analytics, messaging and future ZipZy products.

Base URL
api.zipzy.in
Auth
Bearer key
Format
JSON
POST /v1/links
curl -X POST https://api.zipzy.in/v1/links \
  -H "Authorization: Bearer $ZIPZY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "destination": "https://example.com/very/long/path" }'
Response201 Created
{
"id": "lnk_abc123",
"shortUrl": "https://zpzy.in/abc123",
"destination": "https://example.com/very/long/path",
"createdAt": "2026-07-15T09:24:11Z"
}
Example request and response. Illustrative values.

Developer experience

The things you check for before you commit to an API.

No surprises in the contract: predictable REST, JSON both ways, scoped keys, clear limits and a version that won't move under you.

  • REST API

    Predictable resources, standard verbs, standard status codes.

  • JSON everywhere

    JSON request and response bodies, UTF-8, no surprises.

  • Fast responses

    Served from the edge, with low latency on read endpoints.

  • OAuth

    OAuth 2.0 for third-party apps is on the roadmap.

  • API keys

    Scoped, revocable keys with separate test and live modes.

  • Rate limits

    Clear per-key limits, with headers on every response.

  • Versioning

    Date-based versions so upgrades never break you silently.

  • SDKs

    Typed clients so you write app code, not fetch boilerplate.

  • Webhooks

    Signed, retried event delivery for anything asynchronous.

  • Sandbox

    A test mode that mirrors production without touching real data.

Quick start

Your first request, in your language.

Create a short link with a single call. Switch languages to see the same request in the stack you actually use.

POST /v1/links
curl -X POST https://api.zipzy.in/v1/links \
  -H "Authorization: Bearer $ZIPZY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "destination": "https://example.com/very/long/url" }'

Every snippet hits the same endpoint. See the full reference.

Authentication

One header. Keys you can scope and revoke.

Authentication is a bearer token on every request. Keys are scoped per environment, so a leaked sandbox key can't touch production, and any key can be rotated without downtime.

  • API keys

    Create scoped keys per environment. Rotate or revoke them without downtime.

  • Bearer tokens

    Every request carries the key in an Authorization: Bearer header over HTTPS.

  • OAuth 2.0Planned

    Authorisation-code flow for apps acting on behalf of other ZipZy accounts.

  • Security

    TLS only, signed webhooks, and secrets shown once at creation time.

Authentication reference
Authorization
# Every request carries your key as a bearer token, over TLS.
curl https://api.zipzy.in/v1/links \
  -H "Authorization: Bearer $ZIPZY_API_KEY"

# Keys are server-side only. Never ship one in a browser
# or mobile bundle — proxy through your own backend instead.

Treat an API key like a password. If one is exposed, revoke it in the dashboard and issue a new one — old keys stop working immediately.

Webhooks

Real-time events, pushed to you.

Instead of polling for changes, register an endpoint and receive an event the moment something happens. Deliveries are signed so you can verify them, and retried with backoff if your endpoint blips.

  • link.created

    A short link was created, by anyone in the workspace.

  • qr.generated

    A QR code was generated and is ready to serve.

  • link.clicked

    A link was clicked or a code scanned, with full context.

  • campaign.updated

    A campaign's links or settings changed.

Webhook reference
POST to your endpoint
{
  "id": "evt_3a91f0",
  "type": "link.clicked",
  "createdAt": "2026-07-15T09:24:11Z",
  "data": {
    "linkId": "lnk_9f2c8a1b",
    "shortUrl": "https://zpzy.in/abc123",
    "country": "IN",
    "city": "Bengaluru",
    "device": "mobile",
    "referrer": "instagram.com"
  }
}

Verify the signature header against your signing secret before trusting a payload.

SDKs

Typed clients, so the compiler catches the typos.

Prefer a library to raw HTTP? Official SDKs wrap the API in idiomatic types for each language. Where one isn't ready yet, the OpenAPI spec generates a client and the REST API works from anywhere.

  • Node.js
  • PHP
  • Python
  • JavaSoon
  • GoSoon
  • .NETSoon
  • RubySoon

Why ZipZy

Built the way you'd want an API built.

The difference between an API you enjoy and one you fight is rarely the feature list — it's whether the contract is predictable and the docs assume you have other work to do.

ZipZy APIs compared with a typical ad-hoc API
CapabilityZipZy
RESTResource-oriented, standard verbsTraditional: Ad-hoc RPC endpoints
JSONJSON in and out, everywhereTraditional: Mixed formats
SDKsTyped clients, more comingTraditional: Community-maintained, if any
WebhooksSigned and retriedTraditional: Polling, or none
AuthenticationScoped keys, OAuth plannedTraditional: A single shared key
DocumentationExamples per languageTraditional: A reference dump
ExamplesCopy-paste, runnableTraditional: Left as an exercise
VersioningDate-based, non-breakingTraditional: Breaking changes in place

"Traditional APIs" here describes the common pattern of an ad-hoc internal API exposed to third parties — not any specific provider.

FAQ

Developer questions.

How do I get an API key?
Sign in to ZipZy Dashboard and create a key from the developer settings. Keys come in test and live modes, and you can scope each one to the products it needs. The key is shown once at creation, so store it somewhere safe.
Is the ZipZy API free to use?
API access is included on the plans that list it, with request limits that scale by plan. There is a test mode you can use while you build. See the pricing page for the per-plan request limits.
What can I build with the ZipZy API?
Anything the dashboard does: create and manage short links, generate dynamic QR codes, build and publish landing pages, and read analytics. You can mint a link per order, a code per asset, or a page per campaign from your own systems.
How does authentication work?
Every request carries your API key as a bearer token in the Authorization header, over HTTPS. OAuth 2.0 for third-party apps acting on behalf of other accounts is on the roadmap; today, scoped API keys are the mechanism.
What are the rate limits?
Limits are per key and depend on your plan. Every response includes headers describing your current limit, remaining quota and reset time, so your client can back off cleanly rather than guessing.
Do you send webhooks?
Yes. Subscribe to events like link.created, qr.generated, link.clicked and campaign.updated. Deliveries are signed so you can verify them, and failed deliveries are retried with backoff.
How is the API versioned?
The API uses date-based versions. Your integration is pinned to the version it was built against, so we can ship improvements without breaking your code. Upgrading is an explicit, documented step.
Which SDKs are available?
Node.js, PHP and Python are available today, with Java, Go, .NET and Ruby in progress. If your language isn't covered yet, the API is plain REST with an OpenAPI spec, so you can generate a client.
Is there a sandbox or test mode?
Yes. Test-mode keys hit the same endpoints but operate on isolated test data, so you can build and run your integration tests without creating real links or affecting analytics.
Where is the full documentation?
The complete reference — authentication, every endpoint, errors, pagination, webhooks and SDK guides — lives in the docs. This page is the overview; the docs are where you build.

Start building with ZipZy APIs.

One key, one base URL, and a platform that keeps adding products. Grab a key and make your first request in minutes.