AI · AI
Data-labeling tasks, projects, and batches in the account they connected.
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
scaleai_delete_task_by_task_id_tagsWRITERemove the listed tags from a task. The request body is a JSON array of non-empty strings. Via DELETE /task/{task_id}/tags.
scaleai_delete_task_by_task_id_unique_idWRITERemove a task's unique_id so the same value can be used on a future task. Via DELETE /task/{task_id}/unique_id.
scaleai_get_auditsREADList fixless audits by task_id or by audit id. Via GET /audits/.
scaleai_get_batchesREADPaged list of your batches in descending created_at order, filtered by project, status (staging, in_progress, completed) and time window; page with limit and offset. Via GET /batches.
scaleai_get_batches_by_batchnameREADGet the details of a batch by name. Via GET /batches/{batchName}.
scaleai_get_batches_by_batchname_statusREADGet a batch's status and the counts of its tasks grouped by task status. Via GET /batches/{batchName}/status.
scaleai_get_projectsREADList information for all projects; set archived to list only archived (true) or unarchived (false) projects. Via GET /projects.
scaleai_get_projects_by_nameREADGet a project's details (type, name, parameter history) by its name. Via GET /projects/{name}.
scaleai_get_task_by_taskidREADRetrieve detailed task information for a specific task by its task ID. Via GET /task/{taskId}.
scaleai_get_tasksREADPaginated list of your tasks in descending created_at order, filtered by time window, status, type, project, batch, customer review status, unique_id or tags; page with limit (1-100) and the returned next_token. Time filters take ISO 8601 strings. Via GET /tasks.
scaleai_post_batchesWRITECreate a new batch within a project. Via POST /batches.
scaleai_post_batches_by_batchname_finalizeWRITEFinalize a batch so its tasks can be worked on (Scale Rapid and Studio); other customers get a no-op 200. Via POST /batches/{batchName}/finalize.
scaleai_post_batches_by_batchname_prioritizeWRITEUpdate a batch's priority, from 10 (lowest) to 30 (highest); tasks already started are not affected. Via POST /batches/{batchName}/prioritize.
scaleai_post_projectsWRITECreate a project: the task type of its tasks, a name unique among your projects, default task params, and the Rapid/Studio flags with pipeline and consensus attempts for Studio projects. Via POST /projects.
scaleai_post_projects_by_name_setparamsWRITESet project-level default task parameters as a new param_history version; patch=true combines them with the latest version instead of replacing it. Besides patch and instruction, the body carries any task parameter. Via POST /projects/{name}/setParams.
scaleai_post_task_by_task_id_dependents_force_creationWRITECreate a completed root task's dependent tasks now, skipping the customer audit (require_audit); fails if the task is not completed or the dependents already exist. Via POST /task/{task_id}/dependents/force_creation.
scaleai_post_task_by_task_id_dependents_optionsWRITEChange the options of the dependent tasks created once a root task completes; only possible while the root task is not complete. Via POST /task/{task_id}/dependents/options.
scaleai_post_task_by_task_id_tagsWRITEReplace all of a task's tags with the listed ones. The request body is a JSON array of non-empty strings. Via POST /task/{task_id}/tags.
scaleai_post_task_by_task_id_unique_idWRITESet or change the unique_id associated with a task. Via POST /task/{task_id}/unique_id.
scaleai_post_task_by_taskid_cancelWRITECancel a pending task; a completed task answers 400. Idempotent. clear_unique_id=true also releases the task's unique_id for reuse. Via POST /task/{taskId}/cancel.
scaleai_post_task_by_taskid_send_callbackWRITERe-send the callback for a completed or errored task to its callback_url, with the callback's original data. Via POST /task/{taskId}/send-callback.
scaleai_post_task_by_taskid_setmetadataWRITESet the metadata field on an existing task to the key/value object sent as the request body. Idempotent. Via POST /task/{taskId}/setMetadata.
scaleai_post_task_comparisonWRITECreate a `comparison` task. The reference site documents this endpoint only as the target of its Idempotency-Key example (tasks.md, 'Avoiding Duplicate Tasks'), so only the fields common to every task type are advertised; any other field Scale documents for comparison tasks may be passed in the body as well. Via POST /task/comparison.
scaleai_post_task_imageannotationWRITECreate an `imageannotation` task: annotate an image with the box, polygon, line, point, cuboid or ellipse geometries you specify. Required: attachment and geometries. Via POST /task/imageannotation.
scaleai_post_task_lidarannotationWRITECreate a `lidarannotation` task: 3D cuboids around objects across a series of lidar frames with optional radar and camera data. Required: attachments, attachment_type and labels. Via POST /task/lidarannotation.
scaleai_post_task_lidarlinkingWRITECreate a `lidarlinking` task: corrected 2D projections of a completed lidar task's cuboids onto its camera images. Required: annotation_type and lidar_task. Via POST /task/lidarlinking.
scaleai_post_task_lidarsegmentationWRITECreate a `lidarsegmentation` task: assign a class to each point of a series of lidar frames. Via POST /task/lidarsegmentation.
scaleai_post_task_lidartopdownWRITECreate a `lidartopdown` task: annotate a collection of lidar frames in top down with polygon, line and point geometries. Via POST /task/lidartopdown.
scaleai_post_task_multistageWRITECreate a `multistage` task from a Sensor Fusion Scene, labelled through the stages of the project's blueprint (or task_blueprint_id). Via POST /task/multistage.
scaleai_post_task_segmentannotationWRITECreate a `segmentannotation` task: a dense, pixel-wise semantic segmentation of an image according to the labels provided. Via POST /task/segmentannotation.
scaleai_post_task_sensorfusionWRITECreate a `sensorfusion` task: annotators load a Sensor Fusion Scene (3D point clouds plus 2D camera data) and apply 3D cuboids, point-cloud segmentation, 3D keypoints or top-down polygons. Via POST /task/sensorfusion.
scaleai_post_task_videoannotationWRITECreate a `videoannotation` task: annotate each frame of a series of images sampled from a video with the geometries you specify. Deprecated by Scale in favour of videoplaybackannotation. Via POST /task/videoannotation.
scaleai_post_task_videoplaybackannotationWRITECreate a `videoplaybackannotation` task: annotations drawn around the specified objects while viewing the given video file. Via POST /task/videoplaybackannotation.
scaleai_put_auditsWRITECreate a fixless audit on a task: the audit result, the audited response URL (task.response.annotations.url) and optional feedback items. Answers 201. Via PUT /audits.
scaleai_put_task_by_task_id_tagsWRITEAdd the listed tags to a task; a tag already on the task is ignored. The request body is a JSON array of non-empty strings. Via PUT /task/{task_id}/tags.
Put Scale AI behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.