List stored operation receipts newest first with workspace read access. Filter by the original requestId to reconcile an uncertain mutation response. Read an individual operation to refresh its copy and deployment readiness. This list does not require the fork-specific Admin role or feature gate.
OAuth scope: api:read.
/api/v2/workspaces/{workspaceId}/operationsSend a personal or workspace API key in X-API-Key. See key types and access; operations that reject workspace keys say so in their description.
In: header
Request examples use an API key. For OAuth, replace the X-API-Key header with Authorization: Bearer YOUR_ACCESS_TOKEN.
curl -X GET "https://www.sim.ai/api/v2/workspaces/string/operations" \ -H "X-API-Key: YOUR_API_KEY"fetch("https://www.sim.ai/api/v2/workspaces/string/operations", { method: "GET", headers: { "X-API-Key": "YOUR_API_KEY" }})package mainimport ( "fmt" "net/http" "io/ioutil")func main() { url := "https://www.sim.ai/api/v2/workspaces/string/operations" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("X-API-Key", "YOUR_API_KEY") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body))}import requestsurl = "https://www.sim.ai/api/v2/workspaces/string/operations"response = requests.request("GET", url, headers = { "X-API-Key": "YOUR_API_KEY"})print(response.text)import java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.net.http.HttpResponse.BodyHandlers;import java.time.Duration;HttpClient client = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(10)) .build();HttpRequest.Builder requestBuilder = HttpRequest.newBuilder() .uri(URI.create("https://www.sim.ai/api/v2/workspaces/string/operations")) .header("X-API-Key", "YOUR_API_KEY") .GET() .build();try { HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString()); System.out.println("Status code: " + response.statusCode()); System.out.println("Response body: " + response.body());} catch (Exception e) { e.printStackTrace();}using System;using System.Net.Http;using System.Text;var client = new HttpClient();client.DefaultRequestHeaders.Add("X-API-Key", "YOUR_API_KEY");var response = await client.GetAsync("https://www.sim.ai/api/v2/workspaces/string/operations");var responseBody = await response.Content.ReadAsStringAsync();{
"data": [
{
"operationId": "string",
"requestId": "string",
"workspaceId": "string",
"kind": "workflow_import",
"applied": true,
"status": "processing",
"resourceIds": [
"string"
],
"issues": [
{
"code": "string",
"message": "string",
"workflowId": "string",
"blockId": "string",
"subBlockKey": "string"
}
],
"idMap": {
"property1": "string",
"property2": "string"
},
"deploymentOperationIds": [
"string"
],
"deployments": [
{
"operationId": "string",
"workflowId": "string",
"version": 1,
"status": "preparing",
"ready": true,
"pendingComponents": [
"string"
]
}
],
"triggerUrlChanges": [
{
"workflowName": "string",
"path": "string"
}
],
"backgroundWorkId": "string",
"copyProgress": {
"status": "pending",
"copied": 0,
"failed": 0
}
}
],
"nextCursor": "string"
}{
"error": {
"code": "BAD_REQUEST",
"message": "Invalid request"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication required"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient workspace permissions",
"details": {
"code": "INSUFFICIENT_WORKSPACE_ROLE"
}
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Not found"
}
}{
"error": {
"code": "CONFLICT",
"message": "The request conflicts with current resource state"
}
}{
"error": {
"code": "PAYLOAD_TOO_LARGE",
"message": "Request body is too large"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "API rate limit exceeded",
"details": {
"retryAfter": "2026-01-01T00:00:30.000Z"
}
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error"
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service temporarily unavailable"
}
}Path parameters
Explicit current workspace scope.
1 <= length <= 128Query parameters
Maximum items to return per page. Must be a whole number from 1 to 100. Defaults to 50.
501 <= value <= 100Opaque cursor from the previous page. Send it back with the same sort and filters; only limit may change. Change anything else and pagination must restart without a cursor.
1 <= lengthFind an uncertain mutation by the original client request ID; keep the same filter while paging.
1 <= length <= 128Response body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
