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
Return random bytes
/**
* 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 });
}
/** Return random bytes */
getbytesCount(params: { "count": number }): Promise<any> {
return this._request("GET", "/bytes/{count}", { params });
}
/** 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", { });
}
/** Inspect request metadata */
getget(): Promise<any> {
return this._request("GET", "/get", {});
}
/** 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", {});
}
/** Prometheus metrics */
getmetrics(): Promise<any> {
return this._request("GET", "/metrics", {});
}
/** OpenAPI document */
getopenapiJson(): Promise<any> {
return this._request("GET", "/openapi.json", {});
}
/** Return protocol diagnostics */
getprotocols(): Promise<any> {
return this._request("GET", "/protocols", {});
}
/** 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", {});
}
}
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 23 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.
Delay the response
Perform a DNS-over-HTTPS query
Proxy a wire-format DNS message
Inspect request metadata
Return request headers
Health check
Return caller IP information
Prometheus metrics
OpenAPI document
Return protocol diagnostics
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