Developer Platform

Nyckel exposes machine learning capabilities as managed REST API functions. Each function encapsulates the full ML pipeline — model selection, training, inference, annotation, and continuous improvement — behind a single stable endpoint your application calls synchronously.

The platform has three integrated components:

API Hosting
  • Create and manage functions via REST API or console
  • Ingest the real-time invoke stream from your application
  • Low-latency inference endpoints with global routing
  • Per-function monitoring: request volume, latency, error rates, confidence distribution
ML Engine
  • Benchmarks multiple model architectures against your data automatically
  • Selects and promotes the best-performing model without intervention
  • Surfaces training data recommendations — identifies which unlabeled samples would most improve accuracy
  • Continuous retraining as annotations accumulate (AutoML)
Annotation Platform
  • Web UI for domain experts to log in and review predictions
  • Review queue surfaces low-confidence and disputed predictions first
  • Corrections are immediately routed to the ML engine as labeled training samples
  • Supports multiple reviewers per function with audit trail

Function types

Nyckel supports three categories of ML function. All share the same authentication, lifecycle management, and annotation API. For an introduction to what each type does and when to pick one over another, see Functions in Concepts — the table below focuses on the request/response contract.

Function type Accepted input Response schema Common use cases
Classification Image, Text, or Tabular { labelName, confidence, sampleId } Content moderation, intent detection, spam filtering, document routing, sentiment analysis, medical triage
Detection Image [{ labelName, confidence, boundingBox }] Object detection, defect detection, logo presence, face detection, inventory counting
Semantic search Text or Image corpus Ranked list of corpus items by similarity score Nearest-neighbor lookup, deduplication, recommendation, semantic retrieval

Core API pattern

Every function exposes two primary operations: invoke and annotate.

POST /invokelabelName + confidenceapplication logicPOST /annotationmodel retrains

Invoke — Send an input, receive a synchronous prediction. Latency is typically under 200 ms for text and tabular inputs; image inputs vary by resolution. The response always includes a label, a confidence score (0–1), and a sampleId you can use to submit a correction.

Annotate — Send the correct label for a previous invocation by referencing its sampleId. Annotations feed the retraining pipeline. This step is optional, but functions that receive consistent annotation feedback improve measurably in production over time.

Invoke

POST https://www.nyckel.com/v1/functions/{functionId}/invoke
Authorization: Bearer {token}
Content-Type: application/json

{ "data": "<input>" }
{
  "labelName": "spam",
  "confidence": 0.94,
  "sampleId": "smp_abc123"
}

Annotate

POST https://www.nyckel.com/v1/functions/{functionId}/samples/{sampleId}/annotation
Authorization: Bearer {token}
Content-Type: application/json

{ "labelName": "not-spam" }

Store the sampleId from every invoke response. It is required to submit annotations and is the join key between your application’s event log and Nyckel’s training pipeline.

Model management

Nyckel handles the full model lifecycle without configuration:

Confidence scores

Every invoke response includes a confidence value from 0.0 to 1.0 — a calibrated probability you use to decide whether to act on the prediction automatically or route it for review.

For what the number means and how to interpret it, see Confidence scores. For starting thresholds and the three-zone routing pattern in code, see Tuning confidence thresholds.

Authentication

All requests require a Bearer token.

Authorization: Bearer {token}

Tokens are workspace-scoped and can be rotated without downtime. See Authentication for generation and rotation details.

Base URL

https://www.nyckel.com/v1/

The API is versioned at the path level. v1 is the current stable version. All endpoints in this guide are relative to this base URL.