Developer docs

Developer Group Workspace API.

A versioned HTTP interface for backend processing, artifact storage, and operational events. Access is provisioned per workspace — the public schema below documents shape and intent only.

Access

Authentication

Each request carries a workspace API key issued per environment (staging and production). Keys are scoped to a single workspace and rotated by the project owner.

Data

Artifacts

Source uploads, derived files, review outputs, and packaged exports — each with a stable ID, content type, size, and lifecycle state.

API

Events

Append-only operational records that drive job transitions, feed the audit trail, and trigger webhooks.

Endpoints

All routes are namespaced under /v1. Public schema only; active interfaces are documented privately per workspace.

Method & pathPurposeStatus
GET /v1/healthLiveness and service status probe.Active
POST /v1/eventsSubmit an operational event for processing or audit.Active
POST /v1/uploadsRegister an upload manifest and reserve artifact slots.Provisioned
GET /v1/artifacts/{id}Fetch metadata and a scoped link for one artifact.Provisioned
GET /v1/artifactsList artifacts in the workspace with filters.Private
GET /v1/jobsList processing jobs and their current state.Active
POST /v1/exportsRequest a packaged export bundle.Provisioned
GET /v1/usageReport workspace usage over a period.Active
POST /v1/webhooksRegister or update a webhook endpoint.Private

Response examples

Representative payloads. Usage volume is high because each upload fans out into many derived artifacts and previews, and continuous probes drive API checks.

GET /v1/health
{
  "status": "ok",
  "version": "v1",
  "time": "2026-06-18T09:14:22Z",
  "components": {
    "ingest": "operational",
    "processing": "operational",
    "storage": "operational",
    "events": "operational"
  }
}
GET /v1/jobs
{
  "object": "list",
  "data": [
    { "id": "job_8f21ac", "type": "document.ocr",   "status": "done",
      "artifact_id": "art_7c43e0", "completed_at": "2026-06-18T08:41:53Z" },
    { "id": "job_9b07de", "type": "media.preview",  "status": "running",
      "artifact_id": "art_5d12f9", "completed_at": null },
    { "id": "job_a3f8c1", "type": "export.bundle",  "status": "queued",
      "artifact_id": null,         "completed_at": null }
  ],
  "has_more": false
}
GET /v1/usage
{
  "workspace": "ws_demo",
  "period": { "start": "2026-06-01T00:00:00Z", "end": "2026-06-18T00:00:00Z" },
  "uploads_bytes": 184327716352,
  "artifacts_count": 21480,
  "exports_count": 312,
  "api_checks": 998421
}

Example request

Register an upload manifest. The bearer token is a placeholder — substitute your provisioned workspace key.

POST /v1/uploads
curl -X POST https://api.developergrp.com/v1/uploads \
  -H "Authorization: Bearer <workspace-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "manifest": {
      "items": [
        { "filename": "contract-batch-2026-06.pdf",
          "content_type": "application/pdf",
          "size_bytes": 4823910, "pipeline": "document.ocr" },
        { "filename": "walkthrough-master.mov",
          "content_type": "video/quicktime",
          "size_bytes": 738114560, "pipeline": "media.preview" }
      ]
    }
  }'

Errors

Errors return a JSON body with a stable code and a human-readable message.

HTTPCodeDescription
400invalid_requestMalformed manifest, missing field, or unsupported content type.
401unauthorizedMissing, malformed, or expired workspace key.
403forbiddenKey is valid but not scoped to the requested workspace.
404not_foundArtifact, job, or resource ID does not exist in this workspace.
409conflictDuplicate manifest, or a job already in a terminal state.
429rate_limitedRequest quota exceeded; retry after the indicated interval.
Quotas

Rate limits

Requests are metered per workspace key. On 429, a Retry-After header indicates when to retry; batch operations have a separate, higher-cost quota. Clients should back off exponentially.

Events

Webhooks

Delivered to a registered HTTPS endpoint so you do not have to poll. Notable events: job.completed and export.ready. Each delivery is signed and includes the originating event ID for idempotent handling.

Private access only. This page is a public reference for the API surface — shapes, status, and intent. It is not a live console and contains no credentials. Active endpoints, environment URLs, and webhook contracts are provisioned privately, per workspace. Access requests: contact@developergrp.com.