Integrations

Annotgrove fits into your pipeline, not the other way around.

REST API, native connectors for major ML frameworks, and webhook callbacks. No pipeline rewrite required.

Works with the tools your team already uses

Native connectors for storage, frameworks, experiment tracking, and CI pipelines. Drop-in, not bolt-on.

PyTorch

Export directly as a DataLoader-compatible dataset. COCO JSON and annotation masks ready for torchvision transforms.

TensorFlow

TFRecord export and tf.data pipeline helpers. Plug Annotgrove output directly into an existing TF training loop.

HuggingFace Datasets

Push annotated datasets directly to HuggingFace Hub. Version-controlled, shareable, and loadable in one line.

MLflow

Log dataset versions and annotation stats as MLflow artifacts. Track which labeled dataset produced which model checkpoint.

Weights and Biases

Log annotation job metadata as W&B artifacts. Link annotation quality scores to training runs for full lineage tracking.

AWS S3

Direct S3 bucket connection. Upload raw frames from S3, write completed datasets back to S3. IAM-based auth, no credential sharing.

Google Cloud Storage

GCS bucket read and write. Annotgrove ingests frames from your GCS bucket and writes completed labels back on export.

Azure Blob Storage

Azure Blob connector with SAS token support. Connect your annotation pipeline to Azure-hosted raw data without data duplication.

API-first by design

Every action you can do in the UI can be triggered via REST API. Annotgrove is designed for teams that automate their data pipelines.

  • Create and manage annotation jobs programmatically
  • Upload frames and retrieve results via HTTP
  • Webhook callbacks on job completion or per-frame events
  • Export in COCO, YOLO, Pascal VOC, or CSV formats
  • API key auth with per-project scopes
Get your API key
Python submit_batch.py
import annotgrove

# Initialize client with your API key
client = annotgrove.Client(api_key="agr_sk_...")

# Create a new annotation job
job = client.jobs.create(
    name="vehicle-detection-batch-47",
    annotation_type="bbox",
    source={
        "type": "s3",
        "bucket": "my-raw-frames",
        "prefix": "batch-47/"
    },
    webhook_url="https://example.com/hooks/agr"
)

# Start pre-labeling run
client.jobs.run(job.id)
print(f"Job {job.id} started")

# When webhook fires, export completed dataset
export = client.jobs.export(
    job.id,
    format="coco_json"
)

Built for engineers who automate

Everything you need to wire Annotgrove into your existing CI/CD and training pipelines.

Python SDK

pip install annotgrove. Annotate, query, and export from your training scripts. PyPI package with full type hints.

Webhook callbacks

Trigger training runs automatically when a batch completes annotation. Per-frame and per-job event hooks with signed payloads.

Dataset versioning

Every export is a versioned snapshot. Reproduce any earlier training run by re-exporting the same snapshot. Hash-verified, immutable.

Scoped API keys

Create per-project API keys with read-only or read-write scopes. Revocable at any time. No credentials embedded in training scripts.

Connect Annotgrove to your stack today.

Start with 10,000 free labels. API access included on all plans.