---
title: Roboflow API Integration on Truto
slug: roboflow
category: Artificial Intelligence
canonical: "https://truto.one/integrations/detail/roboflow/"
---

# Roboflow API Integration on Truto



**Category:** Artificial Intelligence  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 103 tools for Roboflow that AI agents can call directly.

- **list_all_roboflow_workspace** — Verify your Roboflow API key and retrieve the authenticated workspace identifier from the root endpoint. Returns: welcome, instructions, docs, workspace.
- **get_single_roboflow_workspace_by_id** — Get a Roboflow workspace by id, returning its metadata and full project list. Returns: name, url, members, projects, config, patch. Required: id.
- **create_a_roboflow_workspace_search** — Search images across a Roboflow workspace using a query string that supports filtering, sorting, and semantic search. Returns: workflows, status. Required: workspace, query.
- **create_a_roboflow_project** — Create a new project in a Roboflow workspace. Returns: id, name, created, updated, images, unannotated, annotation, versions, public, splits, colors, classes, icon. Required: workspace, name.
- **list_all_roboflow_project** — List all projects in a Roboflow workspace. Returns each project's id, type, name, annotation, created, updated, images, unannotated, versions, public, splits, and classes. Required: workspace.
- **delete_a_roboflow_project_by_id** — Move a Roboflow project to Trash (soft delete; items are retained for 30 days before permanent cleanup). Returns: deleted, workspace, project, projectId, trash. Required: workspace, id.
- **get_single_roboflow_project_by_id** — Get a Roboflow project and its dataset versions by id. Returns the project object including id, name, type, annotation, created, updated, images, unannotated, public, splits, classes, and a versions array. Required: workspace, id.
- **create_a_roboflow_project_fork** — Fork a public Roboflow Universe project into a target workspace. The operation runs asynchronously and returns a taskId and polling url you can use to check fork status. Returns: taskId, url. Required: workspace, plus either url (full Universe project URL) or source_project (project slug) — at least one must be supplied.
- **list_all_roboflow_project_health** — Get the dataset health check for a Roboflow project. Returns a summary of annotation quality and image statistics including health, stats.numImages, stats.numAnnotations, stats.missingAnnotations, stats.nullAnnotations, and stats.classDistribution. Required: workspace, project.
- **list_all_roboflow_project_model** — List all trained models in a Roboflow project, including both version-trained models and standalone NAS-generated models. Returns: url, version, name, modelType, created, train, metrics, nasFamily, group, favorites, recommended. Required: workspace, project. Optionally filter to a single NAS run by passing group.
- **list_all_roboflow_version** — Get a specific Roboflow dataset version by workspace, project, and version number. Returns the full version record including workspace (name, url, members), project (id, name, type, images), and version (id, name, created, images, model, preprocessing, augmentation, exports, train). Required: workspace, project, version.
- **delete_a_roboflow_version_by_id** — Move a Roboflow dataset version to Trash by id. Returns: deleted, workspace, project, projectId, version, trash. Items are retained in Trash for 30 days before automatic cleanup; permanent deletion is available only via the Roboflow web app. Required: workspace, project, id.
- **get_single_roboflow_version_by_id** — Get a specific Roboflow dataset version by id. Returns the full version record including workspace (name, url, members), project (id, name, type, images), and version (id, name, created, images, model, preprocessing, augmentation, exports, train). Required: workspace, project, id.
- **list_all_roboflow_version_export** — Download a Roboflow dataset version in a specific export format. Returns workspace, project, and version details including version id, images count, and the list of generated export formats. Required: workspace, project, version, format.
- **create_a_roboflow_training_job** — Create a Roboflow training job for a dataset version. Returns: jobId, status, version, createdAt. Training runs asynchronously; poll the job endpoint to check its status. Required: workspace, project, version.
- **list_all_roboflow_training_job** — List Roboflow training jobs for a dataset version. Returns each job's id, status, version, model_type, createdAt, and progress. Required: workspace, project, version.
- **get_single_roboflow_training_job_by_id** — Get a single Roboflow training job by id. Returns the job's id, status, version, model_type, createdAt, and progress. Status values: queued, training, complete, failed, cancelled. Required: workspace, project, version, id.
- **roboflow_training_job_cancel** — Cancel a running Roboflow training job for a dataset version. Returns: success, jobId, status, version, createdAt. Required: workspace, project, version.
- **roboflow_training_job_stop** — Stop a running Roboflow training job for a dataset version. Returns: success, jobId, status, version, createdAt. Required: workspace, project, version.
- **create_a_roboflow_version_training** — Start a training job on a Roboflow dataset version. Training runs asynchronously; the response confirms the job was queued, not that it has completed. Returns: jobId, status, version, createdAt, success. Required: workspace, project, version.
- **create_a_roboflow_version_training_cancel** — Cancel an in-progress Roboflow training job for a specific dataset version. The job must be in a running or queued state; cancelling a finished job returns 409 Conflict. Not idempotent. Returns: success. Required: workspace, project, version.
- **create_a_roboflow_version_training_stop** — Request an early stop for a running Roboflow training job on a specific project version. Unlike cancel, this operation is idempotent and returns success even if the job has already stopped. Returns: success. Required: workspace, project, version.
- **create_a_roboflow_image** — Upload an image to a Roboflow project dataset via URL or raw image body. Optionally assign the image to a split, batch, or tag sequence. Returns: success, taskId, signedUrl, url. Required: project.
- **get_single_roboflow_image_by_id** — Get details about a specific image in a Roboflow project by id. Returns the image object containing id, name, annotation (with bounding boxes), labels, split, tags, created, urls, and embedding. Required: workspace, project, id.
- **delete_a_roboflow_image_by_id** — Delete one or more images from a Roboflow project dataset by specifying their IDs in the request body. Returns an empty 204 response on success. Required: workspace, project, images.
- **update_a_roboflow_image_tag_by_id** — Add, remove, or set tags on a specific Roboflow image. Returns: success. Required: workspace, project, image_id, operation, tags.
- **create_a_roboflow_annotation** — Upload and attach an annotation file to an existing image in a roboflow dataset. Supports any roboflow-compatible annotation format; send raw annotation content as the request body, or a JSON body with annotationFile and labelmap for index-based formats like Darknet TXT. Returns an empty 204 response on success. Required: project, image_id, name.
- **create_a_roboflow_dataset_zip** — Initiate an async dataset zip upload for a Roboflow project. Sends a POST that returns a signed GCS URL to PUT the zip file to and a task identifier for polling status. Returns: taskId, signedUrl, url. Required: project.
- **list_all_roboflow_batch** — List all image batches for a Roboflow project. Returns a collection of batch records each containing id, name, images, numJobs, and uploaded timestamp. Required: workspace, project.
- **get_single_roboflow_batch_by_id** — Get a single Roboflow image batch by id within a project. Returns the batch's id, name, images, numJobs, and uploaded timestamp. Required: workspace, project, id.
- **create_a_roboflow_annotation_job** — Create a new annotation job in a Roboflow project, assigning images from an upload batch to a labeler and reviewer. Returns: id, name, status, created, labeler, reviewer, numImages, annotated, unannotated, approved, rejected, owner, createdBy, instructionsText, sourceBatch, project. Required: workspace, project, name, batch, num_images, labelerEmail, reviewerEmail.
- **list_all_roboflow_annotation_job** — List all annotation jobs in a Roboflow project. Returns each job's id, name, status, labeler, reviewer, numImages, annotated, unannotated, approved, rejected, sourceBatch, created, instructionsText. Required: workspace, project.
- **get_single_roboflow_annotation_job_by_id** — Get a single Roboflow annotation job by id. Returns the full job object including id, name, status, labeler, reviewer, numImages, annotated, unannotated, approved, rejected, sourceBatch, instructionsText, createdBy, owner, project, created. Required: workspace, project, id.
- **create_a_roboflow_auto_label_job** — Create a Roboflow auto-label job to automatically annotate a batch of images in a project using SAM 3 or a custom Roboflow model. Returns: jobId, annotationJobId, message. Required: workspace, project, batchId, modelType.
- **get_single_roboflow_auto_label_job_by_id** — Get the status and progress details of a Roboflow auto-label job by id. Returns: id, status, annotationJobId, jobId, message. Required: workspace, id.
- **list_all_roboflow_annotation_insight** — List annotation insights for a Roboflow workspace. Returns per-labeler metrics in data (approved, boxesDrawn, imagesLabeled, approvalRate, labelerId, projectId), labeler metadata in labelers (id, displayName, email), and aggregated workspace-level totals in stats (numImagesLabeled, numBoxesDrawn, approvalRate). Required: workspace, startDate, endDate. Data is only available from 2023-08-01 onward.
- **list_all_roboflow_workflow** — List all Roboflow workflows in a workspace. Returns: id, name, url, createdAt, workflows, status. Required: workspace.
- **get_single_roboflow_workflow_by_id** — Get a single Roboflow workflow by id. Returns the workflow metadata including id, name, url, and createdAt. Required: workspace, id.
- **delete_a_roboflow_workflow_by_id** — Soft-delete (move to Trash) a Roboflow workflow by id. Returns: deleted, workspace, workflow, workflowId, trash, workflows, status. Required: workspace, id.
- **create_a_roboflow_workflow** — Create a new Roboflow workflow in a workspace. Returns the created workflow's id and url. Required: workspace.
- **update_a_roboflow_workflow_by_id** — Update a Roboflow workflow's name, URL slug, or specification. Returns the updated workflow's id and url. Required: workspace, id.
- **create_a_roboflow_workflow_fork** — Fork a Roboflow workflow from another workspace into the specified target workspace. Returns the forked workflow object including its id and url, plus a status indicator. Required: workspace, source_workspace, source_workflow.
- **list_all_roboflow_workflow_version** — List versioned snapshots of a Roboflow workflow specification. Returns version records including id. Required: workspace, workflow_url.
- **create_a_roboflow_workflow_token** — Generate a short-lived Roboflow workflow token suitable for executing workflows from a public client such as a browser. Returns: status, workflows. Required: workspace.
- **create_a_roboflow_project_folder** — Create a new project folder in a Roboflow workspace to organize projects. Returns: id. Required: workspace.
- **get_single_roboflow_project_folder_by_id** — Get a Roboflow project folder by id. Returns the ProjectFolder object including its id, name, projects, external_id, and auth_groups. Required: workspace, id.
- **update_a_roboflow_project_folder_by_id** — Update a Roboflow project folder's properties by id. Returns an empty 204 response on success; pass returnUpdated=true as a query parameter to receive the updated folder data in the response instead. Required: workspace, id.
- **delete_a_roboflow_project_folder_by_id** — Delete a Roboflow project folder by id. All projects within the folder are placed back into the top-level workspace and not deleted. Returns an empty 204 response on success. Required: workspace, id.
- **update_a_roboflow_project_folder_project_by_id** — Add one or more projects to an existing Roboflow project folder. Returns an empty 204 response on success. Required: workspace, folder_id, projects.
- **delete_a_roboflow_project_folder_project_by_id** — Remove one or more projects from a Roboflow project folder, placing them back into the top-level workspace. Returns an empty 204 response on success. Required: workspace, folder_id, projects.
- **list_all_roboflow_trash** — List all items currently in a Roboflow workspace's Trash, including projects, versions, and workflows. Returns: sections, deleted, workspace, project, projectId, trash. Required: workspace.
- **create_a_roboflow_trash_restore** — Restore a Roboflow project, version, or workflow from Trash. Returns: deleted, workspace, project, projectId, version, workflow, workflowId, trash. Required: workspace, type, id. For version restores, parentId (parent project ID) is also required and the parent project must be active (not itself in Trash).
- **get_single_roboflow_async_task_by_id** — Get the status of a roboflow async task by id. Returns: taskId, status, progress, result, url. Required: workspace, id.
- **list_all_roboflow_api_key** — List all Roboflow API keys for a workspace, returning masked key metadata and the workspace publishable key. Returns: apiKeys, publishableKey, apiKey. Required: workspace.
- **get_single_roboflow_api_key_by_id** — Get masked metadata for a single Roboflow API key by its id. Returns the apiKey object containing keyId, name, prefix, scopes, folderIds, default, protected, and disabled. Required: workspace, id.
- **create_a_roboflow_api_key** — Create a new Roboflow API key in a workspace. The secret key value is returned only once in the key field — store it securely immediately. Returns: keyId, key, name, scopes, folderIds, protected, publishableKey, apiKey. Required: workspace.
- **update_a_roboflow_api_key_by_id** — Update a Roboflow API key's name, scopes, metadata, or protected/disabled state; send only the fields you want to change. Returns the updated apiKey object with keyId, name, prefix, scopes, folderIds, protected, and disabled. Required: workspace, id.
- **delete_a_roboflow_api_key_by_id** — Revoke a Roboflow API key permanently by its id; existing applications using it will immediately fail to authenticate. Returns: status, keyId, apiKey. Required: workspace, id.
- **list_all_roboflow_publishable_key** — Get the publishable key for a Roboflow workspace. The key is a permanent, non-secret credential of the form `rf_<workspaceId>` that can be safely embedded in client-side code for inference and model downloads. Returns: publishableKey, status, keyId. Required: workspace.
- **create_a_roboflow_agent_chat** — Send a natural-language message to the Roboflow AI agent to create or edit Workflows in a workspace. Returns: text, workflows, conversation_id, workflowId, workflowUrl, versionId, status. Required: workspace, message. Pass conversation_id to continue an existing conversation; omit it to start a new one. Workflow changes are saved as drafts.
- **create_a_roboflow_agent_workflow_publish** — Publish the latest draft version of a Roboflow agent Workflow, deploying it to production. Returns: workflowId, workflowUrl, versionId, status. Required: workspace, workflow_url. Returns 400 if there is no unpublished draft to deploy.
- **list_all_roboflow_agent_conversation** — List all Roboflow agent conversations in a workspace. Returns: id, workflowId, workflowUrl, versionId, status. Required: workspace. Optionally filter by source (api or web) or by a workflow URL slug.
- **get_single_roboflow_agent_conversation_by_id** — Get a single Roboflow agent conversation by id, including its full message history. Returns: id, workflowId, workflowUrl, versionId, status. Required: workspace, id.
- **list_all_roboflow_project_deploy** — Get the Roboflow project deployment state for a given workspace and project. Returns: project, workflow, model, deployability, activeLearning, baseWorkflowWasCreated. Required: workspace, project.
- **update_a_roboflow_project_deploy_model_by_id** — Update the deployed model for a roboflow project, setting the model used by the project's deployment workflow. Accepts three model shapes: a specific model by ID (`model_id`), zero-shot segmentation (`sam3`), or zero-shot classification (`clip`). Returns the updated deployment state including project, workflow, model, deployability, activeLearning, and baseWorkflowWasCreated. Required: workspace,…
- **list_all_roboflow_active_learning** — List the Active Learning configuration for a roboflow project, returning its enabled state, collection limits, filters, deployment readiness, model settings, and workflow details. Returns: project, workflow, model, deployability, activeLearning, baseWorkflowWasCreated. Required: workspace, project.
- **create_a_roboflow_active_learning_enable** — Enable Active Learning on a Roboflow project. If no model is configured, the service attempts to auto-select one. Returns: project, workflow, model, deployability, activeLearning, baseWorkflowWasCreated. Returns 400 if the workflow is not deployable. Required: workspace, project.
- **create_a_roboflow_active_learning_disable** — Disable Active Learning on a Roboflow project. Returns the updated deployment configuration including project, workflow, model, deployability, and activeLearning (with enabled set to false). Required: workspace, project.
- **update_a_roboflow_active_learning_config_by_id** — Update the Active Learning configuration for a Roboflow project's deployment, setting collection limits (data percentage, rate limits, batch frequency, image sizing, tags) and optional image filters. Returns the updated deployment state including project, workflow, model, deployability, and activeLearning objects. Required: workspace,id.
- **list_all_roboflow_active_learning_image** — List Active Learning images in the Roboflow project's review queue with optional filtering and sorting. Returns: activeLearningImages, project, workflow, model, deployability, activeLearning, baseWorkflowWasCreated. Required: workspace, project.
- **list_all_roboflow_credential** — List credentials in a roboflow workspace with their secrets masked. Returns a collection of credential records including id, owner, type, name, and payload (with secrets masked). Required: workspace.
- **create_a_roboflow_credential** — Create a credential in a Roboflow workspace to store cloud access secrets (AWS IAM, GCS, API key, etc.). Returns: id. Required: workspace, type, name, payload.
- **delete_a_roboflow_credential_by_id** — Delete a credential from a roboflow workspace by id. Returns an empty 204 response on success. Required: workspace, id.
- **list_all_roboflow_bucket_mirror_config** — List roboflow bucket mirror configurations in a workspace, each with a summary of its latest sync job. Returns: id, name, latestJob. Required: workspace.
- **create_a_roboflow_bucket_mirror_config** — Create a roboflow bucket mirror configuration to mirror files from an external S3 or GCS bucket into a workspace. Returns: id. Required: workspace, name, credentialId, bucket, mirrorConfigs.
- **get_single_roboflow_bucket_mirror_config_by_id** — Get a single roboflow bucket mirror configuration by id. Returns: id, name, latestJob. Required: workspace, id.
- **update_a_roboflow_bucket_mirror_config_by_id** — Update a roboflow bucket mirror configuration by id. Send only the fields you want to change. Returns: id, name. Required: workspace, id.
- **delete_a_roboflow_bucket_mirror_config_by_id** — Delete a roboflow bucket mirror configuration by id. Returns an empty 204 response on success. Required: workspace, id.
- **list_all_roboflow_bucket_mirror_validation** — Validate a Roboflow bucket mirror configuration by checking that the referenced credential can list, head, and read objects in the configured bucket. Returns: data. Required: workspace, config_id.
- **create_a_roboflow_bucket_mirror_sync** — Trigger a Roboflow bucket mirror sync for a given configuration. Validates the configuration first, then starts a mirror run and returns one batch id per mirror rule. Manual runs are rate limited. Returns: id. Required: workspace, config_id.
- **get_single_roboflow_bucket_mirror_job_by_id** — Get a single Roboflow bucket mirror sync job by its id, allowing you to poll job progress after triggering a run. Returns: batchId, status, id. Required: workspace, config_id, id.
- **create_a_roboflow_vision_event** — Create a single vision event in roboflow to record an observation from a computer vision deployment. Returns: eventId, created. Required: eventId, eventType, useCaseId, timestamp, eventData. Duplicate eventId values overwrite previously ingested events.
- **create_a_roboflow_vision_event_batch** — Batch-create up to 100 Roboflow vision events in a single request, more efficiently than creating events individually. Returns: created, eventIds, deprecations. Required: events. Maximum of 100 events per batch.
- **create_a_roboflow_vision_event_image** — Upload an image to Roboflow for use in vision events. This is a workspace-level upload not tied to any specific project; the returned sourceId can be referenced in the images array when creating vision events. Returns: success, sourceId, url. Required: file. Supported formats: JPEG, PNG, WebP, GIF, TIFF, BMP, HEIC, and AVIF.
- **create_a_roboflow_vision_event_query** — Query roboflow vision events with filters for time range, event type, device context, detection classes, custom metadata, and event-specific fields. Returns: error. Required: useCaseId. Max 1000 events per page; defaults to 100.
- **list_all_roboflow_vision_event_metadata_schema** — Get the custom metadata schema for Roboflow vision events for a given use case, returning all observed field names and their data types across ingested events. Returns: created, eventIds. Required: useCaseId.
- **list_all_roboflow_use_case** — List all Roboflow use cases in your workspace that have recorded vision events. Returns: id, name, status, workspaceId, createdAt, updatedAt, error. Optionally filter by use case status (active or inactive).
- **create_a_roboflow_use_case** — Create a new use case in your Roboflow workspace to organize vision events by deployment context. Returns: id, name. Required: name.
- **update_a_roboflow_use_case_by_id** — Update the name or status of an existing Roboflow use case. Returns: id, name. Required: id. At least one of name or status must be provided in the request body.
- **create_a_roboflow_use_case_archive** — Archive a roboflow use case by setting its status to inactive, hiding it from active listings and preventing new event ingestion (soft delete — data is preserved). Returns: success, error. Required: use_case_id.
- **create_a_roboflow_use_case_unarchive** — Restore a previously archived Roboflow use case by setting its status back to active. Only use cases with an inactive status can be unarchived. Returns: success, error. Required: use_case_id.
- **list_all_roboflow_dedicated_deployment_machine_type** — List all available machine types for Roboflow dedicated deployments. Returns: name, description, deployment_name, status, machine_type, public_url, created_at, expires_at.
- **create_a_roboflow_dedicated_deployment** — Create a Roboflow dedicated deployment (managed GPU machine). Provisions asynchronously — poll GET /get until status is 'ready'. Returns: deployment_name, machine_type, status, public_url, created_at, expires_at. Required: deployment_name, machine_type, creator_email, duration, delete_on_expiration.
- **list_all_roboflow_dedicated_deployment** — List all Roboflow dedicated deployments in the workspace. Returns records with deployment_id, deployment_name, machine_type, status, creator_email, subdomain, domain, duration, inference_version, min_replicas, max_replicas, num_replicas, workspace_id, workspace_url.
- **delete_a_roboflow_dedicated_deployment_by_id** — Delete a Roboflow-dedicated deployment by ID. Returns: message, deployment_name, status, machine_type, public_url, created_at, expires_at. Required:id.
- **get_single_roboflow_dedicated_deployment_by_id** — Get a single Roboflow dedicated deployment by id. Returns: deployment_name, machine_type, status, workspace_url, public_url, created_at, expires_at. Required:id.
- **create_a_roboflow_dedicated_deployment_pause** — Pause a Roboflow dedicated deployment, stopping the running GPU machine while preserving its configuration. Returns: message, deployment_name, status, machine_type, public_url, created_at, expires_at. Required: deployment_name.
- **create_a_roboflow_dedicated_deployment_resume** — Resume a paused Roboflow dedicated deployment. Returns: message, deployment_name, status, machine_type, public_url, created_at, expires_at. Required: deployment_name.
- **list_all_roboflow_dedicated_deployment_log** — List log entries for a Roboflow dedicated deployment, with optional timestamp range filtering and a cap on the number of returned entries. Returns: deployment_name, status, machine_type, public_url, created_at, expires_at. Required: deployment_name. Omit from_timestamp and to_timestamp to fetch the most recent entries up to max_entries.
- **list_all_roboflow_dedicated_deployment_usage_workspace** — List workspace-wide usage data in Roboflow for a specified time window across all dedicated deployments. Returns: deployment_name, status, machine_type, public_url, created_at, expires_at. Required: from_timestamp, to_timestamp.
- **list_all_roboflow_dedicated_deployment_usage** — List per-deployment usage in Roboflow for a specific dedicated deployment within a given time window. Returns: deployment_name, status, machine_type, public_url, created_at, expires_at. Required: deployment_name, from_timestamp, to_timestamp.
- **create_a_roboflow_inference_model** — Run inference on a Roboflow trained model by submitting an image to a specific model version. Returns predictions whose structure depends on the model type (object detection, classification, segmentation); consult the Roboflow deployment documentation for per-task response shapes. Required: workspace, project, version.
- **create_a_roboflow_inference_workflow** — Run a Roboflow inference workflow by posting an inputs payload to the specified workspace and workflow. Returns workflow-specific inference results whose exact shape is determined by the workflow's configured output steps; consult the workflow definition in roboflow for the field-level breakdown. Required: workspace, workflow.

