Ruby SDK methods

⚠️
Preview — this feature is being built; the design below is the spec.

Every method of the planned Ruby SDK, by resource, with the endpoint it calls. Names follow Ruby conventions; behaviour, parameters and return shapes match the Python and TypeScript references, which have a full example per method.

Conventions

Methods take keyword arguments. List methods return pages with auto_paging_each. Streams yield events to a block.

Admin and Compliance methods live on a separate admin client: admin = Syntic::AdminClient.new # SYNTIC_ADMIN_KEY

Install and first request: Ruby SDK.

Chat completions

MethodEndpointWhat it does
client.chat.completions.create(…)POST /v1/chat/completionsSend a conversation and get the reply. Pass stream=True to get an iterator of chunks instead.
client.chat.completions.stream(…)POST /v1/chat/completionsStream with a helper that accumulates text, tool calls and usage, and exposes the final message when done.
client.chat.completions.parse(…)POST /v1/chat/completionsStructured output from a Pydantic model (Python) or Zod schema (TypeScript); returns the parsed object on message.parsed.
client.chat.completions.count_tokens(…)POST /v1/chat/completions/count_tokensCount input tokens for a request body without running it.

Messages

MethodEndpointWhat it does
client.messages.create(…)POST /v1/messagesSend content blocks and receive content blocks.
client.messages.stream(…)POST /v1/messagesStream typed events (content_block_delta, message_delta…) with a final-message accumulator.
client.messages.count_tokens(…)POST /v1/messages/count_tokensCount tokens for a Messages request.

Models

MethodEndpointWhat it does
client.models.list(…)GET /v1/modelsList the models your key can use. Auto-paginates when iterated.
client.models.retrieve(…)GET /v1/models/{id}One model’s limits, capabilities and prices.

Files

MethodEndpointWhat it does
client.files.upload(…)POST /v1/filesUpload from a path, bytes or a file object. Multipart encoding is handled for you.
client.files.list(…)GET /v1/filesList files, newest first, filtered by purpose.
client.files.retrieve(…)GET /v1/files/{file_id}Metadata for one file.
client.files.content(…)GET /v1/files/{file_id}/contentDownload bytes. .write_to_file(path) streams to disk.
client.files.delete(…)DELETE /v1/files/{file_id}Delete a file.

Batches

MethodEndpointWhat it does
client.batches.create(…)POST /v1/batchesFrom an uploaded JSONL input_file_id, or up to 1,000 inline requests.
client.batches.list(…)GET /v1/batchesList batches.
client.batches.retrieve(…)GET /v1/batches/{batch_id}Status and counts.
client.batches.wait(…)(helper; polls GET /v1/batches/{batch_id})Helper: poll until the batch ends, with back-off. Returns the final batch.
client.batches.results(…)GET /v1/batches/{batch_id}/resultsIterate result lines as typed objects, streaming from the server.
client.batches.cancel(…)POST /v1/batches/{batch_id}/cancelCancel a running batch.
client.batches.delete(…)DELETE /v1/batches/{batch_id}Delete an ended batch and its result files.

Embeddings

MethodEndpointWhat it does
client.embeddings.create(…)POST /v1/embeddingsEmbed one string or a list of up to 2,048 strings.

Webhooks

MethodEndpointWhat it does
client.webhooks.create(…)POST /v1/webhooksRegister an endpoint; the result holds the signing secret once.
client.webhooks.list(…)GET /v1/webhooksList endpoints.
client.webhooks.update(…)PATCH /v1/webhooks/{webhook_id}Change events, URL or status.
client.webhooks.delete(…)DELETE /v1/webhooks/{webhook_id}Remove an endpoint.
client.webhooks.rotate_secret(…)POST /v1/webhooks/{webhook_id}/rotate_secretNew signing secret; both are valid during the overlap.
client.webhooks.test(…)POST /v1/webhooks/{webhook_id}/testSend a webhook.test event.
client.webhooks.unwrap(…)(local, no request)Verify the syntic-signature header against the raw body and return the typed event; raises on a bad signature or a stale timestamp.

Agents

MethodEndpointWhat it does
client.agents.create(…)POST /v1/agentsCreate a versioned agent definition.
client.agents.list(…)GET /v1/agentsList agents.
client.agents.retrieve(…)GET /v1/agents/{agent_id}One agent at its latest or a given version.
client.agents.update(…)PATCH /v1/agents/{agent_id}Change the definition; creates a new version.
client.agents.versions.list(…)GET /v1/agents/{agent_id}/versionsAll versions.
client.agents.archive(…)POST /v1/agents/{agent_id}/archiveStop new sessions from using it.

