Product · API & Playground

Ship to your stack on day one.

Five endpoints. Five output formats. Tag pinning, language negotiation, scheme scoping. The Playground in the app generates every call — copy as cURL or fetch and paste into your codebase.

Endpoints

Five endpoints, no more, no less.

We resisted the urge to ship twenty. Most consumer pipelines call three of these.

Verb Path Returns
GET /v1/ontologies/:id/concepts Every concept in an ontology, optionally scoped to a scheme.
GET /v1/ontologies/:id/relations All relations with their typed endpoints and relation type.
GET /v1/ontologies/:id/schema The T-Box — every class with attributes plus relation types with domain / range.
GET /v1/ontologies/:id/concepts/:conceptId One concept — full SKOS labels, definitions, properties, deprecation pointer.
POST /v1/ontologies/:id/sparql SPARQL query against the ontology (read-only).

Try it

The playground, right here.

Switch endpoints. Toggle parameters. The URL and JSON response update live — no signup, no auth, no real network call. Copy as cURL when you're ready.

List concepts in the Cars ontology, scoped by scheme + tag + language.

Tag
Language
Format
GEThttps://api.semlify.com/v1/ontologies/cars/concepts?tag=v1.3&lang=en&format=json
200 OK · application/json
22 lines · 381 chars
{
  "ontology": "cars",
  "tag": "v1.3",
  "lang": "en",
  "total": 397,
  "returned": 2,
  "truncated": true,
  "data": [
    {
      "id": "c_camry",
      "prefLabel": "Toyota Camry",
      "manufacturer": "c_toyota",
      "tag": "v1.3"
    },
    {
      "id": "c_corolla",
      "prefLabel": "Toyota Corolla",
      "manufacturer": "c_toyota",
      "tag": "v1.3"
    }
  ]
}

Response computed live from your selections — no real network call.

Tag pinning

Pin your pipeline to a known-good state.

Add `?tag=v1.3` to any read endpoint. Your RAG pipeline gets a stable snapshot — no behavior shifts when a maintainer adds a concept, no surprise breakage on Monday morning. Re-index when you choose to, on `tag.created` webhooks.

Pinned read
bash
# Pin to a tagged snapshot
curl https://api.semlify.com/v1/ontologies/cars/concepts \
  ?tag=v1.3 \
  &lang=en \
  &format=jsonld \
  -H "Authorization: Bearer $TOKEN"

# Roll forward by changing one query param
curl ".../concepts?tag=v1.4&lang=en&format=jsonld"

Format negotiation

JSON, JSON-LD, SKOS Turtle, OWL XML, CSV.

One endpoint, five outputs. Pick whichever your downstream tool consumes natively. The full ontology export round-trips OWL — your architects can open the same artefact in Protégé.

Format selection
bash
# JSON-LD for a RAG pipeline
curl ".../concepts?format=jsonld"

# SKOS Turtle for a search index
curl ".../concepts?format=skos"

# OWL RDF/XML for Protégé / Stardog
curl ".../schema?format=owl"

# CSV for ad-hoc analysis
curl ".../concepts?format=csv"

Try the playground.

Generate every call against your own data. Copy as cURL, fetch, or Python.