A simple HTTP Request & Response Service written in Go.
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("httpbin-go/getapi");One install, one key - the same client calls every API on the marketplace.
Swagger UI index
Echo request data
Echo request data
Echo request data
Echo request data
Echo request data
Decode base64 content as text
/**
* httpbingo - generated by OmniStream from httpbin-go's OpenAPI spec.
* One typed method per endpoint. A single Omni key reaches the API.
*/
const DEFAULT_BASE = "https://grid.skinvaults.online/v1/proxy/httpbin-go";
export class httpbingoError extends Error {
status: number;
code?: string;
constructor(status: number, code: string | undefined, message?: string) {
super(message || `httpbingo error ${status}`);
this.name = "httpbingoError";
this.status = status;
this.code = code;
}
}
export interface httpbingoOptions {
baseUrl?: string;
fetch?: typeof fetch;
timeoutMs?: number;
}
export class httpbingo {
/** @param token Your OmniStream key (one key for every API). */
constructor(private token: string, private opts: httpbingoOptions = {}) {
if (!token) throw new Error("httpbingo: 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 httpbingoError(res.status, data?.error?.code, data?.error?.message);
return data.data ?? data;
}
/** Swagger UI index */
getapi(): Promise<any> {
return this._request("GET", "/", {});
}
/** Echo request data */
getanythingPath(params: { "path": string }): Promise<any> {
return this._request("GET", "/anything/{path}", { params });
}
/** Echo request data */
postanythingPath(body: unknown, params: { "path": string }): Promise<any> {
return this._request("POST", "/anything/{path}", { body, params });
}
/** Echo request data */
putanythingPath(body: unknown, params: { "path": string }): Promise<any> {
return this._request("PUT", "/anything/{path}", { body, params });
}
/** Echo request data */
patchanythingPath(body: unknown, params: { "path": string }): Promise<any> {
return this._request("PATCH", "/anything/{path}", { body, params });
}
/** Echo request data */
deleteanythingPath(params: { "path": string }): Promise<any> {
return this._request("DELETE", "/anything/{path}", { params });
}
/** Decode base64 content as text */
getbase64Value(): Promise<any> {
return this._request("GET", "/base64/{value}", {});
}
/** Return a brotli-compressed echo response */
getbrotli(): Promise<any> {
return this._request("GET", "/brotli", {});
}
/** Return random bytes */
getbytesCount(params: { "count": number }): Promise<any> {
return this._request("GET", "/bytes/{count}", { params });
}
/** Delay before responding */
getconndelaySeconds(params: { "seconds": number }): Promise<any> {
return this._request("GET", "/conndelay/{seconds}", { params });
}
/** Return a deflate-compressed echo response */
getdeflate(): Promise<any> {
return this._request("GET", "/deflate", {});
}
/** Delay the response */
getdelaySeconds(params: { "seconds": number }): Promise<any> {
return this._request("GET", "/delay/{seconds}", { params });
}
/** Perform a DNS-over-HTTPS query */
getdnsQuery(): Promise<any> {
return this._request("GET", "/dns-query", {});
}
/** Proxy a wire-format DNS message */
postdnsQuery(): Promise<any> {
return this._request("POST", "/dns-query", { });
}
/** Return supported features */
getfeaturesJson(): Promise<any> {
return this._request("GET", "/features.json", {});
}
/** Inspect request metadata */
getget(): Promise<any> {
return this._request("GET", "/get", {});
}
/** Return a gzip-compressed echo response */
getgzip(): Promise<any> {
return this._request("GET", "/gzip", {});
}
/** Return request headers */
getheaders(): Promise<any> {
return this._request("GET", "/headers", {});
}
/** Health check */
gethealthz(): Promise<any> {
return this._request("GET", "/healthz", {});
}
/** Return caller IP information */
getip(): Promise<any> {
return this._request("GET", "/ip", {});
}
/** Inspect proxy anonymity and IP leaks */
getjudge(): Promise<any> {
return this._request("GET", "/judge", {});
}
/** Inspect proxy anonymity and IP leaks */
getjudgeJson(): Promise<any> {
return this._request("GET", "/judge.json", {});
}
/** Debug observed proxy headers */
getjudgeHeaders(): Promise<any> {
return this._request("GET", "/judge/headers", {});
}
/** Return the observed origin IP */
getjudgeIp(): Promise<any> {
return this._request("GET", "/judge/ip", {});
}
/** Prometheus metrics */
getmetrics(): Promise<any> {
return this._request("GET", "/metrics", {});
}
/** OpenAPI document */
getopenapiJson(): Promise<any> {
return this._request("GET", "/openapi.json", {});
}
/** Echo request data */
postpost(body: unknown, params: { "path": string }): Promise<any> {
return this._request("POST", "/post", { body, params });
}
/** Return protocol diagnostics */
getprotocols(): Promise<any> {
return this._request("GET", "/protocols", {});
}
/** Delay before responding */
getreadtimeoutSeconds(params: { "seconds": number }): Promise<any> {
return this._request("GET", "/readtimeout/{seconds}", { params });
}
/** Return custom response headers */
getresponseHeaders(): Promise<any> {
return this._request("GET", "/response-headers", {});
}
/** Return the requested status code */
getstatusCode(params: { "code": number }): Promise<any> {
return this._request("GET", "/status/{code}", { params });
}
/** Stream newline-delimited JSON */
getstreamCount(params: { "count": number }): Promise<any> {
return this._request("GET", "/stream/{count}", { params });
}
/** Return request user agent */
getuserAgent(): Promise<any> {
return this._request("GET", "/user-agent", {});
}
/** Generate a UUID */
getuuid(): Promise<any> {
return this._request("GET", "/uuid", {});
}
/** Upgrade to a WebSocket echo stream */
getwsEcho(): Promise<any> {
return this._request("GET", "/ws/echo", {});
}
/** Return a zstd-compressed echo response */
getzstd(): Promise<any> {
return this._request("GET", "/zstd", {});
}
}
export default httpbingo;
No reviews yet. Be the first to rate this API.
No. httpbin-go is included with your Omni key, so a single OmniStream key is enough to start calling it. There is no separate signup with the provider and no second key to manage.
A simple HTTP Request & Response Service written in Go. It exposes 36 endpoints over GET, POST, PUT, PATCH, DELETE, including GET /, GET /anything/{path}, POST /anything/{path}.
Install the OmniStream SDK for your language and call httpbin-go 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 httpbin-go itself.
QuickChart: An API to generate charts and QR codes using QuickChart services.
Return a brotli-compressed echo response
Return random bytes
Delay before responding
Return a deflate-compressed echo response
Delay the response
Perform a DNS-over-HTTPS query
Proxy a wire-format DNS message
Return supported features
Inspect request metadata
Return a gzip-compressed echo response
Return request headers
Health check
Return caller IP information
Inspect proxy anonymity and IP leaks
Inspect proxy anonymity and IP leaks
Debug observed proxy headers
Return the observed origin IP
Prometheus metrics
OpenAPI document
Echo request data
Return protocol diagnostics
Delay before responding
Return custom response headers
Return the requested status code
Stream newline-delimited JSON
Return request user agent
Generate a UUID
Upgrade to a WebSocket echo stream
Return a zstd-compressed echo response