Sessions

MethodEndpointWhat it does
client.sessions.create(…)POST /v1/sessionsStart a session, optionally with first events.
client.sessions.send(…)POST /v1/sessions/{session_id}/eventsSend user messages, tool results or approvals.
client.sessions.stream(…)GET /v1/sessions/{session_id}/streamIterate live events; reconnects with Last-Event-ID automatically.
client.sessions.events.list(…)GET /v1/sessions/{session_id}/eventsFull history, paginated.
client.sessions.interrupt(…)POST /v1/sessions/{session_id}/interruptStop the current turn.
client.sessions.resources.add(…)POST /v1/sessions/{session_id}/resourcesMount a file, repository or memory store.
client.sessions.threads.list(…)GET /v1/sessions/{session_id}/threadsPrimary and delegate threads with their usage.
client.sessions.archive(…)POST /v1/sessions/{session_id}/archiveClose the session.

Environments, memory and more

MethodEndpointWhat it does
client.environments.create(…)POST /v1/environmentsDefine a sandbox image.
client.environments.rebuild(…)POST /v1/environments/{environment_id}/rebuildBuild the image again.
client.memory_stores.memories.search(…)POST /v1/memory_stores/{store_id}/memories/searchSemantic search within a scope.
client.memory_stores.consolidations.create(…)POST /v1/memory_stores/{store_id}/consolidationsStart a consolidation job.
client.vaults.secrets.set(…)PUT /v1/vaults/{vault_id}/secrets/{name}Write a secret (write-only).
client.deployments.runs.list(…)GET /v1/deployments/{deployment_id}/runsRecent runs of a deployment.
client.skills.versions.create(…)POST /v1/skills/{skill_id}/versionsUpload a new skill version from a directory; the SDK zips it.
client.user_profiles.create(…)POST /v1/user_profilesCreate an end-user profile.
client.tunnels.create(…)POST /v1/tunnelsCreate an MCP tunnel.

Evaluations and prompts

MethodEndpointWhat it does
client.evals.datasets.create(…)POST /v1/evals/datasetsCreate a dataset.
client.evals.datasets.items.add(…)POST /v1/evals/datasets/{dataset_id}/itemsAdd up to 1,000 items.
client.evals.graders.create(…)POST /v1/evals/gradersDefine a grader.
client.evals.runs.create(…)POST /v1/evals/runsStart a run with up to four variants.
client.evals.runs.wait(…)(helper; polls GET /v1/evals/runs/{eval_run_id})Helper: wait for a run to finish.
client.evals.runs.results(…)GET /v1/evals/runs/{eval_run_id}/resultsIterate graded results.
client.prompts.improve(…)POST /v1/prompts/improveRewrite a prompt against feedback.
client.prompts.templates.set_label(…)PUT /v1/prompts/templates/{template}/labels/{label}Promote a version.

Admin API

MethodEndpointWhat it does
admin.organization.retrieve(…)GET /v1/organizations/meOrganization info and real plan name.
admin.workspaces.create(…)POST /v1/organizations/workspacesCreate a workspace.
admin.members.list(…)GET /v1/organizations/usersList members; auto-paginates.
admin.invites.create(…)POST /v1/organizations/invitesInvite by email.
admin.api_keys.update(…)PATCH /v1/organizations/api_keys/{api_key_id}Rename or disable a key.
admin.service_accounts.create(…)POST /v1/organizations/service_accountsCreate a service account.
admin.usage_report.messages(…)GET /v1/organizations/usage_report/messagesToken usage in buckets, grouped as you choose.
admin.cost_report.retrieve(…)GET /v1/organizations/cost_reportSpend by day and workspace.
admin.analytics.summary(…)GET /v1/organizations/analytics/summaryHeadline numbers for a period.
admin.audit_events.list(…)GET /v1/organizations/audit_eventsAudit feed, cursor-paginated.

Compliance API

MethodEndpointWhat it does
admin.compliance.activities.list(…)GET /v1/compliance/activitiesIterate activity records.
admin.compliance.exports.create(…)POST /v1/compliance/exportsStart a bulk export.
admin.compliance.exports.download(…)GET /v1/compliance/exports/{export_id}/contentStream an export to disk.
admin.compliance.legal_holds.create(…)POST /v1/compliance/legal_holdsPreserve records for named people.
Was this page helpful?