## How it works

1. **Link your customer's Roboflow account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Roboflow.** The Proxy API is a 1-to-1 mapping of the Roboflow API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Embed Computer Vision into Vertical SaaS Workflows** — Let your customers connect their Roboflow workspace to add defect detection, object counting, or visual classification directly inside your product — without you building or maintaining ML infrastructure.
- **Automate Field Data Capture Loops** — For inspection, drone, or mobile-first SaaS, pipe images captured in your app into customers' Roboflow projects to fuel continuous model retraining and improve accuracy over time.
- **Trigger Auto-Labeling from Your DataOps Platform** — Data infrastructure and MLOps SaaS can offload annotation to Roboflow's human and AI-assisted labeling jobs, letting customers scale dataset preparation without leaving your workflow tool.
- **Sync Cloud Storage into Roboflow Projects** — Storage, DAM, and content platforms can natively mirror image buckets into customer Roboflow workspaces, eliminating manual dataset uploads for ML teams.
- **Orchestrate Model Training and Deployment Pipelines** — CI/CD, workflow automation, and DevOps SaaS can trigger Roboflow training jobs, monitor status, and manage dedicated deployments on behalf of their users.

## What you can build

- **One-click Roboflow workspace connector** — Let users authenticate their Roboflow account and select a workspace and project to link with your app using list_all_roboflow_workspace and list_all_roboflow_project.
- **In-app inference on captured images** — Send images from your product to a customer's trained model or workflow via create_a_roboflow_inference_model or create_a_roboflow_inference_workflow and render bounding boxes or classifications back in your UI.
- **Active learning feedback pipeline** — Push corrected or low-confidence images back into the connected Roboflow project using create_a_roboflow_image and create_a_roboflow_vision_event to power continuous retraining.
- **Automated annotation job dispatcher** — Kick off human or AI-assisted labeling on newly ingested batches with create_a_roboflow_annotation_job and create_a_roboflow_auto_label_job, and track completion via job status endpoints.
- **Bucket-to-project dataset sync** — Configure and run cloud bucket mirroring with create_a_roboflow_bucket_mirror_config and create_a_roboflow_bucket_mirror_sync so customer media assets flow into Roboflow projects automatically.
- **Training and deployment control panel** — Expose training triggers, cancel/stop controls, and dedicated deployment lifecycle (pause, resume, logs, usage) inside your product using the training job and dedicated deployment tools.

