JSPM

  • Created
  • Published
  • Downloads 802
  • Score
    100M100P100Q114082F
  • License MIT

OpenAI / GPT provider for chat completions.

Package Exports

  • @apicity/openai
  • @apicity/openai/zod

Readme

@apicity/openai

npm dependencies TypeScript

OpenAI / GPT provider for chat completions.

Runtime dependencies:

  • zod@^3.24.0 — request schemas attached to every POST endpoint as .schema

Installation

npm install @apicity/openai
# or
pnpm add @apicity/openai

Quick Start

import { createOpenAi } from "@apicity/openai";

const openai = createOpenAi({ apiKey: process.env.OPENAI_API_KEY! });

API Reference

49 endpoints across 11 groups. Each method mirrors an upstream URL path.

audio

POST openai.v1.audio.speech

POST https://api.openai.com/v1/audio/speech

Upstream docs ↗

const res = await openai.v1.audio.speech({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

POST openai.v1.audio.transcriptions

POST https://api.openai.com/v1/audio/transcriptions

Upstream docs ↗

const res = await openai.v1.audio.transcriptions({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

POST openai.v1.audio.translations

POST https://api.openai.com/v1/audio/translations

Upstream docs ↗

const res = await openai.v1.audio.translations({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

batches

GET openai.v1.batches

GET https://api.openai.com/v1/batches/{idOrOpts}

Upstream docs ↗

const res = await openai.v1.batches({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

POST openai.v1.batches

POST https://api.openai.com/v1/batches

Upstream docs ↗

const res = await openai.v1.batches({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

POST openai.v1.batches.cancel

POST https://api.openai.com/v1/batches/{id}/cancel

Upstream docs ↗

const res = await openai.v1.batches.cancel({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

chat

DELETE openai.v1.chat.completions

DELETE https://api.openai.com/v1/chat/completions/{id}

Upstream docs ↗

const res = await openai.v1.chat.completions({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.chat.completions

GET https://api.openai.com/v1/chat/completions/{idOrOpts}

Upstream docs ↗

const res = await openai.v1.chat.completions({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.chat.completions.messages

GET https://api.openai.com/v1/chat/completions/{id}/messages

Upstream docs ↗

const res = await openai.v1.chat.completions.messages({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

POST openai.v1.chat.completions

POST https://api.openai.com/v1/chat/completions/{id}

Upstream docs ↗

const res = await openai.v1.chat.completions({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

embeddings

POST openai.v1.embeddings

POST https://api.openai.com/v1/embeddings

Upstream docs ↗

const res = await openai.v1.embeddings({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

files

DELETE openai.v1.files

DELETE https://api.openai.com/v1/files/{id}

Upstream docs ↗

const res = await openai.v1.files({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.files

GET https://api.openai.com/v1/files/{idOrOpts}

Upstream docs ↗

const res = await openai.v1.files({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.files.content

GET https://api.openai.com/v1/files/{id}/content

Upstream docs ↗

const res = await openai.v1.files.content({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

POST openai.v1.files

POST https://api.openai.com/v1/files

Upstream docs ↗

const res = await openai.v1.files({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

fineTuning

DELETE openai.v1.fineTuning.checkpoints.permissions

DELETE https://api.openai.com/v1/fine_tuning/checkpoints/{checkpoint}/permissions/{permissionId}

Upstream docs ↗

const res = await openai.v1.fineTuning.checkpoints.permissions({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.fineTuning.checkpoints.permissions

GET https://api.openai.com/v1/fine_tuning/checkpoints/{checkpoint}/permissions

Upstream docs ↗

const res = await openai.v1.fineTuning.checkpoints.permissions({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.fineTuning.jobs

GET https://api.openai.com/v1/fine_tuning/jobs/{idOrOpts}

Upstream docs ↗

const res = await openai.v1.fineTuning.jobs({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.fineTuning.jobs.checkpoints

GET https://api.openai.com/v1/fine_tuning/jobs/{id}/checkpoints

Upstream docs ↗

const res = await openai.v1.fineTuning.jobs.checkpoints({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.fineTuning.jobs.events

GET https://api.openai.com/v1/fine_tuning/jobs/{id}/events

Upstream docs ↗

const res = await openai.v1.fineTuning.jobs.events({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

POST openai.v1.fineTuning.checkpoints.permissions

POST https://api.openai.com/v1/fine_tuning/checkpoints/{checkpoint}/permissions

Upstream docs ↗

const res = await openai.v1.fineTuning.checkpoints.permissions({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

POST openai.v1.fineTuning.jobs

POST https://api.openai.com/v1/fine_tuning/jobs

Upstream docs ↗

const res = await openai.v1.fineTuning.jobs({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

POST openai.v1.fineTuning.jobs.cancel

POST https://api.openai.com/v1/fine_tuning/jobs/{id}/cancel

Upstream docs ↗

const res = await openai.v1.fineTuning.jobs.cancel({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

POST openai.v1.fineTuning.jobs.pause

POST https://api.openai.com/v1/fine_tuning/jobs/{id}/pause

Upstream docs ↗

const res = await openai.v1.fineTuning.jobs.pause({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

POST openai.v1.fineTuning.jobs.resume

POST https://api.openai.com/v1/fine_tuning/jobs/{id}/resume

Upstream docs ↗

const res = await openai.v1.fineTuning.jobs.resume({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

images

POST openai.v1.images.edits

POST https://api.openai.com/v1/images/edits

Upstream docs ↗

const res = await openai.v1.images.edits({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

POST openai.v1.images.generations

POST https://api.openai.com/v1/images/generations

Upstream docs ↗

const res = await openai.v1.images.generations({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

POST openai.v1.images.variations

POST https://api.openai.com/v1/images/variations

Upstream docs ↗

const res = await openai.v1.images.variations({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

models

DELETE openai.v1.models

DELETE https://api.openai.com/v1/models/{id}

Upstream docs ↗

const res = await openai.v1.models({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.models

GET https://api.openai.com/v1/models/{id}

Upstream docs ↗

const res = await openai.v1.models({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

moderations

POST openai.v1.moderations

POST https://api.openai.com/v1/moderations

Upstream docs ↗

const res = await openai.v1.moderations({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

organization

GET openai.v1.organization.costs

GET https://api.openai.com/v1/organization/costs

Upstream docs ↗

const res = await openai.v1.organization.costs({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.organization.projects

GET https://api.openai.com/v1/organization/projects/{idOrOpts}

Upstream docs ↗

const res = await openai.v1.organization.projects({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.organization.projects.rateLimits

GET https://api.openai.com/v1/organization/projects/{projectId}/rate_limits

Upstream docs ↗

const res = await openai.v1.organization.projects.rateLimits({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.organization.usage.audioSpeeches

GET https://api.openai.com/v1/organization/usage/audio_speeches

Upstream docs ↗

const res = await openai.v1.organization.usage.audioSpeeches({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.organization.usage.audioTranscriptions

GET https://api.openai.com/v1/organization/usage/audio_transcriptions

Upstream docs ↗

const res = await openai.v1.organization.usage.audioTranscriptions({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.organization.usage.codeInterpreterSessions

GET https://api.openai.com/v1/organization/usage/code_interpreter_sessions

Upstream docs ↗

const res = await openai.v1.organization.usage.codeInterpreterSessions({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.organization.usage.completions

GET https://api.openai.com/v1/organization/usage/completions

Upstream docs ↗

const res = await openai.v1.organization.usage.completions({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.organization.usage.embeddings

GET https://api.openai.com/v1/organization/usage/embeddings

Upstream docs ↗

const res = await openai.v1.organization.usage.embeddings({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.organization.usage.images

GET https://api.openai.com/v1/organization/usage/images

Upstream docs ↗

const res = await openai.v1.organization.usage.images({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.organization.usage.moderations

GET https://api.openai.com/v1/organization/usage/moderations

Upstream docs ↗

const res = await openai.v1.organization.usage.moderations({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.organization.usage.vectorStores

GET https://api.openai.com/v1/organization/usage/vector_stores

Upstream docs ↗

const res = await openai.v1.organization.usage.vectorStores({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

responses

DELETE openai.v1.responses

DELETE https://api.openai.com/v1/responses/{id}

Upstream docs ↗

const res = await openai.v1.responses({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.responses

GET https://api.openai.com/v1/responses/{id}

Upstream docs ↗

const res = await openai.v1.responses({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

GET openai.v1.responses.inputItems

GET https://api.openai.com/v1/responses/{id}/input_items

Upstream docs ↗

const res = await openai.v1.responses.inputItems({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

POST openai.v1.responses

POST https://api.openai.com/v1/responses

Upstream docs ↗

const res = await openai.v1.responses({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

POST openai.v1.responses.cancel

POST https://api.openai.com/v1/responses/{id}/cancel

Upstream docs ↗

const res = await openai.v1.responses.cancel({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

POST openai.v1.responses.compact

POST https://api.openai.com/v1/responses/compact

Upstream docs ↗

const res = await openai.v1.responses.compact({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

POST openai.v1.responses.inputTokens

POST https://api.openai.com/v1/responses/input_tokens

Upstream docs ↗

const res = await openai.v1.responses.inputTokens({ /* ... */ });

Source: packages/provider/openai/src/openai.ts

Middleware

import { createOpenAi, withRetry } from "@apicity/openai";

const openai = createOpenAi({ apiKey: process.env.OPENAI_API_KEY! });
const models = withRetry(openai.get.v1.models, { retries: 3 });

Part of the apicity monorepo.

License

MIT — see LICENSE.