Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
189 commits
Select commit Hold shift + click to select a range
0b9019d
v0.6.23: MCP fixes, remove local state in favor of server state, moth…
waleedlatif1 Apr 4, 2026
a54dcbe
v0.6.24: copilot feedback wiring, captcha fixes
waleedlatif1 Apr 4, 2026
28af223
v0.6.25: cloudwatch, cloudformation, live kb sync, linear fixes, post…
waleedlatif1 Apr 5, 2026
d889f32
v0.6.26: ui improvements, multiple response blocks, docx previews, ol…
waleedlatif1 Apr 5, 2026
316bc8c
v0.6.27: new triggers, mothership improvements, files archive, queuei…
waleedlatif1 Apr 7, 2026
3f508e4
v0.6.28: new docs, delete confirmation standardization, dagster integ…
waleedlatif1 Apr 7, 2026
d6ec115
v0.6.29: login improvements, posthog telemetry (#4026)
TheodoreSpeaks Apr 7, 2026
d7da35b
v0.6.30: slack trigger enhancements, connectors performance improveme…
waleedlatif1 Apr 8, 2026
cf233bb
v0.6.31: elevenlabs voice, trigger.dev fixes, cloud whitelabeling for…
waleedlatif1 Apr 8, 2026
f8f3758
v0.6.32: BYOK fixes, ui improvements, cloudwatch tools, jsm tools ext…
waleedlatif1 Apr 9, 2026
3c8bb40
v0.6.33: polling improvements, jsm forms tools, credentials reactquer…
waleedlatif1 Apr 9, 2026
d33acf4
v0.6.34: trigger.dev fixes, CI speedup, atlassian error extractor
waleedlatif1 Apr 9, 2026
4f40c4c
v0.6.35: additional jira fields, HITL docs, logs cleanup efficiency
waleedlatif1 Apr 10, 2026
cbfab1c
v0.6.36: new chunkers, sockets state machine, google sheets/drive/cal…
waleedlatif1 Apr 11, 2026
4309d06
v0.6.37: audit logs page, isolated-vm worker rotation, permission gro…
waleedlatif1 Apr 12, 2026
8b57476
v0.6.38: models page
waleedlatif1 Apr 12, 2026
e3d0e74
v0.6.39: billing fixes, tools audit, landing fix
waleedlatif1 Apr 13, 2026
0ac0539
v0.6.40: mothership tool loop, new skills, agiloft, STS, IAM integrat…
waleedlatif1 Apr 14, 2026
3838b6e
v0.6.41: webhooks fix, workers removal
waleedlatif1 Apr 14, 2026
fc07922
v0.6.42: mothership nested file reads, search modal improvements
waleedlatif1 Apr 14, 2026
3a1b1a8
v0.6.43: mothership billing idempotency, env var resolution fixes
waleedlatif1 Apr 14, 2026
46ffc49
v0.6.44: streamdown, mothership intelligence, excel extension
waleedlatif1 Apr 15, 2026
010435c
v0.6.45: superagent, csp, brightdata integration, gemini response for…
Sg312 Apr 15, 2026
c0bc62c
Merge pull request #4190 from simstudioai/staging
icecrasher321 Apr 16, 2026
387cc97
v0.6.46: mothership queueing, web vitals
waleedlatif1 Apr 16, 2026
2dbc7fd
v0.6.47: files focusing, documentation, opus 4.7
waleedlatif1 Apr 16, 2026
8a50f18
v0.6.48: import csv into tables, subflow fixes, CSP updates
waleedlatif1 Apr 16, 2026
dcf3302
v0.6.49: deploy sockets event, resolver, logs improvements, monday.co…
waleedlatif1 Apr 17, 2026
bc09865
v0.6.50: ppt/doc/pdf worker isolation, docs, chat, sidebar improvements
icecrasher321 Apr 18, 2026
5f56e46
v0.6.51: tables improvements, billing fixes, 404 pages, code hygiene
waleedlatif1 Apr 20, 2026
ca3bbf1
v0.6.52: data retention, docs updates, slack manifest generator, secu…
waleedlatif1 Apr 22, 2026
bbf400f
v0.6.53: permissions groups migration, docs updates
waleedlatif1 Apr 22, 2026
7c619e7
Merge pull request #4261 from simstudioai/staging
icecrasher321 Apr 22, 2026
64cfda5
v0.6.54: mothership tracing, db pool size increase
icecrasher321 Apr 22, 2026
7ca736a
v0.6.55: standardize monorepo conventions, api key hash, thinking tex…
waleedlatif1 Apr 23, 2026
6066fc1
v0.6.56: data retention improvements, tables column double click resi…
waleedlatif1 Apr 24, 2026
3422f64
Merge pull request #4285 from simstudioai/staging
waleedlatif1 Apr 24, 2026
595c4c3
Merge pull request #4293 from simstudioai/staging
TheodoreSpeaks Apr 24, 2026
d6c1bc2
v0.6.58: queue abort state machine improvement, contributing guide
icecrasher321 Apr 25, 2026
58a3ae2
v0.6.59: gpt 5.5, security hardening, parallel subagents rendering
icecrasher321 Apr 27, 2026
489f2d3
v0.6.60: copilot security improvements, slack canvas ops, retention j…
icecrasher321 Apr 27, 2026
6aa3fe3
v0.6.61: SAP integration, live URLs for browser use, 5xx error catego…
icecrasher321 Apr 29, 2026
ecbf5e5
Merge pull request #4342 from simstudioai/staging
TheodoreSpeaks Apr 29, 2026
2aaf2b7
v0.6.62: firecrawl parse, new gmail tools, trace improvements, tool f…
waleedlatif1 May 2, 2026
d445b9c
v0.6.63: knowledgebase UI, folder search in mothership
waleedlatif1 May 2, 2026
4bc6a17
v0.6.64: table limits env vars, workspace files improvements, integra…
waleedlatif1 May 3, 2026
5be12f8
v0.6.65: memory fix, image uploads in files
waleedlatif1 May 3, 2026
4253e57
v0.6.66: child trace spans, reranker controls, attachment previews, l…
waleedlatif1 May 5, 2026
8d6b615
v0.6.67: VFS upload fix, posthog/copilot correlation, exa date filter…
TheodoreSpeaks May 5, 2026
efcd51a
v0.6.68: atlassian service accounts, 30 day wait block, markdown rend…
waleedlatif1 May 6, 2026
8d934f3
v0.6.69: security hardening, nextjs upgrade, SAP Concur, Emailbison i…
waleedlatif1 May 7, 2026
5ea80a8
v0.6.70: legacy workflow sanitization
icecrasher321 May 7, 2026
3cc581e
v0.6.71: build error fix
icecrasher321 May 7, 2026
273e608
Merge pull request #4496 from simstudioai/staging
TheodoreSpeaks May 7, 2026
07b8f1b
v0.6.72: tables improvements, search and replace, logs with files, im…
waleedlatif1 May 9, 2026
dcaf3e9
v0.6.73: zustand v5 migration fix
icecrasher321 May 9, 2026
6aeb981
v0.6.74: security hardening, workers recycling, next-mdx-remote and o…
waleedlatif1 May 12, 2026
3e9849b
v0.6.75: scheduler claim-budget drain, helm chart hardening, mothersh…
TheodoreSpeaks May 12, 2026
64d855a
v0.6.76: helm updates, media centering, lazy loading, security hardening
waleedlatif1 May 13, 2026
ab156b5
v0.6.77: mothership improvements, trigger.dev telemetry
icecrasher321 May 14, 2026
c09a2c9
v0.6.78: file block get
Sg312 May 14, 2026
6a5eebc
v0.6.79: rate limits, tables checkboxes, drizzle config changes, bill…
waleedlatif1 May 14, 2026
4efe999
v0.6.80: security hardening, nextjs minor version bump, cloudwatch to…
waleedlatif1 May 15, 2026
f69a9a0
v0.6.81: files in agent block, file block update, mermaid version upd…
waleedlatif1 May 16, 2026
db7f1c1
v0.6.82: fix duplicate migration
Sg312 May 16, 2026
dbe8e51
v0.6.83: redis TLS SNI override for IP-based REDIS_URL, zod schema fixes
TheodoreSpeaks May 17, 2026
11bcb8f
v0.6.84: redis pub/sub SNI override, security hardening, copilot read…
TheodoreSpeaks May 17, 2026
d14af04
v0.6.85: mothership stream, resource column spacing, prospeo, findyma…
waleedlatif1 May 19, 2026
e6b3cce
v0.6.86: gemini 3.5 flash, wiza integration, CORS cleanup, railway an…
waleedlatif1 May 20, 2026
97a609a
v0.6.86: CORS updates, OAuth MCP, navigation pinning dynamic pages, g…
waleedlatif1 May 21, 2026
fde70e2
v0.6.87: performance improvements
icecrasher321 May 21, 2026
e9ee351
v0.6.88: mutex lock on oauth refresh, files export fix, hubspot trigg…
waleedlatif1 May 22, 2026
b5b2d83
v0.6.89: connectors ui, perf improvements, mcp hardening, og image
waleedlatif1 May 23, 2026
f6c9998
v0.6.90: resource breadcrumb flash fix, dedupe external URL fetches, …
icecrasher321 May 23, 2026
e532e0a
v0.6.91: file zoom, Zoom KB connector, error classifications, LiteLLM…
waleedlatif1 May 26, 2026
fd19470
v0.6.92: enrichment table column type, table run fixes, scheduled jit…
TheodoreSpeaks May 27, 2026
856182b
v0.6.93: schedules/mcp performance improvements, integration bugfixes
icecrasher321 May 28, 2026
6bf9e96
v0.6.94: 4.8 opus, better auth upgrade, zoominfo integration, copilot…
waleedlatif1 May 29, 2026
503432c
v0.6.95: data enrichment block, nullable workflow description fix
TheodoreSpeaks May 29, 2026
a8dcdd5
v0.6.96: pinned table columns, sequence number in copilot messages, t…
waleedlatif1 May 30, 2026
2f1f633
v0.6.97: migration fix for copilot_messages
icecrasher321 May 30, 2026
e32699d
v0.6.98: redundant index, security hardening, new copilot messages ta…
waleedlatif1 May 31, 2026
12ada0c
v0.6.99: tables filter operators, copilot chat persistence consolidat…
waleedlatif1 Jun 2, 2026
e8f09ae
v0.6.100: auth, mothership, scopes improvements, new apify tools
icecrasher321 Jun 2, 2026
3ba8668
v0.6.101: 11 new knowledgebase connectors, slack scopes update, login…
waleedlatif1 Jun 3, 2026
1192e20
v0.6.102: support S3-compatible in object storage, GitLab code knowle…
waleedlatif1 Jun 3, 2026
1ce8e92
v0.6.103: readme updates, tables lifecycle improvements, new connecto…
waleedlatif1 Jun 6, 2026
0c2df1e
v0.7.0: vibes improvement, new UI, new tools, chat-first, mothership …
waleedlatif1 Jun 10, 2026
7ffc495
v0.7.1: chat voice mode model update, sim trigger, codepipeline integ…
waleedlatif1 Jun 10, 2026
d4722f9
v0.7.2: logs export security, code hygiene, mship cost attribution
icecrasher321 Jun 10, 2026
f4d22ff
v0.7.3: jira oauth scope fix, read-replica client, table wire data fi…
TheodoreSpeaks Jun 11, 2026
a48b4a1
v0.7.4: round-robin byok support, table block fix, db read replica ro…
waleedlatif1 Jun 12, 2026
79d98b3
v0.7.5: deployments API and block, vanta integration, performance imp…
waleedlatif1 Jun 13, 2026
e6587ca
v0.7.6: calendar scheduled tasks, new hubspot tools, virtualized chat…
waleedlatif1 Jun 15, 2026
8c3706e
v0.7.7: square, context.dev integrations, scheduled tasks styling cha…
waleedlatif1 Jun 15, 2026
59d9496
v0.7.8: security hardening, code hygiene, MSFT oauth provider, new at…
waleedlatif1 Jun 16, 2026
56a88a2
v0.7.9: agent file attachments, chat autoscroll, knowledge base uploa…
icecrasher321 Jun 16, 2026
db47da5
v0.7.10: models sorting, compress/decompress file block tools, new en…
icecrasher321 Jun 18, 2026
8df34a3
v0.7.11: parallel subagents, new tools, rich markdown editor, governa…
waleedlatif1 Jun 21, 2026
aaca750
v0.7.12: mcp servers ui/ux fixes, nuqs for query param management
icecrasher321 Jun 22, 2026
ad0b867
v0.7.13: pii redaction, react query frontend refactor, pi coding agen…
TheodoreSpeaks Jun 24, 2026
11168f9
v0.7.14: perf improvements, code hygiene, GitLab private host support
waleedlatif1 Jun 25, 2026
613e8ea
v0.7.15: academy, perf improvements, db attribution, kb tags filter f…
waleedlatif1 Jun 27, 2026
38c088a
v0.7.16: security hardening, db o11y and profiling, settings UI
waleedlatif1 Jun 28, 2026
98c8567
improvement(external-endpoints): v2 versions with clean signatures + …
icecrasher321 Jun 29, 2026
0371856
v0.7.17: emcn and workflow renderer isolated package, popular blocks …
waleedlatif1 Jun 30, 2026
fabf696
v0.7.18: landing, tools depth, media embeds in md editor, sonnet 5
waleedlatif1 Jul 1, 2026
6e426f8
v0.7.19: newsletter, contact, careers
waleedlatif1 Jul 1, 2026
62ef96f
v0.7.20: perf, ui improvements, fable 5, tables row size bump, blogs
waleedlatif1 Jul 2, 2026
4fcfe76
v0.7.21: tools audits and extensions, appsheet integration, hitl fix
waleedlatif1 Jul 2, 2026
8afc4f1
v0.7.22: competitor pages, seo fixes, billing usage table
waleedlatif1 Jul 4, 2026
616a71d
v0.7.23: mobile comparison table, security hardening, subflow & strea…
waleedlatif1 Jul 5, 2026
62d3140
v0.7.24: frontend perf improvements, md editor fixes, mailer fix, too…
waleedlatif1 Jul 7, 2026
21ee602
v0.7.25: new tools, gmail send fixes, email lifecycle adjustments
waleedlatif1 Jul 7, 2026
9d44d42
v0.7.26: API block default headers fix, tables perf and correctness, …
waleedlatif1 Jul 8, 2026
067d3b0
v0.7.27: document tags improvements, grok 4.5, forking, custom blocks…
waleedlatif1 Jul 9, 2026
e2fecc8
v0.7.28: rich markdown editor improvements, autosave in files, helm i…
waleedlatif1 Jul 10, 2026
6c3d11b
v0.7.29: GLM, ui and ux improvements, tables improvements, enterprise…
waleedlatif1 Jul 11, 2026
207785c
v0.7.30: md editor improvements, og image updates, spacexai hosted ke…
waleedlatif1 Jul 12, 2026
e01bfb1
v0.7.31: sidebar shortcut, env var expansion in lifecycle triggers, a…
waleedlatif1 Jul 12, 2026
dc81795
v0.7.32: concurrency control, seo/geo, new lib, buffer & flint integr…
waleedlatif1 Jul 13, 2026
377f963
v0.7.33: workflow/custom block fix, community pages improvements, cha…
waleedlatif1 Jul 14, 2026
a403d05
v0.7.34: billing page fixes, chat rendering improvements
waleedlatif1 Jul 14, 2026
91b29b3
v0.7.35: sidebar styling, custom blocks reserved names fix, client en…
icecrasher321 Jul 14, 2026
50364ed
Merge pull request #5677 from simstudioai/staging
TheodoreSpeaks Jul 14, 2026
874c998
v0.7.36: mothership secrets resolution, SEO, service accounts for var…
waleedlatif1 Jul 15, 2026
9d23e25
v0.7.37: impersonation fixes, instagram/tiktok, landing improvements,…
icecrasher321 Jul 15, 2026
28b56d7
v0.7.38: mothership improvements, clickup, rocketlane integrations, g…
waleedlatif1 Jul 17, 2026
4ddad74
v0.7.39: mcp oauth hardening, chat perf improvements
waleedlatif1 Jul 18, 2026
3d12a6d
v0.7.40: library, mcp hardening, pi code reviewer, gmail fix
waleedlatif1 Jul 21, 2026
3ca1b65
v0.7.41: email fixes, MCP fixes, gemini 3.6 flash, GitHub runners fal…
waleedlatif1 Jul 22, 2026
31b81ca
v0.7.42: event-driven discovery for MCP, nuqs adoption for deeplinks,…
waleedlatif1 Jul 23, 2026
578d9dd
v0.7.43: ci and connector fixes
waleedlatif1 Jul 23, 2026
41bf1c4
v0.7.44: nextjs upgrade, CSV imports to tables fixes, tombstone for K…
waleedlatif1 Jul 23, 2026
6f514c1
v0.7.45: access control groups enhancements, sso domain verification,…
waleedlatif1 Jul 25, 2026
fe2241e
v0.7.46: settings consolidation, setup wizard, table column types and…
waleedlatif1 Jul 28, 2026
5e14639
v0.7.47: seo, import/export api, trigger task sizes
waleedlatif1 Jul 28, 2026
c3ed1e9
v0.7.48: perf improvements, confluence and sharepoint fixes, dependen…
waleedlatif1 Jul 29, 2026
2a62673
v0.7.49: outlook calendar, logfire tools, shared folders, desktop sec…
waleedlatif1 Jul 30, 2026
3e8141c
Merge origin/staging: align table v2 surface with the v2 endpoint sta…
TheodoreSpeaks Jul 30, 2026
65dc7e8
feat(usage): accept X-API-Key on usage-logs list + export
TheodoreSpeaks Jul 30, 2026
3a3ceb5
feat(billing): dedicated v2 usage endpoints; keep internal usage rout…
TheodoreSpeaks Jul 30, 2026
d8021bf
feat(docs): validate OpenAPI specs against the Zod contracts in CI
TheodoreSpeaks Jul 30, 2026
9ee4099
fix(docs): recursive field diff in check:openapi + the deep drift it …
TheodoreSpeaks Jul 30, 2026
19d929b
v0.7.50: custom sandboxes, auto model, tables currency type, perf imp…
waleedlatif1 Jul 31, 2026
f6c9cdb
fix(security): close the triggerType rate-limit bypass on workflow ex…
TheodoreSpeaks Jul 31, 2026
51b0cf1
refactor(execution): extract enqueue/status/cancel into shared libs
TheodoreSpeaks Jul 31, 2026
4320fed
feat(execution): callable execution service + structured error classi…
TheodoreSpeaks Jul 31, 2026
9c36400
feat(api): POST /api/v2/workflows/[id]/execute
TheodoreSpeaks Jul 31, 2026
3387ee7
feat(api): v2 executions status + cancel with queued backfill
TheodoreSpeaks Jul 31, 2026
c411f6e
feat(execution): workflow tool + MCP bridge run in-process
TheodoreSpeaks Jul 31, 2026
63fcfe2
feat(infra): CORS + CSP coverage for the v2 execute path
TheodoreSpeaks Jul 31, 2026
272de32
feat(ui): deploy modal + copilot advertise the v2 execute surface
TheodoreSpeaks Jul 31, 2026
35d306d
docs(api): document the v2 execution surface
TheodoreSpeaks Jul 31, 2026
53ea6a8
feat(api): gate the whole /api/v2 surface behind one flag; UI stays o…
TheodoreSpeaks Jul 31, 2026
528b52d
Merge origin/staging into improvement/v2-endpoints
TheodoreSpeaks Jul 31, 2026
fbc7b17
fix(executor): restore child-cost aggregation dropped by the staging …
TheodoreSpeaks Jul 31, 2026
5fea5f7
refactor(tables): make lib/table/orchestration the single implementat…
TheodoreSpeaks Aug 1, 2026
86486d5
v0.7.51: hybrid search for knowledgebases, ui improvements, db perf i…
waleedlatif1 Aug 1, 2026
eddd53a
feat(api): add v2 endpoints for MCP servers, skills, custom tools, fo…
TheodoreSpeaks Aug 1, 2026
ab6684f
fix(contracts): anchor the predicate double-cast annotation to the cast
TheodoreSpeaks Aug 1, 2026
96c5575
Merge v2-api-spec into improvement/v2-endpoints
TheodoreSpeaks Aug 1, 2026
29b64c6
fix(skills): point the orchestration error contract at its moved module
TheodoreSpeaks Aug 1, 2026
45c7d05
Merge remote-tracking branch 'origin/main' into improvement/v2-endpoints
TheodoreSpeaks Aug 1, 2026
edd9a06
refactor(knowledge): make lib/knowledge/orchestration the single impl…
TheodoreSpeaks Aug 1, 2026
5df4c75
feat(api): expand the public v2 files surface (#6160)
TheodoreSpeaks Aug 1, 2026
2d8350e
feat(api): add search, filtering, and sorting to the v2 list endpoint…
TheodoreSpeaks Aug 2, 2026
ca1dad8
feat(api): complete the v2 workflows resource with versions and CRUD …
TheodoreSpeaks Aug 2, 2026
5692261
feat(api): expand v2 tables with stateless multipart transfers (#6188)
TheodoreSpeaks Aug 4, 2026
e1ec233
feat(v2-tables): paginate the table list
TheodoreSpeaks Aug 4, 2026
832d4ee
Merge remote-tracking branch 'origin/staging' into improvement/v2-end…
TheodoreSpeaks Aug 4, 2026
3de8dc3
feat(api): add multipart knowledge document uploads
TheodoreSpeaks Aug 4, 2026
94eb1dc
fix(api): keep usage admission at knowledge upload session creation
TheodoreSpeaks Aug 4, 2026
05f298a
feat(knowledge): wire knowledge base uploads to multipart sessions
TheodoreSpeaks Aug 4, 2026
b528ad0
fix(knowledge): refuse to abort an upload once a document is bound
TheodoreSpeaks Aug 4, 2026
09c27a4
fix(uploads): prevent multipart cleanup races
TheodoreSpeaks Aug 4, 2026
48b9b0b
Merge pull request #6244 from simstudioai/feat/v2-knowledge-multipart…
TheodoreSpeaks Aug 4, 2026
f01c4be
Unify file creation and signed upload sessions (#6264)
TheodoreSpeaks Aug 5, 2026
98aa51f
feat(api): add file metadata endpoint
TheodoreSpeaks Aug 5, 2026
2a27f9e
improvement(api): scope folders to resource paths (#6284)
TheodoreSpeaks Aug 5, 2026
ab11711
fix(api): normalize folder paths and unblock resource mutations
TheodoreSpeaks Aug 5, 2026
3577b08
fix(api): make resource cleanup and metadata consistent
TheodoreSpeaks Aug 5, 2026
c0c20bf
improvement(uploads): persist multipart sessions in postgres
TheodoreSpeaks Aug 5, 2026
4b06c45
fix(db): store table row trigger timestamps in UTC
TheodoreSpeaks Aug 5, 2026
edff347
improvement(api): default folder deletion to non-recursive
TheodoreSpeaks Aug 5, 2026
e1a8a24
fix(billing): unify chat usage source
TheodoreSpeaks Aug 5, 2026
a2627cc
improvement(logs): expose trace spans on log detail
TheodoreSpeaks Aug 5, 2026
701400e
fix(logs): parse list trace spans
TheodoreSpeaks Aug 5, 2026
f32dc83
improvement(api): replace workflow jobs with execution resources (#6294)
TheodoreSpeaks Aug 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .github/workflows/test-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,9 @@ jobs:
- name: API contract boundary audit
run: bun run check:api-validation:strict

- name: OpenAPI spec validation
run: bun run check:openapi

- name: Desktop bridge contract audit
run: bun run check:desktop-bridge

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ This returns immediately with a `jobId` and `statusUrl`:
}
```

Poll the [Get Job Status](/api-reference/workflows/getJobStatus) endpoint until the status is `completed` or `failed`:
Poll the [Get Job Status](/api-reference/execution/getJobStatus) endpoint until the status is `completed` or `failed`:

```bash
curl https://www.sim.ai/api/jobs/{jobId} \
Expand Down
13 changes: 11 additions & 2 deletions apps/docs/content/docs/de/api-reference/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"title": "API Reference",
"root": true,
"pages": [
"---Getting Started---",
"getting-started",
"authentication",
"---SDKs---",
Expand All @@ -10,9 +11,17 @@
"---Endpoints---",
"(generated)/workflows",
"(generated)/logs",
"(generated)/usage",
"(generated)/audit-logs",
"(generated)/tables",
"(generated)/files"
"(generated)/files",
"(generated)/knowledge-bases",
"(generated)/mcp-servers",
"(generated)/skills",
"(generated)/custom-tools",
"(generated)/credentials",
"---Execution and Usage---",
"(generated)/execution",
"(generated)/human-in-the-loop",
"(generated)/usage"
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"pages": ["executeWorkflow", "getWorkflowExecution", "cancelExecution", "getJobStatus"]
}
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
{
"pages": [
"executeWorkflow",
"getWorkflowExecution",
"cancelExecution",
"listWorkflows",
"getWorkflow",
"exportWorkflow",
"importWorkflow",
"deployWorkflow",
"undeployWorkflow",
"rollbackWorkflow",
"getJobStatus"
"executeWorkflowV2",
"getWorkflowExecutionV2",
"cancelExecutionV2"
]
}
80 changes: 32 additions & 48 deletions apps/docs/content/docs/en/api-reference/getting-started.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -49,28 +49,28 @@ A workflow must be deployed before it can be executed via the API. Click the **D
<Tabs items={['curl', 'TypeScript', 'Python']}>
<Tab value="curl">
```bash
curl -X POST https://www.sim.ai/api/workflows/{workflowId}/execute \
curl -X POST https://www.sim.ai/api/v2/workflows/{workflowId}/execute \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"inputs": {}}'
-d '{"input": {}}'
```
</Tab>
<Tab value="TypeScript">
```typescript
const response = await fetch(
`https://www.sim.ai/api/workflows/${workflowId}/execute`,
`https://www.sim.ai/api/v2/workflows/${workflowId}/execute`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': process.env.SIM_API_KEY!,
},
body: JSON.stringify({ inputs: {} }),
body: JSON.stringify({ input: {} }),
}
)

const data = await response.json()
console.log(data.output)
console.log(data.data.output)
```
</Tab>
<Tab value="Python">
Expand All @@ -79,16 +79,16 @@ A workflow must be deployed before it can be executed via the API. Click the **D
import os

response = requests.post(
f"https://www.sim.ai/api/workflows/{workflow_id}/execute",
f"https://www.sim.ai/api/v2/workflows/{workflow_id}/execute",
headers={
"Content-Type": "application/json",
"X-API-Key": os.environ["SIM_API_KEY"],
},
json={"inputs": {}},
json={"input": {}},
)

data = response.json()
print(data["output"])
print(data["data"]["output"])
```
</Tab>
</Tabs>
Expand All @@ -103,77 +103,61 @@ By default, workflow executions are **synchronous** — the API blocks until the
For long-running workflows, use **asynchronous execution** by passing `async: true`:

```bash
curl -X POST https://www.sim.ai/api/workflows/{workflowId}/execute \
curl -X POST https://www.sim.ai/api/v2/workflows/{workflowId}/execute \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"inputs": {}, "async": true}'
-d '{"input": {}, "async": true}'
```

This returns immediately with a `jobId` and `statusUrl`:
This returns immediately with an `executionId` and `statusUrl`:

```json
{
"success": true,
"jobId": "job_abc123",
"statusUrl": "https://www.sim.ai/api/jobs/job_abc123",
"message": "Workflow execution started",
"async": true
"data": {
"executionId": "c7a92e15-3f4b-4d8c-a1e6-9b0d5f2c8e74",
"statusUrl": "https://www.sim.ai/api/v2/workflows/{workflowId}/executions/c7a92e15-3f4b-4d8c-a1e6-9b0d5f2c8e74"
}
}
```

Poll the [Get Job Status](/api-reference/workflows/getJobStatus) endpoint until the status is `completed` or `failed`:
Poll the [Get Execution Status](/api-reference/execution/getWorkflowExecution) endpoint until the status is terminal:

```bash
curl https://www.sim.ai/api/jobs/{jobId} \
curl https://www.sim.ai/api/v2/workflows/{workflowId}/executions/{executionId}?includeOutput=true \
-H "X-API-Key: YOUR_API_KEY"
```

<Callout type="info">
Job status transitions follow: `queued` → `processing` → `completed` or `failed`. The `output` field is only present when status is `completed`.
Execution status transitions follow: `queued` → `running` → `completed`, `failed`, `cancelled`, or `paused`. The `data.output` field is populated for completed executions when `includeOutput=true`.
</Callout>

## Response Format

Successful responses include an `output` object with your workflow results and a `limits` object with your current rate limit and usage status:
Successful v2 responses wrap the execution resource in `data`:

```json
{
"success": true,
"output": {
"result": "Hello, world!"
},
"limits": {
"workflowExecutionRateLimit": {
"sync": {
"requestsPerMinute": 60,
"maxBurst": 10,
"remaining": 59,
"resetAt": "2025-01-01T00:01:00Z"
},
"async": {
"requestsPerMinute": 30,
"maxBurst": 5,
"remaining": 30,
"resetAt": "2025-01-01T00:01:00Z"
}
},
"usage": {
"currentPeriodCost": 1.25,
"limit": 50.00,
"plan": "pro",
"isExceeded": false
}
"data": {
"executionId": "c7a92e15-3f4b-4d8c-a1e6-9b0d5f2c8e74",
"workflowId": "{workflowId}",
"status": "completed",
"output": { "result": "Hello, world!" },
"error": null,
"durationMs": 842
}
}
```

## Error Handling

The API uses standard HTTP status codes. Error responses include a human-readable `error` message:
The API uses standard HTTP status codes. v2 errors include a stable code and human-readable message:

```json
{
"error": "Workflow not found"
"error": {
"code": "NOT_FOUND",
"message": "Workflow not found"
}
}
```

Expand All @@ -191,7 +175,7 @@ The API uses standard HTTP status codes. Error responses include a human-readabl

## Rate Limits

Rate limits depend on your subscription plan and apply separately to synchronous and asynchronous executions. Every execution response includes a `limits` object showing your current rate limit status.
Rate limits depend on your subscription plan and apply separately to synchronous and asynchronous executions.

When rate limited, the API returns a `429` response with a `Retry-After` header indicating how many seconds to wait before retrying.

Expand Down
12 changes: 9 additions & 3 deletions apps/docs/content/docs/en/api-reference/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,18 @@
"typescript",
"---Endpoints---",
"(generated)/workflows",
"(generated)/human-in-the-loop",
"(generated)/logs",
"(generated)/usage",
"(generated)/audit-logs",
"(generated)/tables",
"(generated)/files",
"(generated)/knowledge-bases"
"(generated)/knowledge-bases",
"(generated)/mcp-servers",
"(generated)/skills",
"(generated)/custom-tools",
"(generated)/credentials",
"---Execution and Usage---",
"(generated)/execution",
"(generated)/human-in-the-loop",
"(generated)/usage"
]
}
65 changes: 40 additions & 25 deletions apps/docs/content/docs/en/api-reference/python.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ result = client.execute_workflow(

**Returns:** `WorkflowExecutionResult | AsyncExecutionResult`

When `async_execution=True`, returns immediately with a `job_id` and `status_url` for polling. Otherwise, waits for completion.
When `async_execution=True`, returns immediately with an `execution_id` and `status_url` for polling. Otherwise, waits for completion.

##### get_workflow_status()

Expand Down Expand Up @@ -112,30 +112,42 @@ if is_ready:

**Returns:** `bool`

##### get_job_status()
##### get_workflow_execution()

Get the status of an async job execution.
Get the status and optional outputs of a workflow execution.

```python
status = client.get_job_status("job-id-from-async-execution")
print("Status:", status["status"]) # 'queued', 'processing', 'completed', 'failed'
status = client.get_workflow_execution("workflow-id", "execution-id", include_output=True)
print("Status:", status["status"]) # 'queued', 'running', 'completed', 'failed'
if status["status"] == "completed":
print("Output:", status["output"])
```

**Parameters:**
- `task_id` (str): The job ID returned from async execution
- `workflow_id` (str): The workflow ID
- `execution_id` (str): The execution ID returned from async execution
- `include_output` (bool, optional): Include the final output for completed executions
- `selected_outputs` (list[str], optional): Block output selectors to include

**Returns:** `Dict[str, Any]`

**Response fields:**
- `success` (bool): Whether the request was successful
- `taskId` (str): The job ID
- `status` (str): One of `'queued'`, `'processing'`, `'completed'`, `'failed'`, `'cancelled'`
- `metadata` (dict): Contains `startedAt`, `completedAt`, and `duration`
- `output` (any, optional): The workflow output (when completed)
- `error` (any, optional): Error details (when failed)
- `estimatedDuration` (int, optional): Estimated duration in milliseconds (when processing/queued)
- `executionId` (str): The execution ID
- `workflowId` (str): The workflow ID
- `status` (str): One of `'queued'`, `'pending'`, `'running'`, `'paused'`, `'completed'`, `'failed'`, `'cancelled'`
- `startedAt` / `endedAt` (str): Execution timestamps
- `durationMs` (int, optional): Duration in milliseconds
- `output` (any, optional): The workflow output when requested for a completed execution
- `blockOutputs` (dict, optional): Requested block outputs
- `error` (dict, optional): Structured failure details with `code`, `message`, and optional `details`

##### get_job_status()

Get the status of a job created through the legacy async execution endpoint. New integrations should use `get_workflow_execution()` with the execution ID instead.

```python
status = client.get_job_status("legacy-job-id")
```

##### execute_with_retry()

Expand Down Expand Up @@ -270,9 +282,8 @@ class WorkflowExecutionResult:
@dataclass
class AsyncExecutionResult:
success: bool
job_id: str
execution_id: str
status_url: str
execution_id: Optional[str] = None
message: str = ""
async_execution: bool = True
```
Expand Down Expand Up @@ -494,22 +505,26 @@ def execute_async():
)

# Check if result is an async execution
if hasattr(result, 'job_id'):
print(f"Job ID: {result.job_id}")
if hasattr(result, 'async_execution') and result.async_execution:
print(f"Execution ID: {result.execution_id}")
print(f"Status endpoint: {result.status_url}")

# Poll for completion
status = client.get_job_status(result.job_id)
status = client.get_workflow_execution(
"workflow-id", result.execution_id, include_output=True
)

while status["status"] in ["queued", "processing"]:
while status["status"] in ["queued", "pending", "running"]:
print(f"Current status: {status['status']}")
time.sleep(2) # Wait 2 seconds
status = client.get_job_status(result.job_id)
status = client.get_workflow_execution(
"workflow-id", result.execution_id, include_output=True
)

if status["status"] == "completed":
print("Workflow completed!")
print(f"Output: {status['output']}")
print(f"Duration: {status['metadata']['duration']}")
print(f"Duration: {status['durationMs']}")
else:
print(f"Workflow failed: {status['error']}")

Expand Down Expand Up @@ -656,13 +671,13 @@ def stream_workflow():

def generate():
response = requests.post(
'https://sim.ai/api/workflows/WORKFLOW_ID/execute',
'https://sim.ai/api/v2/workflows/WORKFLOW_ID/execute',
headers={
'Content-Type': 'application/json',
'X-API-Key': os.getenv('SIM_API_KEY')
},
json={
'message': 'Generate a story',
'input': {'message': 'Generate a story'},
'stream': True,
'selectedOutputs': ['agent1.content']
},
Expand Down Expand Up @@ -765,9 +780,9 @@ import { FAQ } from '@/components/ui/faq'

<FAQ items={[
{ question: "Do I need to deploy a workflow before I can execute it via the SDK?", answer: "Yes. Workflows must be deployed before they can be executed through the SDK. You can use the validate_workflow() method to check whether a workflow is deployed and ready. If it returns False, deploy the workflow from the Sim UI first and create or select an API key during deployment." },
{ question: "What is the difference between sync and async execution?", answer: "Sync execution (the default) blocks until the workflow completes and returns the full result. Async execution (async_execution=True) returns immediately with a job ID and status URL that you can poll using get_job_status(). Use async mode for long-running workflows to avoid request timeouts. Async job statuses include queued, processing, completed, failed, and cancelled." },
{ question: "What is the difference between sync and async execution?", answer: "Sync execution (the default) blocks until the workflow completes and returns the full result. Async execution (async_execution=True) returns immediately with an execution ID and status URL that you can poll using get_workflow_execution(). Use async mode for long-running workflows to avoid request timeouts. Execution statuses include queued, pending, running, paused, completed, failed, and cancelled." },
{ question: "How does the SDK handle rate limiting?", answer: "The SDK provides built-in rate limiting support through the execute_with_retry() method. It uses exponential backoff (1s, 2s, 4s, 8s...) with 25% jitter to avoid thundering herd problems. If the API returns a retry-after header, that value is used instead. You can configure max_retries, initial_delay, max_delay, and backoff_multiplier. Use get_rate_limit_info() to check your current rate limit status." },
{ question: "Can I use the Python SDK as a context manager?", answer: "Yes. The SimStudioClient supports Python's context manager protocol. Use it with the 'with' statement to automatically close the underlying HTTP session when you are done, which is especially useful for scripts that create and discard client instances." },
{ question: "How do I handle different types of errors from the SDK?", answer: "The SDK raises SimStudioError with a code property for API-specific errors. Common error codes are UNAUTHORIZED (invalid API key), TIMEOUT (request timed out), RATE_LIMIT_EXCEEDED (too many requests), USAGE_LIMIT_EXCEEDED (billing limit reached), and EXECUTION_ERROR (workflow failed). Use the error code to implement targeted error handling and recovery logic." },
{ question: "How do I monitor my API usage and remaining quota?", answer: "Use the get_usage_limits() method to check your current usage. It returns sync and async rate limit details (limit, remaining, reset time, whether you are currently limited), plus your current period cost, usage limit, and plan tier. This lets you monitor consumption and alert before hitting limits." },
]} />
]} />
Loading