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.
https://api.semlify.com/v1/ontologies/cars/concepts?tag=v1.3&lang=en&format=json{
"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.
# 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é.
# 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.