{"openapi":"3.1.0","info":{"title":"Pipeline API (Beta)","description":"**BETA.** This API is in beta. We are not committing to backward compatibility for now — endpoints, request/response shapes, and error contracts may change without notice.\n\nPublic API for the pipeline workflow (v2).","version":"2.0.0"},"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key with \"ApiKey \" prefix, e.g. \"ApiKey xxx\""}},"schemas":{"ProjectId":{"description":"The unique identifier of the project.","type":"string","pattern":"^pp\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"Project":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ProjectId"},"name":{"type":"string"},"teamId":{"type":"string"},"status":{"type":"string","enum":["draft","active"]},"deliveryOrderId":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","name","teamId","status","deliveryOrderId","createdAt"],"description":"A project: a team-scoped container for pipelines and datasets."},"Pagination":{"type":"object","properties":{"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"example":42},"limit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"example":20},"offset":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"example":0},"hasMore":{"type":"boolean"}},"required":["total","limit","offset","hasMore"],"description":"Pagination metadata."},"PipelineId":{"description":"The unique identifier of the pipeline.","type":"string","pattern":"^pl\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"Pipeline":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/PipelineId"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"name":{"type":"string"},"version":{"type":"number"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","projectId","name","version","createdAt","updatedAt"],"description":"A pipeline within a project."},"DatasetId":{"description":"The unique identifier of the dataset.","type":"string","pattern":"^ds\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"Dataset":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/DatasetId"},"projectId":{"$ref":"#/components/schemas/ProjectId"},"name":{"type":"string"},"hidden":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","projectId","name","hidden","createdAt"],"description":"A dataset within a project."},"DatasetFieldId":{"description":"The unique identifier of the dataset field.","type":"string","pattern":"^df\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"DatasetField":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/DatasetFieldId"},"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"jsonSchema":{},"internal":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","name","description","jsonSchema","internal","createdAt"],"description":"A field of a dataset."},"UploadId":{"description":"The unique identifier of the upload job.","type":"string","pattern":"^dfu\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"UploadJob":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/UploadId"},"status":{"type":"string","enum":["pending","running","succeeded","failed"]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"result":{"type":"object","properties":{"itemsIngested":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"example":0}},"required":["itemsIngested"]}},"required":["id","status","createdAt","error","result"],"description":"An asynchronous file upload + ingest job. Poll until status is succeeded or failed."},"RunId":{"description":"The unique identifier of the run.","type":"string","pattern":"^plr\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"RunStats":{"type":"object","properties":{"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"example":0},"completed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"example":0},"failed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"example":0},"canceled":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"example":0},"paused":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"example":0}},"required":["total","completed","failed","canceled","paused"]},"RunJob":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/RunId"},"datasetId":{"$ref":"#/components/schemas/DatasetId"},"status":{"type":"string","enum":["pending","running","succeeded","failed"]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"result":{"$ref":"#/components/schemas/RunStats"}},"required":["id","datasetId","status","createdAt","error","result"],"description":"A pipeline run job. Poll until status is succeeded or failed."},"RunSummary":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/RunId"},"datasetId":{"$ref":"#/components/schemas/DatasetId"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","datasetId","createdAt"],"description":"A pipeline run summary; poll GET /runs/:runId for status."},"ExportId":{"description":"The unique identifier of the export job.","type":"string","pattern":"^dex\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"ExportJob":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ExportId"},"datasetId":{"$ref":"#/components/schemas/DatasetId"},"status":{"type":"string","enum":["running","succeeded"]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"result":{"type":"object","properties":{"downloadUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["downloadUrl"]}},"required":["id","datasetId","status","createdAt","result"],"description":"An asynchronous dataset export job; status is running until the file is ready, then succeeded with result.downloadUrl."}}},"security":[{"apiKeyAuth":[]}],"servers":[{"url":"https://platform.toloka.ai"}],"paths":{"/api/v2-beta/projects":{"get":{"operationId":"listProjects","parameters":[{"in":"query","name":"limit","schema":{"default":20,"type":"integer","minimum":1,"maximum":100}},{"in":"query","name":"offset","schema":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991}}],"description":"List projects across the teams you belong to.","responses":{"200":{"description":"List projects","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"type":"object","properties":{"projects":{"type":"array","items":{"$ref":"#/components/schemas/Project"}},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["projects","pagination"]}}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}},"post":{"operationId":"createProject","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"teamId":{"type":"string","minLength":1,"description":"The team that will own the project."},"name":{"type":"string","minLength":1},"deliveryOrderId":{"description":"Sunday delivery order id; required for runs on internal teams.","anyOf":[{"type":"string","pattern":"^[a-z0-9-]+$"},{"type":"null"}]}},"required":["teamId"]}}}},"description":"Create a project (draft) owned by a team. Optionally set the Sunday delivery order id.","responses":{"200":{"description":"Project created","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/projects/{projectId}":{"get":{"operationId":"getProjectById","parameters":[{"in":"path","name":"projectId","schema":{"$ref":"#/components/schemas/ProjectId"},"required":true}],"description":"Get a project by ID.","responses":{"200":{"description":"Get project by ID","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"404":{"description":"Project not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/projects/{projectId}/pipelines":{"get":{"operationId":"listProjectPipelines","parameters":[{"in":"path","name":"projectId","schema":{"$ref":"#/components/schemas/ProjectId"},"required":true},{"in":"query","name":"limit","schema":{"default":20,"type":"integer","minimum":1,"maximum":100}},{"in":"query","name":"offset","schema":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991}}],"description":"List the pipelines that belong to a project.","responses":{"200":{"description":"List pipelines","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"type":"object","properties":{"pipelines":{"type":"array","items":{"$ref":"#/components/schemas/Pipeline"}},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["pipelines","pagination"]}}}},"404":{"description":"Project not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/pipelines/{pipelineId}":{"get":{"operationId":"getPipelineById","parameters":[{"in":"path","name":"pipelineId","schema":{"$ref":"#/components/schemas/PipelineId"},"required":true}],"description":"Get a pipeline by ID.","responses":{"200":{"description":"Get pipeline by ID","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}}},"404":{"description":"Pipeline not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/projects/{projectId}/datasets":{"get":{"operationId":"listProjectDatasets","parameters":[{"in":"path","name":"projectId","schema":{"$ref":"#/components/schemas/ProjectId"},"required":true},{"in":"query","name":"limit","schema":{"default":20,"type":"integer","minimum":1,"maximum":100}},{"in":"query","name":"offset","schema":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991}}],"description":"List the datasets that belong to a project.","responses":{"200":{"description":"List datasets","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"type":"object","properties":{"datasets":{"type":"array","items":{"$ref":"#/components/schemas/Dataset"}},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["datasets","pagination"]}}}},"404":{"description":"Project not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}},"post":{"operationId":"createDataset","parameters":[{"in":"path","name":"projectId","schema":{"$ref":"#/components/schemas/ProjectId"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1}}}}}},"description":"Create a dataset in a project.","responses":{"200":{"description":"Dataset created","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dataset"}}}},"404":{"description":"Project not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/datasets/{datasetId}":{"get":{"operationId":"getDatasetById","parameters":[{"in":"path","name":"datasetId","schema":{"$ref":"#/components/schemas/DatasetId"},"required":true}],"description":"Get a dataset by ID.","responses":{"200":{"description":"Get dataset by ID","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dataset"}}}},"404":{"description":"Dataset not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/datasets/{datasetId}/fields":{"get":{"operationId":"listDatasetFields","parameters":[{"in":"path","name":"datasetId","schema":{"$ref":"#/components/schemas/DatasetId"},"required":true},{"in":"query","name":"limit","schema":{"default":20,"type":"integer","minimum":1,"maximum":100}},{"in":"query","name":"offset","schema":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991}},{"in":"query","name":"names","schema":{"type":"string"}}],"description":"List the fields of a dataset. All fields are returned by default; pass `names` (comma-separated) to return only specific fields.","responses":{"200":{"description":"List dataset fields","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/DatasetField"}},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["fields","pagination"]}}}},"404":{"description":"Dataset not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/datasets/{datasetId}/items":{"post":{"operationId":"addDatasetItems","parameters":[{"in":"path","name":"datasetId","schema":{"$ref":"#/components/schemas/DatasetId"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"description":"Fields to create before adding rows. Omit to store each row under the \"uploaded\" field.","type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-z]([a-z0-9_]*[a-z0-9])?$"},"jsonSchema":{"default":{},"description":"JSON Schema for the field values. Defaults to {} (accepts any value)."}},"required":["name"]}},"items":{"minItems":1,"maxItems":10000,"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"description":"Rows to add. Each row is a JSON object keyed by field name."}},"required":["items"],"$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/components/schemas/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}}]}}}}}},"description":"Add rows to a dataset inline (synchronous). Optionally declare fields to create first; each row is keyed by field name (omit fields to store the whole row under \"uploaded\"). Use this only for small payloads (max 2 MB) — for large data use the file upload endpoint (POST /datasets/:id/uploads).","responses":{"200":{"description":"Rows added","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"type":"object","properties":{"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["created"]}}}},"400":{"description":"Payload too large, invalid field values, or item limit reached","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"404":{"description":"Dataset not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/datasets/{datasetId}/uploads":{"post":{"operationId":"createDatasetUpload","parameters":[{"in":"path","name":"datasetId","schema":{"$ref":"#/components/schemas/DatasetId"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filename":{"type":"string","minLength":1},"declaredSizeBytes":{"type":"integer","exclusiveMinimum":0,"maximum":1073741824},"fields":{"description":"Fields to create; each uploaded row is mapped by key into them. Omit to store each row under \"uploaded\".","type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-z]([a-z0-9_]*[a-z0-9])?$"},"jsonSchema":{"default":{},"description":"JSON Schema for the field values. Defaults to {} (accepts any value)."}},"required":["name"]}}},"required":["filename","declaredSizeBytes"]}}}},"description":"Begin a file upload for large data. Returns a job and a presigned uploadUrl; PUT the file (a JSON array of row objects) to uploadUrl, then call finalize. Optionally declare fields to map each row into by key (omit to store each row whole under \"uploaded\"). For small payloads use POST /datasets/:id/items instead.","responses":{"200":{"description":"Upload initiated","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"type":"object","properties":{"job":{"$ref":"#/components/schemas/UploadJob"},"uploadUrl":{"type":"string"}},"required":["job","uploadUrl"]}}}},"404":{"description":"Dataset not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/uploads/{uploadId}/finalize":{"post":{"operationId":"finalizeDatasetUpload","parameters":[{"in":"path","name":"uploadId","schema":{"$ref":"#/components/schemas/UploadId"},"required":true}],"description":"Finalize an upload after the file has been PUT to its uploadUrl; starts ingestion.","responses":{"200":{"description":"Upload finalized; ingestion scheduled","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadJob"}}}},"404":{"description":"Upload not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"409":{"description":"Upload is in a state that cannot be finalized","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"503":{"description":"Storage was temporarily unavailable while finalizing; retry","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/uploads/{uploadId}":{"get":{"operationId":"getDatasetUpload","parameters":[{"in":"path","name":"uploadId","schema":{"$ref":"#/components/schemas/UploadId"},"required":true}],"description":"Poll an upload + ingest job.","responses":{"200":{"description":"Upload job status","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadJob"}}}},"404":{"description":"Upload not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/projects/{projectId}/pipelines/import":{"post":{"operationId":"importPipeline","parameters":[{"in":"path","name":"projectId","schema":{"$ref":"#/components/schemas/ProjectId"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"dbGraph":{"type":"object","properties":{"fieldProxies":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"jsonSchema":{"type":"string"}},"required":["id","name","jsonSchema"],"additionalProperties":false}},"nodes":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"root"},"settings":{"type":"object","properties":{"datasetId":{"type":"string","pattern":"^ds\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"itemFilter":{"type":"object","properties":{"fieldValues":{"default":[],"type":"array","items":{"type":"object","properties":{"jsonPath":{"type":"string","minLength":1},"operator":{"type":"string","enum":["text_eq","text_neq"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"fieldId":{"type":"string","pattern":"^df\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"latestOnly":{"default":true,"type":"boolean"},"sources":{"default":[],"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"user"},"userId":{"type":"string","minLength":1}},"required":["type","userId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"system"},"source":{"type":"string","minLength":1}},"required":["type","source"],"additionalProperties":false}]}}},"required":["jsonPath","operator","value","fieldId"],"additionalProperties":false}},"fieldSources":{"default":[],"type":"array","items":{"type":"object","properties":{"fieldId":{"type":"string","pattern":"^df\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"sources":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"user"},"userId":{"type":"string","minLength":1}},"required":["type","userId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"system"},"source":{"type":"string","minLength":1}},"required":["type","source"],"additionalProperties":false}]}}},"required":["fieldId","sources"],"additionalProperties":false}},"missingRevisionFields":{"default":[],"type":"array","items":{"type":"string","pattern":"^df\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"}},"createdBefore":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"additionalProperties":false},"itemLimit":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"startedFieldProxies":{"type":"object","properties":{"output":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"optional":{"type":"boolean"}},"required":["id","optional"],"additionalProperties":false}}},"required":["output"]},"completedFieldProxies":{"type":"object","properties":{"input":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"optional":{"type":"boolean"}},"required":["id","optional"],"additionalProperties":false}}},"required":["input"]}},"required":["startedFieldProxies","completedFieldProxies"],"additionalProperties":false},"positions":{"type":"object","propertyNames":{"type":"string","enum":["starting","ending"]},"additionalProperties":{"type":"array","prefixItems":[{"type":"number","description":"X"},{"type":"number","description":"Y"}]},"required":["starting","ending"]},"__blockGroupType":{"type":"string","enum":["starting","ending"]},"__blockType":{"type":"string","enum":["started","completed"]},"__inputHandleType":{"type":"string","enum":["completed"]},"__outputHandleType":{"type":"string","enum":["started"]}},"required":["id","type","settings","positions"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"code"},"settings":{"type":"object","properties":{"about":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"projectType":{"type":"string","enum":["general","data_collection"]}},"required":["name"],"additionalProperties":false},"fieldProxies":{"type":"object","properties":{"input":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"optional":{"type":"boolean"}},"required":["id","optional"],"additionalProperties":false}},"output":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"optional":{"type":"boolean"}},"required":["id","optional"],"additionalProperties":false}}},"required":["input","output"]},"code":{"type":"object","properties":{"code":{"type":"string"}},"required":["code"],"additionalProperties":false},"envVars":{"default":[],"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"static"},"name":{"type":"string"},"value":{"type":"string"}},"required":["type","name","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"secret"},"name":{"type":"string"},"secretName":{"type":"string"}},"required":["type","name","secretName"],"additionalProperties":false}]}},"checks":{"type":"object","propertyNames":{"type":"string","enum":["code"]},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"input":{"type":"string"}},"required":["id","name","input"]}},"required":["code"]}},"required":["about","fieldProxies","code"],"additionalProperties":false},"positions":{"type":"object","propertyNames":{"type":"string","enum":["main"]},"additionalProperties":{"type":"array","prefixItems":[{"type":"number","description":"X"},{"type":"number","description":"Y"}]},"required":["main"]},"__blockGroupType":{"type":"string","enum":["main"]},"__blockType":{"type":"string","enum":["main"]},"__inputHandleType":{"type":"string","enum":["input"]},"__outputHandleType":{"type":"string","enum":["output"]}},"required":["id","type","settings","positions"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"generation_sft"},"settings":{"type":"object","properties":{"about":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"projectType":{"type":"string","enum":["general","data_collection"]}},"required":["name"],"additionalProperties":false},"publicName":{"type":"string"},"audienceAndPricing":{"type":"object","properties":{"verifiedExperts":{"type":"boolean"},"audience":{"type":"object","properties":{"languages":{"type":"object","properties":{"type":{"type":"string","enum":["or","and"]},"values":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}}},"required":["type","values"],"additionalProperties":false},"specializations":{"type":"object","properties":{"type":{"type":"string","enum":["or","and"]},"values":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"qualificationId":{"type":"string"}},"required":["value","qualificationId"],"additionalProperties":false}}},"required":["type","values"],"additionalProperties":false},"countries":{"type":"object","properties":{"type":{"type":"string","enum":["or"]},"values":{"type":"array","items":{"type":"string"}}},"required":["type","values"],"additionalProperties":false}},"required":["languages","specializations","countries"],"additionalProperties":false},"pricePerTask":{"type":"number"},"timeForTask":{"type":"number"},"perExpertCapEnabled":{"default":false,"type":"boolean"},"perExpertCapValue":{"default":1,"type":"integer","exclusiveMinimum":0,"maximum":50}},"required":["verifiedExperts","audience","pricePerTask","timeForTask"],"additionalProperties":false},"entities":{"type":"object","properties":{"input":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"fieldProxyId":{"type":"string"},"entityType":{"type":"string"},"optional":{"type":"boolean"},"jsonPath":{"type":"string"},"description":{"type":"string"},"relations":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","enum":["context","references","depends_on","evaluates"]}},"required":["id","rel_type"]},{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","const":"conditional"},"condition":{"type":"object","properties":{"operator":{"type":"string","enum":["EQ","NEQ","IN","NOT_IN","NOT_EMPTY"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["operator","value"]}},"required":["id","rel_type","condition"]}]}},"minDurationSeconds":{"type":"number","exclusiveMinimum":0},"maxDurationSeconds":{"type":"number","exclusiveMinimum":0},"allowedLabels":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"}},"required":["label","value"],"additionalProperties":false}},"dynamic":{"type":"boolean","const":false},"maxEntities":{"type":"null"}},"required":["fieldProxyId","entityType","optional","jsonPath","description","dynamic"],"additionalProperties":false},{"type":"object","properties":{"fieldProxyId":{"type":"string"},"entityType":{"type":"string"},"optional":{"type":"boolean"},"jsonPath":{"type":"string"},"description":{"type":"string"},"relations":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","enum":["context","references","depends_on","evaluates"]}},"required":["id","rel_type"]},{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","const":"conditional"},"condition":{"type":"object","properties":{"operator":{"type":"string","enum":["EQ","NEQ","IN","NOT_IN","NOT_EMPTY"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["operator","value"]}},"required":["id","rel_type","condition"]}]}},"minDurationSeconds":{"type":"number","exclusiveMinimum":0},"maxDurationSeconds":{"type":"number","exclusiveMinimum":0},"allowedLabels":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"}},"required":["label","value"],"additionalProperties":false}},"dynamic":{"type":"boolean","const":true},"maxEntities":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["fieldProxyId","entityType","optional","jsonPath","description","dynamic"],"additionalProperties":false}]}},"output":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"fieldProxyId":{"type":"string"},"entityType":{"type":"string"},"optional":{"type":"boolean"},"jsonPath":{"type":"string"},"description":{"type":"string"},"relations":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","enum":["context","references","depends_on","evaluates"]}},"required":["id","rel_type"]},{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","const":"conditional"},"condition":{"type":"object","properties":{"operator":{"type":"string","enum":["EQ","NEQ","IN","NOT_IN","NOT_EMPTY"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["operator","value"]}},"required":["id","rel_type","condition"]}]}},"minDurationSeconds":{"type":"number","exclusiveMinimum":0},"maxDurationSeconds":{"type":"number","exclusiveMinimum":0},"allowedLabels":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"}},"required":["label","value"],"additionalProperties":false}},"dynamic":{"type":"boolean","const":false},"maxEntities":{"type":"null"}},"required":["fieldProxyId","entityType","optional","jsonPath","description","dynamic"],"additionalProperties":false},{"type":"object","properties":{"fieldProxyId":{"type":"string"},"entityType":{"type":"string"},"optional":{"type":"boolean"},"jsonPath":{"type":"string"},"description":{"type":"string"},"relations":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","enum":["context","references","depends_on","evaluates"]}},"required":["id","rel_type"]},{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","const":"conditional"},"condition":{"type":"object","properties":{"operator":{"type":"string","enum":["EQ","NEQ","IN","NOT_IN","NOT_EMPTY"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["operator","value"]}},"required":["id","rel_type","condition"]}]}},"minDurationSeconds":{"type":"number","exclusiveMinimum":0},"maxDurationSeconds":{"type":"number","exclusiveMinimum":0},"allowedLabels":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"}},"required":["label","value"],"additionalProperties":false}},"dynamic":{"type":"boolean","const":true},"maxEntities":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["fieldProxyId","entityType","optional","jsonPath","description","dynamic"],"additionalProperties":false}]}}},"required":["input","output"],"additionalProperties":false},"qualityCriteria":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"qualityElement":{"type":"string"},"thresholds":{"type":"object","properties":{"pass":{"type":"string"},"fail":{"type":"string"}},"required":["pass","fail"]},"targetEntity":{"type":"string"}},"required":["id","qualityElement","thresholds","targetEntity"]}},"instruction":{"type":"string"},"ui":{"type":"object","properties":{"code":{"type":"string"},"data":{"type":"string"},"preprocess":{"type":"string"},"postprocess":{"default":"return {};","type":"string"},"constants":{"type":"string"}},"required":["code","data","preprocess","constants"]},"qualityAssurance":{"default":{"qaMode":"llm_only","llmQaModelId":"gpt-5.4"},"oneOf":[{"type":"object","properties":{"qaMode":{"type":"string","const":"llm_only"},"llmQaModelId":{"default":"gpt-5.4","type":"string","enum":["gpt-5.4","gpt-5.4-mini","gpt-5","gpt-5-mini","claude-sonnet-4-6"]}},"required":["qaMode"]},{"type":"object","properties":{"qaMode":{"type":"string","const":"human_only"},"smartSamplingPercent":{"default":100,"type":"number","minimum":10,"maximum":100},"humanQaTimeForTask":{"type":"number","exclusiveMinimum":0}},"required":["qaMode"]},{"type":"object","properties":{"qaMode":{"type":"string","const":"hybrid"},"smartSamplingPercent":{"default":30,"type":"number","minimum":10,"maximum":100},"humanQaTimeForTask":{"type":"number","exclusiveMinimum":0},"llmQaModelId":{"default":"gpt-5.4","type":"string","enum":["gpt-5.4","gpt-5.4-mini","gpt-5","gpt-5-mini","claude-sonnet-4-6"]}},"required":["qaMode"]}]},"onboarding":{"type":"object","properties":{"enabled":{"type":"boolean"},"steps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"blocks":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"info"},"estimatedTime":{"type":"string"},"role":{"type":"string"},"goal":{"type":"string"},"successCriteria":{"type":"string"}},"required":["id","type","estimatedTime","role","goal","successCriteria"]},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"text"},"title":{"type":"string"},"content":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"markdown"},"value":{"type":"string"}},"required":["type","value"]}}},"required":["id","type"]},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"quiz"},"title":{"type":"string"},"content":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"markdown"},"value":{"type":"string"}},"required":["type","value"]}},"questions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["single-choice","multiple-choice"]},"title":{"type":"string"},"question":{"type":"string"},"hint":{"type":"string"},"correctAnswerFeedback":{"type":"string"},"incorrectAnswerFeedback":{"type":"string"},"options":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"correctAnswer":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["id","type","question","options","correctAnswer"]}}},"required":["id","type","questions"]},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"practice"},"title":{"type":"string"},"content":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"markdown"},"value":{"type":"string"}},"required":["type","value"]}},"imageUrl":{"type":"string"},"editorType":{"type":"string"},"editorConfig":{"type":"object","properties":{"rows":{"type":"number"},"language":{"type":"string"},"placeholder":{"type":"string"}}},"validators":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"criteria":{"type":"string"}},"required":["id","name","description","criteria"]}}},"required":["id","type"]},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"consent"},"title":{"type":"string"},"content":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"markdown"},"value":{"type":"string"}},"required":["type","value"]}},"consentLabel":{"type":"string"}},"required":["id","type","consentLabel"]}]}}},"required":["id"]}},"info":{"type":"object","properties":{"estimatedTime":{"type":"string"},"role":{"type":"string"},"goal":{"type":"string"},"successCriteria":{"type":"string"}},"required":["estimatedTime","role","goal","successCriteria"]}},"required":["enabled","steps","info"]},"reuseAudienceWithNodeId":{"default":null,"anyOf":[{"type":"object","properties":{"pipelineId":{"type":"string","pattern":"^pl\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"nodeId":{"type":"string"}},"required":["pipelineId","nodeId"],"additionalProperties":false},{"type":"null"}]},"checks":{"type":"object","propertyNames":{"type":"string","enum":["ui","llmqa"]},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"input":{"type":"string"}},"required":["id","name","input"]}},"required":["ui","llmqa"]}},"required":["about","publicName","audienceAndPricing","entities","qualityCriteria","instruction","ui","onboarding"],"additionalProperties":false},"positions":{"type":"object","propertyNames":{"type":"string","enum":["main"]},"additionalProperties":{"type":"array","prefixItems":[{"type":"number","description":"X"},{"type":"number","description":"Y"}]},"required":["main"]},"__blockGroupType":{"type":"string","enum":["main"]},"__blockType":{"type":"string","enum":["main"]},"__inputHandleType":{"type":"string","enum":["input"]},"__outputHandleType":{"type":"string","enum":["output"]}},"required":["id","type","settings","positions"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"match"},"settings":{"type":"object","properties":{"about":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"projectType":{"type":"string","enum":["general","data_collection"]}},"required":["name"],"additionalProperties":false},"conditions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"logic":{"default":"and","type":"string","enum":["and","or"]},"predicates":{"type":"array","items":{"type":"object","properties":{"fieldProxyId":{"type":"string"},"jsonPath":{"type":"string"},"operator":{"type":"string","enum":["text_eq","text_neq"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]}},"required":["fieldProxyId","jsonPath","operator","value"],"additionalProperties":false}}},"required":["name","predicates"],"additionalProperties":false}},"fieldProxies":{"type":"object","properties":{"input":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"optional":{"type":"boolean"}},"required":["id","optional"],"additionalProperties":false}}},"required":["input"]}},"required":["about","conditions","fieldProxies"],"additionalProperties":false},"positions":{"type":"object","propertyNames":{"type":"string","enum":["main"]},"additionalProperties":{"type":"array","prefixItems":[{"type":"number","description":"X"},{"type":"number","description":"Y"}]},"required":["main"]},"__blockGroupType":{"type":"string","enum":["main"]},"__blockType":{"type":"string","enum":["main"]},"__inputHandleType":{"type":"string","enum":["input"]},"__outputHandleType":{"anyOf":[{"type":"string","pattern":"^matched_\\d+$"},{"type":"string","const":"default"}]}},"required":["id","type","settings","positions"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"quorum_sft"},"settings":{"type":"object","properties":{"about":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"projectType":{"type":"string","enum":["general","data_collection"]}},"required":["name"],"additionalProperties":false},"publicName":{"type":"string"},"audienceAndPricing":{"type":"object","properties":{"verifiedExperts":{"type":"boolean"},"audience":{"type":"object","properties":{"languages":{"type":"object","properties":{"type":{"type":"string","enum":["or","and"]},"values":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}}},"required":["type","values"],"additionalProperties":false},"specializations":{"type":"object","properties":{"type":{"type":"string","enum":["or","and"]},"values":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"qualificationId":{"type":"string"}},"required":["value","qualificationId"],"additionalProperties":false}}},"required":["type","values"],"additionalProperties":false},"countries":{"type":"object","properties":{"type":{"type":"string","enum":["or"]},"values":{"type":"array","items":{"type":"string"}}},"required":["type","values"],"additionalProperties":false}},"required":["languages","specializations","countries"],"additionalProperties":false},"pricePerTask":{"type":"number"},"timeForTask":{"type":"number"},"perExpertCapEnabled":{"default":false,"type":"boolean"},"perExpertCapValue":{"default":1,"type":"integer","exclusiveMinimum":0,"maximum":50}},"required":["verifiedExperts","audience","pricePerTask","timeForTask"],"additionalProperties":false},"entities":{"type":"object","properties":{"input":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"fieldProxyId":{"type":"string"},"entityType":{"type":"string"},"optional":{"type":"boolean"},"jsonPath":{"type":"string"},"description":{"type":"string"},"relations":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","enum":["context","references","depends_on","evaluates"]}},"required":["id","rel_type"]},{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","const":"conditional"},"condition":{"type":"object","properties":{"operator":{"type":"string","enum":["EQ","NEQ","IN","NOT_IN","NOT_EMPTY"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["operator","value"]}},"required":["id","rel_type","condition"]}]}},"minDurationSeconds":{"type":"number","exclusiveMinimum":0},"maxDurationSeconds":{"type":"number","exclusiveMinimum":0},"allowedLabels":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"}},"required":["label","value"],"additionalProperties":false}},"dynamic":{"type":"boolean","const":false},"maxEntities":{"type":"null"}},"required":["fieldProxyId","entityType","optional","jsonPath","description","dynamic"],"additionalProperties":false},{"type":"object","properties":{"fieldProxyId":{"type":"string"},"entityType":{"type":"string"},"optional":{"type":"boolean"},"jsonPath":{"type":"string"},"description":{"type":"string"},"relations":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","enum":["context","references","depends_on","evaluates"]}},"required":["id","rel_type"]},{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","const":"conditional"},"condition":{"type":"object","properties":{"operator":{"type":"string","enum":["EQ","NEQ","IN","NOT_IN","NOT_EMPTY"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["operator","value"]}},"required":["id","rel_type","condition"]}]}},"minDurationSeconds":{"type":"number","exclusiveMinimum":0},"maxDurationSeconds":{"type":"number","exclusiveMinimum":0},"allowedLabels":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"}},"required":["label","value"],"additionalProperties":false}},"dynamic":{"type":"boolean","const":true},"maxEntities":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["fieldProxyId","entityType","optional","jsonPath","description","dynamic"],"additionalProperties":false}]}},"output":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"fieldProxyId":{"type":"string"},"entityType":{"type":"string"},"optional":{"type":"boolean"},"jsonPath":{"type":"string"},"description":{"type":"string"},"relations":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","enum":["context","references","depends_on","evaluates"]}},"required":["id","rel_type"]},{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","const":"conditional"},"condition":{"type":"object","properties":{"operator":{"type":"string","enum":["EQ","NEQ","IN","NOT_IN","NOT_EMPTY"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["operator","value"]}},"required":["id","rel_type","condition"]}]}},"minDurationSeconds":{"type":"number","exclusiveMinimum":0},"maxDurationSeconds":{"type":"number","exclusiveMinimum":0},"allowedLabels":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"}},"required":["label","value"],"additionalProperties":false}},"dynamic":{"type":"boolean","const":false},"maxEntities":{"type":"null"}},"required":["fieldProxyId","entityType","optional","jsonPath","description","dynamic"],"additionalProperties":false},{"type":"object","properties":{"fieldProxyId":{"type":"string"},"entityType":{"type":"string"},"optional":{"type":"boolean"},"jsonPath":{"type":"string"},"description":{"type":"string"},"relations":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","enum":["context","references","depends_on","evaluates"]}},"required":["id","rel_type"]},{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","const":"conditional"},"condition":{"type":"object","properties":{"operator":{"type":"string","enum":["EQ","NEQ","IN","NOT_IN","NOT_EMPTY"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["operator","value"]}},"required":["id","rel_type","condition"]}]}},"minDurationSeconds":{"type":"number","exclusiveMinimum":0},"maxDurationSeconds":{"type":"number","exclusiveMinimum":0},"allowedLabels":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"}},"required":["label","value"],"additionalProperties":false}},"dynamic":{"type":"boolean","const":true},"maxEntities":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["fieldProxyId","entityType","optional","jsonPath","description","dynamic"],"additionalProperties":false}]}}},"required":["input","output"],"additionalProperties":false},"qualityCriteria":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"qualityElement":{"type":"string"},"thresholds":{"type":"object","properties":{"pass":{"type":"string"},"fail":{"type":"string"}},"required":["pass","fail"]},"targetEntity":{"type":"string"}},"required":["id","qualityElement","thresholds","targetEntity"]}},"offboardingRules":{"default":[],"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["mv_agreement"]},"agreementScale":{"type":"string"}},"required":["id"],"additionalProperties":false}},"instruction":{"type":"string"},"ui":{"type":"object","properties":{"code":{"type":"string"},"data":{"type":"string"},"preprocess":{"type":"string"},"postprocess":{"default":"return {};","type":"string"},"constants":{"type":"string"}},"required":["code","data","preprocess","constants"]},"qualityAssurance":{"default":{"qaMode":"llm_only","llmQaModelId":"gpt-5.4"},"oneOf":[{"type":"object","properties":{"qaMode":{"type":"string","const":"llm_only"},"llmQaModelId":{"default":"gpt-5.4","type":"string","enum":["gpt-5.4","gpt-5.4-mini","gpt-5","gpt-5-mini","claude-sonnet-4-6"]}},"required":["qaMode"]},{"type":"object","properties":{"qaMode":{"type":"string","const":"none"}},"required":["qaMode"]}]},"overlap":{"type":"integer","minimum":1,"maximum":100},"onboarding":{"type":"object","properties":{"enabled":{"type":"boolean"},"steps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"blocks":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"info"},"estimatedTime":{"type":"string"},"role":{"type":"string"},"goal":{"type":"string"},"successCriteria":{"type":"string"}},"required":["id","type","estimatedTime","role","goal","successCriteria"]},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"text"},"title":{"type":"string"},"content":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"markdown"},"value":{"type":"string"}},"required":["type","value"]}}},"required":["id","type"]},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"quiz"},"title":{"type":"string"},"content":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"markdown"},"value":{"type":"string"}},"required":["type","value"]}},"questions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["single-choice","multiple-choice"]},"title":{"type":"string"},"question":{"type":"string"},"hint":{"type":"string"},"correctAnswerFeedback":{"type":"string"},"incorrectAnswerFeedback":{"type":"string"},"options":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"correctAnswer":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["id","type","question","options","correctAnswer"]}}},"required":["id","type","questions"]},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"practice"},"title":{"type":"string"},"content":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"markdown"},"value":{"type":"string"}},"required":["type","value"]}},"imageUrl":{"type":"string"},"editorType":{"type":"string"},"editorConfig":{"type":"object","properties":{"rows":{"type":"number"},"language":{"type":"string"},"placeholder":{"type":"string"}}},"validators":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"criteria":{"type":"string"}},"required":["id","name","description","criteria"]}}},"required":["id","type"]},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"consent"},"title":{"type":"string"},"content":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"markdown"},"value":{"type":"string"}},"required":["type","value"]}},"consentLabel":{"type":"string"}},"required":["id","type","consentLabel"]}]}}},"required":["id"]}},"info":{"type":"object","properties":{"estimatedTime":{"type":"string"},"role":{"type":"string"},"goal":{"type":"string"},"successCriteria":{"type":"string"}},"required":["estimatedTime","role","goal","successCriteria"]}},"required":["enabled","steps","info"]},"reuseAudienceWithNodeId":{"default":null,"anyOf":[{"type":"object","properties":{"pipelineId":{"type":"string","pattern":"^pl\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"nodeId":{"type":"string"}},"required":["pipelineId","nodeId"],"additionalProperties":false},{"type":"null"}]},"checks":{"type":"object","propertyNames":{"type":"string","enum":["ui","llmqa"]},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"input":{"type":"string"}},"required":["id","name","input"]}},"required":["ui","llmqa"]}},"required":["about","publicName","audienceAndPricing","entities","qualityCriteria","instruction","ui","overlap","onboarding"],"additionalProperties":false},"positions":{"type":"object","propertyNames":{"type":"string","enum":["main"]},"additionalProperties":{"type":"array","prefixItems":[{"type":"number","description":"X"},{"type":"number","description":"Y"}]},"required":["main"]},"__blockGroupType":{"type":"string","enum":["main"]},"__blockType":{"type":"string","enum":["main"]},"__inputHandleType":{"type":"string","enum":["input"]},"__outputHandleType":{"type":"string","enum":["output"]}},"required":["id","type","settings","positions"],"additionalProperties":false}]}},"edges":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"sourceNodeId":{"type":"string"},"sourceHandleId":{"type":"string"},"targetNodeId":{"type":"string"},"targetHandleId":{"type":"string"},"type":{"type":"string","const":"normal"},"settings":{"type":"object","properties":{},"additionalProperties":{}}},"required":["sourceNodeId","sourceHandleId","targetNodeId","targetHandleId","type","settings"],"additionalProperties":false}]}}},"required":["fieldProxies","nodes","edges"],"additionalProperties":false}},"required":["name","dbGraph"]}}}},"description":"Create a pipeline from an exported .pipeline file (name + dbGraph). Rejects if it references secrets the project does not have.","responses":{"200":{"description":"Pipeline imported","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}}},"400":{"description":"Pipeline references secrets missing from the project","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"404":{"description":"Project not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/pipelines/{pipelineId}/dataset":{"post":{"operationId":"attachPipelineDataset","parameters":[{"in":"path","name":"pipelineId","schema":{"$ref":"#/components/schemas/PipelineId"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"datasetId":{"type":"string","pattern":"^ds\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"itemLimit":{"description":"Optional cap on how many items the run will process.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"itemFilter":{"description":"Optional filter selecting which dataset items a run processes — by field values, field sources, missing revision fields, or a created-before cutoff. Omitted means all items; supplying it replaces any previously attached filter.","type":"object","properties":{"fieldValues":{"default":[],"type":"array","items":{"type":"object","properties":{"jsonPath":{"type":"string","minLength":1},"operator":{"type":"string","enum":["text_eq","text_neq"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"fieldId":{"type":"string","pattern":"^df\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"latestOnly":{"default":true,"type":"boolean"},"sources":{"default":[],"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"user"},"userId":{"type":"string","minLength":1}},"required":["type","userId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"system"},"source":{"type":"string","minLength":1}},"required":["type","source"],"additionalProperties":false}]}}},"required":["jsonPath","operator","value","fieldId"],"additionalProperties":false}},"fieldSources":{"default":[],"type":"array","items":{"type":"object","properties":{"fieldId":{"type":"string","pattern":"^df\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"sources":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"user"},"userId":{"type":"string","minLength":1}},"required":["type","userId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"system"},"source":{"type":"string","minLength":1}},"required":["type","source"],"additionalProperties":false}]}}},"required":["fieldId","sources"],"additionalProperties":false}},"missingRevisionFields":{"default":[],"type":"array","items":{"type":"string","pattern":"^df\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"}},"createdBefore":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"additionalProperties":false}},"required":["datasetId"]}}}},"description":"Attach a dataset to a pipeline (sets the root input dataset). Optionally cap how many items a run processes with itemLimit, or select a subset with itemFilter.","responses":{"200":{"description":"Dataset attached","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}}},"404":{"description":"Pipeline or dataset not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"409":{"description":"Pipeline has an active run and cannot be changed","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/pipelines/{pipelineId}/export":{"get":{"operationId":"exportPipeline","parameters":[{"in":"path","name":"pipelineId","schema":{"$ref":"#/components/schemas/PipelineId"},"required":true}],"description":"Export a pipeline as a portable .pipeline file (name + dbGraph) that can be imported into another project. The bound dataset is omitted so the file is portable.","responses":{"200":{"description":"Pipeline configuration","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"dbGraph":{"type":"object","properties":{"fieldProxies":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"jsonSchema":{"type":"string"}},"required":["id","name","jsonSchema"],"additionalProperties":false}},"nodes":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"root"},"settings":{"type":"object","properties":{"datasetId":{"type":"string","pattern":"^ds\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"itemFilter":{"type":"object","properties":{"fieldValues":{"default":[],"type":"array","items":{"type":"object","properties":{"jsonPath":{"type":"string","minLength":1},"operator":{"type":"string","enum":["text_eq","text_neq"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"fieldId":{"type":"string","pattern":"^df\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"latestOnly":{"default":true,"type":"boolean"},"sources":{"default":[],"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"user"},"userId":{"type":"string","minLength":1}},"required":["type","userId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"system"},"source":{"type":"string","minLength":1}},"required":["type","source"],"additionalProperties":false}]}}},"required":["jsonPath","operator","value","fieldId"],"additionalProperties":false}},"fieldSources":{"default":[],"type":"array","items":{"type":"object","properties":{"fieldId":{"type":"string","pattern":"^df\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"sources":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"user"},"userId":{"type":"string","minLength":1}},"required":["type","userId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"system"},"source":{"type":"string","minLength":1}},"required":["type","source"],"additionalProperties":false}]}}},"required":["fieldId","sources"],"additionalProperties":false}},"missingRevisionFields":{"default":[],"type":"array","items":{"type":"string","pattern":"^df\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"}},"createdBefore":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"additionalProperties":false},"itemLimit":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"startedFieldProxies":{"type":"object","properties":{"output":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"optional":{"type":"boolean"}},"required":["id","optional"],"additionalProperties":false}}},"required":["output"]},"completedFieldProxies":{"type":"object","properties":{"input":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"optional":{"type":"boolean"}},"required":["id","optional"],"additionalProperties":false}}},"required":["input"]}},"required":["startedFieldProxies","completedFieldProxies"],"additionalProperties":false},"positions":{"type":"object","propertyNames":{"type":"string","enum":["starting","ending"]},"additionalProperties":{"type":"array","prefixItems":[{"type":"number","description":"X"},{"type":"number","description":"Y"}]},"required":["starting","ending"]},"__blockGroupType":{"type":"string","enum":["starting","ending"]},"__blockType":{"type":"string","enum":["started","completed"]},"__inputHandleType":{"type":"string","enum":["completed"]},"__outputHandleType":{"type":"string","enum":["started"]}},"required":["id","type","settings","positions"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"code"},"settings":{"type":"object","properties":{"about":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"projectType":{"type":"string","enum":["general","data_collection"]}},"required":["name"],"additionalProperties":false},"fieldProxies":{"type":"object","properties":{"input":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"optional":{"type":"boolean"}},"required":["id","optional"],"additionalProperties":false}},"output":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"optional":{"type":"boolean"}},"required":["id","optional"],"additionalProperties":false}}},"required":["input","output"]},"code":{"type":"object","properties":{"code":{"type":"string"}},"required":["code"],"additionalProperties":false},"envVars":{"default":[],"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"static"},"name":{"type":"string"},"value":{"type":"string"}},"required":["type","name","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"secret"},"name":{"type":"string"},"secretName":{"type":"string"}},"required":["type","name","secretName"],"additionalProperties":false}]}},"checks":{"type":"object","propertyNames":{"type":"string","enum":["code"]},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"input":{"type":"string"}},"required":["id","name","input"]}},"required":["code"]}},"required":["about","fieldProxies","code"],"additionalProperties":false},"positions":{"type":"object","propertyNames":{"type":"string","enum":["main"]},"additionalProperties":{"type":"array","prefixItems":[{"type":"number","description":"X"},{"type":"number","description":"Y"}]},"required":["main"]},"__blockGroupType":{"type":"string","enum":["main"]},"__blockType":{"type":"string","enum":["main"]},"__inputHandleType":{"type":"string","enum":["input"]},"__outputHandleType":{"type":"string","enum":["output"]}},"required":["id","type","settings","positions"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"generation_sft"},"settings":{"type":"object","properties":{"about":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"projectType":{"type":"string","enum":["general","data_collection"]}},"required":["name"],"additionalProperties":false},"publicName":{"type":"string"},"audienceAndPricing":{"type":"object","properties":{"verifiedExperts":{"type":"boolean"},"audience":{"type":"object","properties":{"languages":{"type":"object","properties":{"type":{"type":"string","enum":["or","and"]},"values":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}}},"required":["type","values"],"additionalProperties":false},"specializations":{"type":"object","properties":{"type":{"type":"string","enum":["or","and"]},"values":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"qualificationId":{"type":"string"}},"required":["value","qualificationId"],"additionalProperties":false}}},"required":["type","values"],"additionalProperties":false},"countries":{"type":"object","properties":{"type":{"type":"string","enum":["or"]},"values":{"type":"array","items":{"type":"string"}}},"required":["type","values"],"additionalProperties":false}},"required":["languages","specializations","countries"],"additionalProperties":false},"pricePerTask":{"type":"number"},"timeForTask":{"type":"number"},"perExpertCapEnabled":{"default":false,"type":"boolean"},"perExpertCapValue":{"default":1,"type":"integer","exclusiveMinimum":0,"maximum":50}},"required":["verifiedExperts","audience","pricePerTask","timeForTask"],"additionalProperties":false},"entities":{"type":"object","properties":{"input":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"fieldProxyId":{"type":"string"},"entityType":{"type":"string"},"optional":{"type":"boolean"},"jsonPath":{"type":"string"},"description":{"type":"string"},"relations":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","enum":["context","references","depends_on","evaluates"]}},"required":["id","rel_type"]},{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","const":"conditional"},"condition":{"type":"object","properties":{"operator":{"type":"string","enum":["EQ","NEQ","IN","NOT_IN","NOT_EMPTY"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["operator","value"]}},"required":["id","rel_type","condition"]}]}},"minDurationSeconds":{"type":"number","exclusiveMinimum":0},"maxDurationSeconds":{"type":"number","exclusiveMinimum":0},"allowedLabels":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"}},"required":["label","value"],"additionalProperties":false}},"dynamic":{"type":"boolean","const":false},"maxEntities":{"type":"null"}},"required":["fieldProxyId","entityType","optional","jsonPath","description","dynamic"],"additionalProperties":false},{"type":"object","properties":{"fieldProxyId":{"type":"string"},"entityType":{"type":"string"},"optional":{"type":"boolean"},"jsonPath":{"type":"string"},"description":{"type":"string"},"relations":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","enum":["context","references","depends_on","evaluates"]}},"required":["id","rel_type"]},{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","const":"conditional"},"condition":{"type":"object","properties":{"operator":{"type":"string","enum":["EQ","NEQ","IN","NOT_IN","NOT_EMPTY"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["operator","value"]}},"required":["id","rel_type","condition"]}]}},"minDurationSeconds":{"type":"number","exclusiveMinimum":0},"maxDurationSeconds":{"type":"number","exclusiveMinimum":0},"allowedLabels":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"}},"required":["label","value"],"additionalProperties":false}},"dynamic":{"type":"boolean","const":true},"maxEntities":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["fieldProxyId","entityType","optional","jsonPath","description","dynamic"],"additionalProperties":false}]}},"output":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"fieldProxyId":{"type":"string"},"entityType":{"type":"string"},"optional":{"type":"boolean"},"jsonPath":{"type":"string"},"description":{"type":"string"},"relations":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","enum":["context","references","depends_on","evaluates"]}},"required":["id","rel_type"]},{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","const":"conditional"},"condition":{"type":"object","properties":{"operator":{"type":"string","enum":["EQ","NEQ","IN","NOT_IN","NOT_EMPTY"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["operator","value"]}},"required":["id","rel_type","condition"]}]}},"minDurationSeconds":{"type":"number","exclusiveMinimum":0},"maxDurationSeconds":{"type":"number","exclusiveMinimum":0},"allowedLabels":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"}},"required":["label","value"],"additionalProperties":false}},"dynamic":{"type":"boolean","const":false},"maxEntities":{"type":"null"}},"required":["fieldProxyId","entityType","optional","jsonPath","description","dynamic"],"additionalProperties":false},{"type":"object","properties":{"fieldProxyId":{"type":"string"},"entityType":{"type":"string"},"optional":{"type":"boolean"},"jsonPath":{"type":"string"},"description":{"type":"string"},"relations":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","enum":["context","references","depends_on","evaluates"]}},"required":["id","rel_type"]},{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","const":"conditional"},"condition":{"type":"object","properties":{"operator":{"type":"string","enum":["EQ","NEQ","IN","NOT_IN","NOT_EMPTY"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["operator","value"]}},"required":["id","rel_type","condition"]}]}},"minDurationSeconds":{"type":"number","exclusiveMinimum":0},"maxDurationSeconds":{"type":"number","exclusiveMinimum":0},"allowedLabels":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"}},"required":["label","value"],"additionalProperties":false}},"dynamic":{"type":"boolean","const":true},"maxEntities":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["fieldProxyId","entityType","optional","jsonPath","description","dynamic"],"additionalProperties":false}]}}},"required":["input","output"],"additionalProperties":false},"qualityCriteria":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"qualityElement":{"type":"string"},"thresholds":{"type":"object","properties":{"pass":{"type":"string"},"fail":{"type":"string"}},"required":["pass","fail"]},"targetEntity":{"type":"string"}},"required":["id","qualityElement","thresholds","targetEntity"]}},"instruction":{"type":"string"},"ui":{"type":"object","properties":{"code":{"type":"string"},"data":{"type":"string"},"preprocess":{"type":"string"},"postprocess":{"default":"return {};","type":"string"},"constants":{"type":"string"}},"required":["code","data","preprocess","constants"]},"qualityAssurance":{"default":{"qaMode":"llm_only","llmQaModelId":"gpt-5.4"},"oneOf":[{"type":"object","properties":{"qaMode":{"type":"string","const":"llm_only"},"llmQaModelId":{"default":"gpt-5.4","type":"string","enum":["gpt-5.4","gpt-5.4-mini","gpt-5","gpt-5-mini","claude-sonnet-4-6"]}},"required":["qaMode"]},{"type":"object","properties":{"qaMode":{"type":"string","const":"human_only"},"smartSamplingPercent":{"default":100,"type":"number","minimum":10,"maximum":100},"humanQaTimeForTask":{"type":"number","exclusiveMinimum":0}},"required":["qaMode"]},{"type":"object","properties":{"qaMode":{"type":"string","const":"hybrid"},"smartSamplingPercent":{"default":30,"type":"number","minimum":10,"maximum":100},"humanQaTimeForTask":{"type":"number","exclusiveMinimum":0},"llmQaModelId":{"default":"gpt-5.4","type":"string","enum":["gpt-5.4","gpt-5.4-mini","gpt-5","gpt-5-mini","claude-sonnet-4-6"]}},"required":["qaMode"]}]},"onboarding":{"type":"object","properties":{"enabled":{"type":"boolean"},"steps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"blocks":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"info"},"estimatedTime":{"type":"string"},"role":{"type":"string"},"goal":{"type":"string"},"successCriteria":{"type":"string"}},"required":["id","type","estimatedTime","role","goal","successCriteria"]},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"text"},"title":{"type":"string"},"content":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"markdown"},"value":{"type":"string"}},"required":["type","value"]}}},"required":["id","type"]},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"quiz"},"title":{"type":"string"},"content":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"markdown"},"value":{"type":"string"}},"required":["type","value"]}},"questions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["single-choice","multiple-choice"]},"title":{"type":"string"},"question":{"type":"string"},"hint":{"type":"string"},"correctAnswerFeedback":{"type":"string"},"incorrectAnswerFeedback":{"type":"string"},"options":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"correctAnswer":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["id","type","question","options","correctAnswer"]}}},"required":["id","type","questions"]},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"practice"},"title":{"type":"string"},"content":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"markdown"},"value":{"type":"string"}},"required":["type","value"]}},"imageUrl":{"type":"string"},"editorType":{"type":"string"},"editorConfig":{"type":"object","properties":{"rows":{"type":"number"},"language":{"type":"string"},"placeholder":{"type":"string"}}},"validators":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"criteria":{"type":"string"}},"required":["id","name","description","criteria"]}}},"required":["id","type"]},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"consent"},"title":{"type":"string"},"content":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"markdown"},"value":{"type":"string"}},"required":["type","value"]}},"consentLabel":{"type":"string"}},"required":["id","type","consentLabel"]}]}}},"required":["id"]}},"info":{"type":"object","properties":{"estimatedTime":{"type":"string"},"role":{"type":"string"},"goal":{"type":"string"},"successCriteria":{"type":"string"}},"required":["estimatedTime","role","goal","successCriteria"]}},"required":["enabled","steps","info"]},"reuseAudienceWithNodeId":{"default":null,"anyOf":[{"type":"object","properties":{"pipelineId":{"type":"string","pattern":"^pl\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"nodeId":{"type":"string"}},"required":["pipelineId","nodeId"],"additionalProperties":false},{"type":"null"}]},"checks":{"type":"object","propertyNames":{"type":"string","enum":["ui","llmqa"]},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"input":{"type":"string"}},"required":["id","name","input"]}},"required":["ui","llmqa"]}},"required":["about","publicName","audienceAndPricing","entities","qualityCriteria","instruction","ui","onboarding"],"additionalProperties":false},"positions":{"type":"object","propertyNames":{"type":"string","enum":["main"]},"additionalProperties":{"type":"array","prefixItems":[{"type":"number","description":"X"},{"type":"number","description":"Y"}]},"required":["main"]},"__blockGroupType":{"type":"string","enum":["main"]},"__blockType":{"type":"string","enum":["main"]},"__inputHandleType":{"type":"string","enum":["input"]},"__outputHandleType":{"type":"string","enum":["output"]}},"required":["id","type","settings","positions"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"match"},"settings":{"type":"object","properties":{"about":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"projectType":{"type":"string","enum":["general","data_collection"]}},"required":["name"],"additionalProperties":false},"conditions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"logic":{"default":"and","type":"string","enum":["and","or"]},"predicates":{"type":"array","items":{"type":"object","properties":{"fieldProxyId":{"type":"string"},"jsonPath":{"type":"string"},"operator":{"type":"string","enum":["text_eq","text_neq"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]}},"required":["fieldProxyId","jsonPath","operator","value"],"additionalProperties":false}}},"required":["name","predicates"],"additionalProperties":false}},"fieldProxies":{"type":"object","properties":{"input":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"optional":{"type":"boolean"}},"required":["id","optional"],"additionalProperties":false}}},"required":["input"]}},"required":["about","conditions","fieldProxies"],"additionalProperties":false},"positions":{"type":"object","propertyNames":{"type":"string","enum":["main"]},"additionalProperties":{"type":"array","prefixItems":[{"type":"number","description":"X"},{"type":"number","description":"Y"}]},"required":["main"]},"__blockGroupType":{"type":"string","enum":["main"]},"__blockType":{"type":"string","enum":["main"]},"__inputHandleType":{"type":"string","enum":["input"]},"__outputHandleType":{"anyOf":[{"type":"string","pattern":"^matched_\\d+$"},{"type":"string","const":"default"}]}},"required":["id","type","settings","positions"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"quorum_sft"},"settings":{"type":"object","properties":{"about":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"projectType":{"type":"string","enum":["general","data_collection"]}},"required":["name"],"additionalProperties":false},"publicName":{"type":"string"},"audienceAndPricing":{"type":"object","properties":{"verifiedExperts":{"type":"boolean"},"audience":{"type":"object","properties":{"languages":{"type":"object","properties":{"type":{"type":"string","enum":["or","and"]},"values":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}}},"required":["type","values"],"additionalProperties":false},"specializations":{"type":"object","properties":{"type":{"type":"string","enum":["or","and"]},"values":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"qualificationId":{"type":"string"}},"required":["value","qualificationId"],"additionalProperties":false}}},"required":["type","values"],"additionalProperties":false},"countries":{"type":"object","properties":{"type":{"type":"string","enum":["or"]},"values":{"type":"array","items":{"type":"string"}}},"required":["type","values"],"additionalProperties":false}},"required":["languages","specializations","countries"],"additionalProperties":false},"pricePerTask":{"type":"number"},"timeForTask":{"type":"number"},"perExpertCapEnabled":{"default":false,"type":"boolean"},"perExpertCapValue":{"default":1,"type":"integer","exclusiveMinimum":0,"maximum":50}},"required":["verifiedExperts","audience","pricePerTask","timeForTask"],"additionalProperties":false},"entities":{"type":"object","properties":{"input":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"fieldProxyId":{"type":"string"},"entityType":{"type":"string"},"optional":{"type":"boolean"},"jsonPath":{"type":"string"},"description":{"type":"string"},"relations":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","enum":["context","references","depends_on","evaluates"]}},"required":["id","rel_type"]},{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","const":"conditional"},"condition":{"type":"object","properties":{"operator":{"type":"string","enum":["EQ","NEQ","IN","NOT_IN","NOT_EMPTY"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["operator","value"]}},"required":["id","rel_type","condition"]}]}},"minDurationSeconds":{"type":"number","exclusiveMinimum":0},"maxDurationSeconds":{"type":"number","exclusiveMinimum":0},"allowedLabels":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"}},"required":["label","value"],"additionalProperties":false}},"dynamic":{"type":"boolean","const":false},"maxEntities":{"type":"null"}},"required":["fieldProxyId","entityType","optional","jsonPath","description","dynamic"],"additionalProperties":false},{"type":"object","properties":{"fieldProxyId":{"type":"string"},"entityType":{"type":"string"},"optional":{"type":"boolean"},"jsonPath":{"type":"string"},"description":{"type":"string"},"relations":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","enum":["context","references","depends_on","evaluates"]}},"required":["id","rel_type"]},{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","const":"conditional"},"condition":{"type":"object","properties":{"operator":{"type":"string","enum":["EQ","NEQ","IN","NOT_IN","NOT_EMPTY"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["operator","value"]}},"required":["id","rel_type","condition"]}]}},"minDurationSeconds":{"type":"number","exclusiveMinimum":0},"maxDurationSeconds":{"type":"number","exclusiveMinimum":0},"allowedLabels":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"}},"required":["label","value"],"additionalProperties":false}},"dynamic":{"type":"boolean","const":true},"maxEntities":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["fieldProxyId","entityType","optional","jsonPath","description","dynamic"],"additionalProperties":false}]}},"output":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"fieldProxyId":{"type":"string"},"entityType":{"type":"string"},"optional":{"type":"boolean"},"jsonPath":{"type":"string"},"description":{"type":"string"},"relations":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","enum":["context","references","depends_on","evaluates"]}},"required":["id","rel_type"]},{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","const":"conditional"},"condition":{"type":"object","properties":{"operator":{"type":"string","enum":["EQ","NEQ","IN","NOT_IN","NOT_EMPTY"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["operator","value"]}},"required":["id","rel_type","condition"]}]}},"minDurationSeconds":{"type":"number","exclusiveMinimum":0},"maxDurationSeconds":{"type":"number","exclusiveMinimum":0},"allowedLabels":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"}},"required":["label","value"],"additionalProperties":false}},"dynamic":{"type":"boolean","const":false},"maxEntities":{"type":"null"}},"required":["fieldProxyId","entityType","optional","jsonPath","description","dynamic"],"additionalProperties":false},{"type":"object","properties":{"fieldProxyId":{"type":"string"},"entityType":{"type":"string"},"optional":{"type":"boolean"},"jsonPath":{"type":"string"},"description":{"type":"string"},"relations":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","enum":["context","references","depends_on","evaluates"]}},"required":["id","rel_type"]},{"type":"object","properties":{"id":{"type":"string"},"rel_type":{"type":"string","const":"conditional"},"condition":{"type":"object","properties":{"operator":{"type":"string","enum":["EQ","NEQ","IN","NOT_IN","NOT_EMPTY"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["operator","value"]}},"required":["id","rel_type","condition"]}]}},"minDurationSeconds":{"type":"number","exclusiveMinimum":0},"maxDurationSeconds":{"type":"number","exclusiveMinimum":0},"allowedLabels":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"}},"required":["label","value"],"additionalProperties":false}},"dynamic":{"type":"boolean","const":true},"maxEntities":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["fieldProxyId","entityType","optional","jsonPath","description","dynamic"],"additionalProperties":false}]}}},"required":["input","output"],"additionalProperties":false},"qualityCriteria":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"qualityElement":{"type":"string"},"thresholds":{"type":"object","properties":{"pass":{"type":"string"},"fail":{"type":"string"}},"required":["pass","fail"]},"targetEntity":{"type":"string"}},"required":["id","qualityElement","thresholds","targetEntity"]}},"offboardingRules":{"default":[],"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["mv_agreement"]},"agreementScale":{"type":"string"}},"required":["id"],"additionalProperties":false}},"instruction":{"type":"string"},"ui":{"type":"object","properties":{"code":{"type":"string"},"data":{"type":"string"},"preprocess":{"type":"string"},"postprocess":{"default":"return {};","type":"string"},"constants":{"type":"string"}},"required":["code","data","preprocess","constants"]},"qualityAssurance":{"default":{"qaMode":"llm_only","llmQaModelId":"gpt-5.4"},"oneOf":[{"type":"object","properties":{"qaMode":{"type":"string","const":"llm_only"},"llmQaModelId":{"default":"gpt-5.4","type":"string","enum":["gpt-5.4","gpt-5.4-mini","gpt-5","gpt-5-mini","claude-sonnet-4-6"]}},"required":["qaMode"]},{"type":"object","properties":{"qaMode":{"type":"string","const":"none"}},"required":["qaMode"]}]},"overlap":{"type":"integer","minimum":1,"maximum":100},"onboarding":{"type":"object","properties":{"enabled":{"type":"boolean"},"steps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"blocks":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"info"},"estimatedTime":{"type":"string"},"role":{"type":"string"},"goal":{"type":"string"},"successCriteria":{"type":"string"}},"required":["id","type","estimatedTime","role","goal","successCriteria"]},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"text"},"title":{"type":"string"},"content":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"markdown"},"value":{"type":"string"}},"required":["type","value"]}}},"required":["id","type"]},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"quiz"},"title":{"type":"string"},"content":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"markdown"},"value":{"type":"string"}},"required":["type","value"]}},"questions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["single-choice","multiple-choice"]},"title":{"type":"string"},"question":{"type":"string"},"hint":{"type":"string"},"correctAnswerFeedback":{"type":"string"},"incorrectAnswerFeedback":{"type":"string"},"options":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"]}},"correctAnswer":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"required":["id","type","question","options","correctAnswer"]}}},"required":["id","type","questions"]},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"practice"},"title":{"type":"string"},"content":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"markdown"},"value":{"type":"string"}},"required":["type","value"]}},"imageUrl":{"type":"string"},"editorType":{"type":"string"},"editorConfig":{"type":"object","properties":{"rows":{"type":"number"},"language":{"type":"string"},"placeholder":{"type":"string"}}},"validators":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"criteria":{"type":"string"}},"required":["id","name","description","criteria"]}}},"required":["id","type"]},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"consent"},"title":{"type":"string"},"content":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"markdown"},"value":{"type":"string"}},"required":["type","value"]}},"consentLabel":{"type":"string"}},"required":["id","type","consentLabel"]}]}}},"required":["id"]}},"info":{"type":"object","properties":{"estimatedTime":{"type":"string"},"role":{"type":"string"},"goal":{"type":"string"},"successCriteria":{"type":"string"}},"required":["estimatedTime","role","goal","successCriteria"]}},"required":["enabled","steps","info"]},"reuseAudienceWithNodeId":{"default":null,"anyOf":[{"type":"object","properties":{"pipelineId":{"type":"string","pattern":"^pl\\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"nodeId":{"type":"string"}},"required":["pipelineId","nodeId"],"additionalProperties":false},{"type":"null"}]},"checks":{"type":"object","propertyNames":{"type":"string","enum":["ui","llmqa"]},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"input":{"type":"string"}},"required":["id","name","input"]}},"required":["ui","llmqa"]}},"required":["about","publicName","audienceAndPricing","entities","qualityCriteria","instruction","ui","overlap","onboarding"],"additionalProperties":false},"positions":{"type":"object","propertyNames":{"type":"string","enum":["main"]},"additionalProperties":{"type":"array","prefixItems":[{"type":"number","description":"X"},{"type":"number","description":"Y"}]},"required":["main"]},"__blockGroupType":{"type":"string","enum":["main"]},"__blockType":{"type":"string","enum":["main"]},"__inputHandleType":{"type":"string","enum":["input"]},"__outputHandleType":{"type":"string","enum":["output"]}},"required":["id","type","settings","positions"],"additionalProperties":false}]}},"edges":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"sourceNodeId":{"type":"string"},"sourceHandleId":{"type":"string"},"targetNodeId":{"type":"string"},"targetHandleId":{"type":"string"},"type":{"type":"string","const":"normal"},"settings":{"type":"object","properties":{},"additionalProperties":{}}},"required":["sourceNodeId","sourceHandleId","targetNodeId","targetHandleId","type","settings"],"additionalProperties":false}]}}},"required":["fieldProxies","nodes","edges"],"additionalProperties":false}},"required":["name","dbGraph"]}}}},"404":{"description":"Pipeline not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/pipelines/{pipelineId}/copy":{"post":{"operationId":"copyPipeline","parameters":[{"in":"path","name":"pipelineId","schema":{"$ref":"#/components/schemas/PipelineId"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"description":"Name for the copy. Defaults to the source pipeline name.","type":"string","minLength":1}}}}}},"description":"Create a new pipeline in the same project by copying an existing one (its full configuration, including any attached dataset).","responses":{"200":{"description":"Pipeline copied","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}}},"404":{"description":"Pipeline not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/pipelines/{pipelineId}/runs":{"post":{"operationId":"createPipelineRun","parameters":[{"in":"path","name":"pipelineId","schema":{"$ref":"#/components/schemas/PipelineId"},"required":true}],"description":"Start a run of a pipeline over its attached dataset.","responses":{"200":{"description":"Run started","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunJob"}}}},"400":{"description":"Pipeline is not runnable (e.g. missing delivery order, no dataset, too many items)","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"404":{"description":"Pipeline not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"409":{"description":"Pipeline already has an active run","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}},"get":{"operationId":"listPipelineRuns","parameters":[{"in":"path","name":"pipelineId","schema":{"$ref":"#/components/schemas/PipelineId"},"required":true},{"in":"query","name":"limit","schema":{"default":20,"type":"integer","minimum":1,"maximum":100}},{"in":"query","name":"offset","schema":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991}}],"description":"List the runs of a pipeline (newest first). Poll GET /runs/:runId for status.","responses":{"200":{"description":"List runs","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"type":"object","properties":{"runs":{"type":"array","items":{"$ref":"#/components/schemas/RunSummary"}},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["runs","pagination"]}}}},"404":{"description":"Pipeline not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/runs/{runId}":{"get":{"operationId":"getPipelineRun","parameters":[{"in":"path","name":"runId","schema":{"$ref":"#/components/schemas/RunId"},"required":true}],"description":"Poll a pipeline run job.","responses":{"200":{"description":"Run job status","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunJob"}}}},"404":{"description":"Run not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/runs/{runId}/cancel":{"post":{"operationId":"cancelPipelineRun","parameters":[{"in":"path","name":"runId","schema":{"$ref":"#/components/schemas/RunId"},"required":true}],"description":"Request cancellation of a run. The run stops processing remaining items; already-completed items are unaffected. Cancellation is asynchronous — poll GET /runs/:runId until the status settles.","responses":{"200":{"description":"Cancellation requested","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunJob"}}}},"404":{"description":"Run not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"409":{"description":"Run cannot be canceled (not yet deployed, or already canceling/finished)","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/datasets/{datasetId}/exports":{"post":{"operationId":"createDatasetExport","parameters":[{"in":"path","name":"datasetId","schema":{"$ref":"#/components/schemas/DatasetId"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"fields":{"minItems":1,"type":"array","items":{"type":"string"},"description":"Fields to include in the export, identified by field name or id."}},"required":["fields"]}}}},"description":"Start an export of selected dataset fields. Poll the returned job for the download URL.","responses":{"200":{"description":"Export started","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportJob"}}}},"400":{"description":"Unknown field name or id","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"404":{"description":"Dataset not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}},"/api/v2-beta/exports/{exportId}":{"get":{"operationId":"getDatasetExport","parameters":[{"in":"path","name":"exportId","schema":{"$ref":"#/components/schemas/ExportId"},"required":true}],"description":"Poll a dataset export job. When succeeded, result.downloadUrl is a presigned download link.","responses":{"200":{"description":"Export job status","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportJob"}}}},"404":{"description":"Export not found","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}},"429":{"description":"Rate limit exceeded","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"The maximum number of requests allowed in the current window."},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"The number of requests remaining in the current window."},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"The number of seconds until the current window resets."},"RateLimit-Policy":{"schema":{"type":"string"},"description":"The rate limit policy (e.g., \"60;w=60\")."}}}}}}}}