Introduction The Shorten.rest API allows you to programmatically create short URLs (an 'alias') for longer URL (a 'destination').
Bring your own key. This API needs your own Shorten.REST API Documentation key - get one from the provider, add it once below, and the proxy injects it on every call. Your OmniStream plan covers the unified SDK, key storage, and proxy - the provider's own rate limits still apply to your key.
This is a community listing. If you own this API, you can request ownership.
npm install omnistream-sdkimport { OmniClient } from "omnistream-sdk";
const omni = new OmniClient({ token: process.env.OMNI_KEY! });
// One key reaches every API on the marketplace.
const data = await omni.call("shorten/GetAlias");One install, one key - the same client calls every API on the marketplace.
domain which alias belongs to (string without `http/https` or `/`)
alias value (without `/` at the beginning)
Get alias
Create alias
Update alias
Delete alias
Get aliases by domain
Get clicks
/**
* ShortenRESTAPIDocumentation - generated by OmniStream from Shorten.REST API Documentation's OpenAPI spec.
* One typed method per endpoint. A single Omni key reaches the API.
*/
const DEFAULT_BASE = "https://grid.skinvaults.online/v1/proxy/shorten";
export class ShortenRESTAPIDocumentationError extends Error {
status: number;
code?: string;
constructor(status: number, code: string | undefined, message?: string) {
super(message || `ShortenRESTAPIDocumentation error ${status}`);
this.name = "ShortenRESTAPIDocumentationError";
this.status = status;
this.code = code;
}
}
export interface ShortenRESTAPIDocumentationOptions {
baseUrl?: string;
fetch?: typeof fetch;
timeoutMs?: number;
}
export class ShortenRESTAPIDocumentation {
/** @param token Your OmniStream key (one key for every API). */
constructor(private token: string, private opts: ShortenRESTAPIDocumentationOptions = {}) {
if (!token) throw new Error("ShortenRESTAPIDocumentation: token is required");
}
rateLimit: { remainingMinute?: number; remainingDay?: number } | null = null;
private async _request(method: string, path: string, { params, body }: { params?: Record<string, unknown>; body?: unknown } = {}): Promise<any> {
const f = this.opts.fetch ?? globalThis.fetch;
const url = new URL((this.opts.baseUrl ?? DEFAULT_BASE).replace(/\/+$/, "") + path);
if (params) for (const [k, v] of Object.entries(params)) if (v != null) url.searchParams.set(k, String(v));
const headers: Record<string, string> = { "x-omni-key": this.token };
if (body !== undefined) headers["content-type"] = "application/json";
const res = await f(url, { method, headers, body: body !== undefined ? JSON.stringify(body) : undefined });
this.rateLimit = {
remainingMinute: Number(res.headers.get("x-ratelimit-remaining-minute")) || undefined,
remainingDay: Number(res.headers.get("x-ratelimit-remaining-day")) || undefined,
};
const data = await res.json().catch(() => ({}));
if (!res.ok) throw new ShortenRESTAPIDocumentationError(res.status, data?.error?.code, data?.error?.message);
return data.data ?? data;
}
/** Get alias */
getAlias(params: { "aliasName": string; "domainName"?: string }): Promise<any> {
return this._request("GET", "/aliases", { params });
}
/** Create alias */
createAlias(body: unknown, params: { "domainName"?: string; "aliasName"?: string }): Promise<any> {
return this._request("POST", "/aliases", { body, params });
}
/** Update alias */
updateAlias(body: unknown, params: { "aliasName": string; "domainName"?: string }): Promise<any> {
return this._request("PUT", "/aliases", { body, params });
}
/** Delete alias */
deleteAlias(params: { "aliasName": string; "domainName"?: string }): Promise<any> {
return this._request("DELETE", "/aliases", { params });
}
/** Get aliases by domain */
getAliases(params: { "domainName"?: string; "continueFrom"?: string; "limit"?: number }): Promise<any> {
return this._request("GET", "/aliases/all", { params });
}
/** Get clicks */
getClicks(params: { "continueFrom"?: string; "limit"?: number }): Promise<any> {
return this._request("GET", "/clicks", { params });
}
/** Get clicks statistics */
getStatistics(body: unknown): Promise<any> {
return this._request("POST", "/clicks/pg", { body });
}
}
export default ShortenRESTAPIDocumentation;
No reviews yet. Be the first to rate this API.
Yes. Shorten.REST API Documentation uses apiKey authentication, so you bring your own key from the provider. You store it once on OmniStream and the proxy injects it into every call, so your code only ever sends your Omni key.
Introduction The Shorten.rest API allows you to programmatically create short URLs (an 'alias') for longer URL (a 'destination'). It exposes 7 endpoints over GET, POST, PUT, DELETE, including GET /aliases, POST /aliases, PUT /aliases.
Install the OmniStream SDK for your language and call Shorten.REST API Documentation through it. The client is generated from this API's OpenAPI spec, so parameters and responses are fully typed, and the same client also calls every other API in the marketplace.
You can start on the free plan. OmniStream charges for the unified SDK, key storage and proxy rather than for Shorten.REST API Documentation itself, and Shorten.REST API Documentation's own rate limits still apply to your provider key.
QuickChart: An API to generate charts and QR codes using QuickChart services.
Get clicks statistics