merge-gateway-sdk
v0.2.0
Published
TypeScript SDK for the Merge Gateway API
Maintainers
Readme
merge-gateway-sdk
TypeScript SDK for the Merge Gateway API.
Installation
npm install merge-gateway-sdkQuick start
import { MergeGateway } from "merge-gateway-sdk";
const client = new MergeGateway({ apiKey: "mg_..." });Usage
Responses
// Non-streaming
const response = await client.responses.create({
model: "openai/gpt-4o",
input: [{ type: "message", role: "user", content: "Tell me a bedtime story about an otter." }],
});
console.log(response.output[0].content[0]);
// Streaming
const stream = await client.responses.create({
model: "openai/gpt-4o",
input: [{ type: "message", role: "user", content: "Hello" }],
stream: true,
});
for await (const event of stream) {
console.log(event);
}Models
// List models (with optional pagination)
const models = await client.models.list();
for (const m of models.data) {
console.log(m.id, m.display_name);
}
// Filter by provider
const openaiModels = await client.models.list({ provider: "openai" });
// Retrieve a specific model
const model = await client.models.retrieve("openai/gpt-4o");Embeddings
const result = await client.embeddings.create({
model: "openai/text-embedding-3-small",
input: "The food was delicious",
encoding_format: "float",
});
console.log(result.data[0].embedding);Tags
const tags = await client.tags.list();
for (const tag of tags.data) {
console.log(tag.tag_key, tag.tag_value);
}Error handling
import { MergeGateway, AuthenticationError, RateLimitError } from "merge-gateway-sdk";
try {
const response = await client.responses.create({ model: "openai/gpt-4o", input: "Hi" });
} catch (e) {
if (e instanceof AuthenticationError) {
console.log("Check your API key");
} else if (e instanceof RateLimitError) {
console.log("Slow down!");
}
}Publishing to npm
npm run build
npm publish