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
| Method | Endpoint | What it does |
|---|---|---|
client.chat.completions.create(…) | POST /v1/chat/completions | Send a conversation and get the reply. Pass stream=True to get an iterator of chunks instead. |
client.chat.completions.stream(…) | POST /v1/chat/completions | Stream with a helper that accumulates text, tool calls and usage, and exposes the final message when done. |
client.chat.completions.parse(…) | POST /v1/chat/completions | Structured 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_tokens | Count input tokens for a request body without running it. |
Messages
| Method | Endpoint | What it does |
|---|---|---|
client.messages.create(…) | POST /v1/messages | Send content blocks and receive content blocks. |
client.messages.stream(…) | POST /v1/messages | Stream typed events (content_block_delta, message_delta…) with a final-message accumulator. |
client.messages.count_tokens(…) | POST /v1/messages/count_tokens | Count tokens for a Messages request. |
Models
| Method | Endpoint | What it does |
|---|---|---|
client.models.list(…) | GET /v1/models | List 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
| Method | Endpoint | What it does |
|---|---|---|
client.files.upload(…) | POST /v1/files | Upload from a path, bytes or a file object. Multipart encoding is handled for you. |
client.files.list(…) | GET /v1/files | List 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}/content | Download bytes. .write_to_file(path) streams to disk. |
client.files.delete(…) | DELETE /v1/files/{file_id} | Delete a file. |
Batches
| Method | Endpoint | What it does |
|---|---|---|
client.batches.create(…) | POST /v1/batches | From an uploaded JSONL input_file_id, or up to 1,000 inline requests. |
client.batches.list(…) | GET /v1/batches | List 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}/results | Iterate result lines as typed objects, streaming from the server. |
client.batches.cancel(…) | POST /v1/batches/{batch_id}/cancel | Cancel a running batch. |
client.batches.delete(…) | DELETE /v1/batches/{batch_id} | Delete an ended batch and its result files. |
Embeddings
| Method | Endpoint | What it does |
|---|---|---|
client.embeddings.create(…) | POST /v1/embeddings | Embed one string or a list of up to 2,048 strings. |
Webhooks
| Method | Endpoint | What it does |
|---|---|---|
client.webhooks.create(…) | POST /v1/webhooks | Register an endpoint; the result holds the signing secret once. |
client.webhooks.list(…) | GET /v1/webhooks | List 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_secret | New signing secret; both are valid during the overlap. |
client.webhooks.test(…) | POST /v1/webhooks/{webhook_id}/test | Send 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
| Method | Endpoint | What it does |
|---|---|---|
client.agents.create(…) | POST /v1/agents | Create a versioned agent definition. |
client.agents.list(…) | GET /v1/agents | List 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}/versions | All versions. |
client.agents.archive(…) | POST /v1/agents/{agent_id}/archive | Stop new sessions from using it. |
Sessions
| Method | Endpoint | What it does |
|---|---|---|
client.sessions.create(…) | POST /v1/sessions | Start a session, optionally with first events. |
client.sessions.send(…) | POST /v1/sessions/{session_id}/events | Send user messages, tool results or approvals. |
client.sessions.stream(…) | GET /v1/sessions/{session_id}/stream | Iterate live events; reconnects with Last-Event-ID automatically. |
client.sessions.events.list(…) | GET /v1/sessions/{session_id}/events | Full history, paginated. |
client.sessions.interrupt(…) | POST /v1/sessions/{session_id}/interrupt | Stop the current turn. |
client.sessions.resources.add(…) | POST /v1/sessions/{session_id}/resources | Mount a file, repository or memory store. |
client.sessions.threads.list(…) | GET /v1/sessions/{session_id}/threads | Primary and delegate threads with their usage. |
client.sessions.archive(…) | POST /v1/sessions/{session_id}/archive | Close the session. |
Environments, memory and more
| Method | Endpoint | What it does |
|---|---|---|
client.environments.create(…) | POST /v1/environments | Define a sandbox image. |
client.environments.rebuild(…) | POST /v1/environments/{environment_id}/rebuild | Build the image again. |
client.memory_stores.memories.search(…) | POST /v1/memory_stores/{store_id}/memories/search | Semantic search within a scope. |
client.memory_stores.consolidations.create(…) | POST /v1/memory_stores/{store_id}/consolidations | Start 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}/runs | Recent runs of a deployment. |
client.skills.versions.create(…) | POST /v1/skills/{skill_id}/versions | Upload a new skill version from a directory; the SDK zips it. |
client.user_profiles.create(…) | POST /v1/user_profiles | Create an end-user profile. |
client.tunnels.create(…) | POST /v1/tunnels | Create an MCP tunnel. |
Evaluations and prompts
| Method | Endpoint | What it does |
|---|---|---|
client.evals.datasets.create(…) | POST /v1/evals/datasets | Create a dataset. |
client.evals.datasets.items.add(…) | POST /v1/evals/datasets/{dataset_id}/items | Add up to 1,000 items. |
client.evals.graders.create(…) | POST /v1/evals/graders | Define a grader. |
client.evals.runs.create(…) | POST /v1/evals/runs | Start 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}/results | Iterate graded results. |
client.prompts.improve(…) | POST /v1/prompts/improve | Rewrite a prompt against feedback. |
client.prompts.templates.set_label(…) | PUT /v1/prompts/templates/{template}/labels/{label} | Promote a version. |
Admin API
| Method | Endpoint | What it does |
|---|---|---|
admin.organization.retrieve(…) | GET /v1/organizations/me | Organization info and real plan name. |
admin.workspaces.create(…) | POST /v1/organizations/workspaces | Create a workspace. |
admin.members.list(…) | GET /v1/organizations/users | List members; auto-paginates. |
admin.invites.create(…) | POST /v1/organizations/invites | Invite 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_accounts | Create a service account. |
admin.usage_report.messages(…) | GET /v1/organizations/usage_report/messages | Token usage in buckets, grouped as you choose. |
admin.cost_report.retrieve(…) | GET /v1/organizations/cost_report | Spend by day and workspace. |
admin.analytics.summary(…) | GET /v1/organizations/analytics/summary | Headline numbers for a period. |
admin.audit_events.list(…) | GET /v1/organizations/audit_events | Audit feed, cursor-paginated. |
Compliance API
| Method | Endpoint | What it does |
|---|---|---|
admin.compliance.activities.list(…) | GET /v1/compliance/activities | Iterate activity records. |
admin.compliance.exports.create(…) | POST /v1/compliance/exports | Start a bulk export. |
admin.compliance.exports.download(…) | GET /v1/compliance/exports/{export_id}/content | Stream an export to disk. |
admin.compliance.legal_holds.create(…) | POST /v1/compliance/legal_holds | Preserve records for named people. |
Was this page helpful?