TypeScript SDK
Signatures and examples for the elektric-ai package.
#Install
npm install elektric-ai#Client
import { Elektric } from "elektric-ai";
const elektric = new Elektric({ apiKey: process.env.ELEKTRIC_API_KEY! });#Methods
#chat / chat.stream
ChatRequest: message/messages; optional userId, conversationId, tools, signal.
elektric.chat(options): Promise<ChatResponse>| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | ChatRequest: message/messages; optional userId, conversationId, tools, signal. |
Returns: ChatResponse / stream events. Errors: standard errors plus resource-specific not-found/expired codes.
#conversations.get/list/delete
conversationId; list requires userId; optional cursor and limits.
elektric.conversations.get(input)| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | conversationId; list requires userId; optional cursor and limits. |
Returns: Conversation / list / void. Errors: standard errors plus resource-specific not-found/expired codes.
#memory.list/get/update/delete
userId and memoryId; update requires summary.
elektric.memory.update({ userId, memoryId, summary })| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | userId and memoryId; update requires summary. |
Returns: Memory / list / void. Errors: standard errors plus resource-specific not-found/expired codes.
#knowledge.add/list/get/delete
file; optional name/mediaType; get/delete use sourceId.
elektric.knowledge.add(input)| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | file; optional name/mediaType; get/delete use sourceId. |
Returns: KnowledgeSource / list / void. Errors: standard errors plus resource-specific not-found/expired codes.
#files.upload/get/delete
file; optional mediaType/filename; get/delete use fileId.
elektric.files.upload(input)| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | file; optional mediaType/filename; get/delete use fileId. |
Returns: ElektricFile / void. Errors: standard errors plus resource-specific not-found/expired codes.
#images.generate/edit
Generate requires prompt; edit requires image and instruction.
elektric.images.generate({ prompt, size?, format?, signal? })| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | Generate requires prompt; edit requires image and instruction. |
Returns: Image response. Errors: standard errors plus resource-specific not-found/expired codes.
#audio.transcribe/speech
TranscriptionRequest or SpeechRequest.
elektric.audio.transcribe(input)| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | TranscriptionRequest or SpeechRequest. |
Returns: Audio response. Errors: standard errors plus resource-specific not-found/expired codes.
#video.analyze/generate
Analyze requires file/instruction; generate requires prompt.
elektric.video.generate({ prompt, image?, duration?, aspectRatio?, idempotencyKey?, signal? })| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | Analyze requires file/instruction; generate requires prompt. |
Returns: Analysis / Job. Errors: standard errors plus resource-specific not-found/expired codes.
#embeddings.create
input: string|string[].
elektric.embeddings.create({ input, profile?, signal? })| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | input: string|string[]. |
Returns: EmbeddingResponse. Errors: standard errors plus resource-specific not-found/expired codes.
#realtime.connect
input/output: text and/or audio arrays.
elektric.realtime.connect({ input, output, signal? })| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | input/output: text and/or audio arrays. |
Returns: RealtimeSession. Errors: standard errors plus resource-specific not-found/expired codes.
#assets.get/download/delete
assetId: string.
elektric.assets.download(assetId)| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | assetId: string. |
Returns: Asset / bytes / void. Errors: standard errors plus resource-specific not-found/expired codes.
#jobs.get/wait/cancel
jobId and optional wait policy.
elektric.jobs.wait(jobId, { timeoutMs?, signal?, initialPollMs?, maxPollMs? })| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | jobId and optional wait policy. |
Returns: ElektricJob. Errors: standard errors plus resource-specific not-found/expired codes.
#requests.get/list
Optional status, userId, conversationId, from, to, limit, cursor.
elektric.requests.list(input?)| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | Optional status, userId, conversationId, from, to, limit, cursor. |
Returns: Request log/list. Errors: standard errors plus resource-specific not-found/expired codes.
#usage.get/timeseries
Optional half-open from/to range.
elektric.usage.timeseries(input?)| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | Optional half-open from/to range. |
Returns: Usage summary/timeseries. Errors: standard errors plus resource-specific not-found/expired codes.
#billing.get/transactions.list
Optional type, from, to, limit, cursor.
elektric.billing.transactions.list(input?)| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | Optional type, from, to, limit, cursor. |
Returns: Billing summary/list. Errors: standard errors plus resource-specific not-found/expired codes.
#limits.get
No parameters.
elektric.limits.get()| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | No parameters. |
Returns: LimitsResponse. Errors: standard errors plus resource-specific not-found/expired codes.
#tool
name and JSON schema; optional description.
elektric.tool<T>({ name, description?, inputSchema })| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| input | Operation-specific | See signature | — | name and JSON schema; optional description. |
Returns: ElektricTool<T>. Errors: standard errors plus resource-specific not-found/expired codes.
#Defaults and errors
The client reads ELEKTRIC_API_KEY and defaults to https://elektric.ai. Retain Request IDs and branch on typed codes.