## FAQs

### How do end users authenticate their Roboflow account?

Users provide a Roboflow API key scoped to their workspace. Truto securely stores and injects credentials on each request, and you can also manage keys programmatically via list_all_roboflow_api_key, create_a_roboflow_api_key, and delete_a_roboflow_api_key_by_id.

### Can I run inference against a customer's model directly from my app?

Yes. Use create_a_roboflow_inference_model to hit a specific model version or create_a_roboflow_inference_workflow to run a multi-step visual pipeline. Both return structured JSON with predictions you can render or route downstream.

### How do I push new images and annotations into a customer's Roboflow project?

Use create_a_roboflow_image to upload imagery to a project (with optional split assignment), create_a_roboflow_annotation to attach labels, and list_all_roboflow_batch or get_single_roboflow_batch_by_id to track ingestion batches.

### Can I trigger model training and monitor status?

Yes. create_a_roboflow_training_job and create_a_roboflow_version_training start training runs. Use list_all_roboflow_training_job and get_single_roboflow_training_job_by_id to poll status, and the cancel/stop endpoints to control jobs mid-run.

### How is data freshness handled — is this real-time or polled?

Roboflow's API is request-based, so inference calls are synchronous and real-time. For long-running operations like training, auto-labeling, and bucket mirror syncs, you poll the corresponding job or async task endpoints (e.g., get_single_roboflow_async_task_by_id) to detect completion.

### Can I manage dedicated deployments on behalf of my users?

Yes. You can list available machine types, create dedicated deployments, pause/resume them, fetch logs, and pull workspace-level usage — all via the dedicated deployment tools exposed through Truto.
