Skip to main content

API Reference

Explore our robust REST API documentation and official developer SDKs to programmatically manage datasets, submit annotations, and automate model training pipelines.

DEVELOPER PORTAL

API Overview

The Loopernode API is built on RESTful principles, returning standard JSON payloads for all requests and using predictable HTTP response codes.

Base URL

All API requests should be directed to the global HTTPS base endpoint: https://api.loopernode.in/v1

JSON Format

Requests and responses use Content-Type: application/json. Timestamp fields follow ISO-8601 UTC standard.

RESTful Design

Utilizes standard HTTP methods (GET, POST, PUT, DELETE) with deterministic status codes and structured errors.

SECURITY & ACCESS

API Key Authentication

Authenticate your requests by passing your API secret key in the Authorization header as a Bearer token.

Bearer Token Authentication

Keep your API key secure. Do not share key credentials in public web repositories.

Include your secret key in the Authorization HTTP header for every API call.

// Example cURL API Request
curl -X GET "https://api.loopernode.in/v1/datasets" \
-H "Authorization: Bearer lnr_live_8f92a1b4c3d7" \
-H "Content-Type: application/json"
REST RESOURCES

Core API Endpoints

Explore the primary endpoints for managing dataset collections, submitting annotation jobs, and tracking project statuses.

POST/datasets

Create Dataset

Initialize a new dataset container with specific modal configurations, metadata schema, and retention rules.

HTTPS Endpoint
GET/datasets

List Datasets

Retrieve a paginated collection of active datasets within your organization with status filtering.

HTTPS Endpoint
POST/annotations

Submit Annotations

Upload bounding boxes, polygon masks, sentiment tags, or custom task labels to a dataset target.

HTTPS Endpoint
GET/annotations/{id}

Get Annotation

Fetch detailed geometric vectors, confidence scores, worker metrics, and audit history for an annotation.

HTTPS Endpoint
POST/projects

Create Project

Spin up an enterprise labeling campaign defining consensus requirements, workforce routing, and QA thresholds.

HTTPS Endpoint
GET/projects/{id}/status

Project Status

Monitor real-time execution progress, completion velocity, consensus percentage, and active worker counts.

HTTPS Endpoint
USAGE TIERS

API Rate Limits

Rate limits safeguard API stability and availability across all enterprise teams and developer accounts.

Rate Limit Headers
X-RateLimit-Limit | X-RateLimit-Remaining | X-RateLimit-Reset
Free Tier
100 requests / hour
10 concurrent requests
15 req/sec burst limit
Pro Tier
1,000 requests / hour
50 concurrent requests
50 req/sec burst limit
Enterprise Tier
Unlimited
Custom dedicated pool
Custom burst allocation
STATUS & ERRORS

HTTP Error Codes

Our API returns conventional HTTP response status codes to indicate the success or failure of requests.

400

Bad Request

Malformed JSON payload, missing mandatory fields, or invalid enum parameters sent in request body.

401

Unauthorized

Missing, expired, or invalid API key provided in the Authorization Bearer header.

404

Not Found

The requested resource ID (dataset, project, or annotation) does not exist or has been deleted.

429

Too Many Requests

Rate limit threshold exceeded for your current tier plan. Check X-RateLimit-Reset header for retry delay.

CLIENT LIBRARIES

Official SDKs

Get started quickly in your favorite programming language with native type safety and automated error handling.

Python SDK

pip install loopernode-python
import loopernode

client = loopernode.Client(api_key="lnr_live_...")
dataset = client.datasets.create(
    name="Autonomous Vision v2",
    modality="image_segmentation"
)

Node.js SDK

npm install @loopernode/sdk
import { Loopernode } from '@loopernode/sdk';

const client = new Loopernode({ apiKey: process.env.LOOPERNODE_API_KEY });
const project = await client.projects.get('prj_884920');
console.log(project.status);

Go SDK

go get github.com/loopernode/loopernode-go
package main

import "github.com/loopernode/loopernode-go"

client := loopernode.NewClient("lnr_live_...")
res, err := client.Annotations.Submit(ctx, payload)

Ready to integrate?

Obtain your API credentials today and start building high-performance dataset pipelines with Loopernode.