canonical: https://jentic.com/apis/licensius.com/licensius

# Licensius

Jentic publishes the only available OpenAPI specification for Licensius, keeping it validated and agent-ready. Licensius offers licensing-related web services for the linked-data and ODRL community, exposing endpoints to list known licenses, guess the license attached to a body of RDF or free text, and validate ODRL (Open Digital Rights Language) policy fragments. The 5-endpoint surface is targeted at researchers, data publishers, and rights-management tools that need machine-readable license detection and validation.

## For AI agents

Detect and validate dataset licenses through Licensius - guess licenses in RDF or text, list known licenses, and validate ODRL policy fragments.

## Scope

Does not generate licenses, scan code dependencies for licenses, or enforce DRM - use for license detection in RDF or text and ODRL fragment validation only.

## Capabilities

- List the catalogue of known licenses recognised by Licensius via GET `/license/list`
- Detect the license expressed in an RDF ontology or dataset using GET `/license/findlicenseinrdf`
- Identify the license referenced in a free-text fragment with GET `/license/findlicenseintxt`
- Validate an ODRL policy fragment against the standard schema through GET `/odrl/validate`
- Verify connectivity and version with the GET /test endpoint

## Use cases

### Open-data license auto-detection

An open-data portal harvests datasets from many sources and needs to record which license each one uses. The portal feeds dataset metadata to GET `/license/findlicenseinrdf` for RDF/Turtle blobs and GET `/license/findlicenseintxt` for plain-text descriptions, then writes the detected license back to the catalogue. This converts inconsistent free-text license fields into a normalised, machine-readable identifier.

Example prompt: Pass the RDF metadata of a dataset to GET `/license/findlicenseinrdf` and store the returned license URI in the catalogue's 'license' field.

### ODRL policy validation

A rights-management workflow generates ODRL policy fragments to express usage rights on digital assets. Before saving or publishing each policy, the workflow calls GET `/odrl/validate` to confirm the fragment conforms to the ODRL schema. This catches malformed permissions or prohibitions early, preventing downstream consumers from encountering invalid rights expressions.

Example prompt: Send a candidate ODRL fragment to GET `/odrl/validate` and reject the publish action if validation fails.

### License harmonisation in research datasets

A research data lake contains datasets with inconsistent license labels. The team enumerates licenses through GET `/license/list`, runs each dataset's text or RDF through the appropriate find-license endpoint, and re-tags the dataset with the canonical license identifier returned by Licensius. Over time this harmonises licensing metadata across the lake.

Example prompt: Iterate every dataset, call GET `/license/findlicenseintxt` or `/license/findlicenseinrdf`, and update the dataset record with the canonical license URI.

### AI agent license compliance via Jentic

An AI compliance agent reviews incoming dataset contributions for licensing issues. Through Jentic the agent searches for 'detect dataset license' or 'validate ODRL policy', loads the matching Licensius operation, and executes against the public endpoint. The agent flags datasets with missing or non-permissive licenses for human review before they enter the data product.

Example prompt: Use Jentic to search 'detect license in text', load GET `/license/findlicenseintxt`, and report back which datasets in a batch lack a recognisable open license.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/license/list` | List known licenses. |
| GET | `/license/findlicenseinrdf` | Detect license in an RDF dataset. |
| GET | `/license/findlicenseintxt` | Detect license in a text fragment. |
| GET | `/odrl/validate` | Validate an ODRL fragment. |
| GET | `/test` | Connectivity test. |

## Key resources

- **License** — List known licenses and detect licenses in RDF or text.
- **ODRL** — Validate ODRL policy fragments.
- **Test** — Connectivity and version check.

## Why Jentic

- **Setup:** The Licensius API needs no authentication, so wiring it by hand still means learning which endpoints detect a license in RDF or text and which validate an ODRL fragment, and calling licensius.com/api yourself. Through Jentic you install once, import Licensius from the API Directory, and your agent calls it, with requests flowing through one controlled execution layer that keeps an audit trail even on this public endpoint.
- **Permission scoping:** Licensius is read-only license detection and ODRL validation with no resource id in the path, so scope the agent to the operations it needs, such as detecting a license or validating a policy. You leave out any operation you do not want it to run, so it only calls the ones you allow.
- **Credential handling:** Licensius requires no authentication, so there is no secret to store, and requests still run through your own Jentic One instance, which keeps them out of the agent's prompt, logs, and context. This gives you an audit trail even on a public endpoint.
- **Discovery method:** Agents search Jentic by intent such as 'detect a dataset license' or 'validate an ODRL policy', and Jentic returns the matching Licensius operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **GitHub API** — Source-control platform whose repositories carry LICENSE files Licensius can recognise.
- **Snyk API** — Vulnerability and license scanner for software dependencies, focused on package ecosystems rather than RDF datasets.
- **Semantria API** — Text analytics service that can pre-process unstructured text before passing to Licensius for license detection.

## FAQ

### Why is there no official OpenAPI spec for Licensius?

Licensius does not publish a maintained OpenAPI specification on its own domain. Jentic generates and maintains this spec so that AI agents and developers can call Licensius via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Licensius API use?

The Licensius spec does not declare an authentication scheme - the endpoints are exposed publicly at http://licensius.com/api. Even so, when calling through Jentic the request goes through the platform's controlled execution layer rather than being made from arbitrary agent code, which keeps usage observable.

### Can I detect the license of an RDF dataset with this API?

Yes. GET `/license/findlicenseinrdf` accepts an RDF ontology or dataset and returns the license it can identify. For free-text descriptions, use GET `/license/findlicenseintxt` instead. Both return a canonical license identifier when one is recognised.

### What are the rate limits for the Licensius API?

Licensius does not publish a rate-limit value in the OpenAPI spec or on the project site. Treat it as a research-grade public service: keep request volume modest, cache the result of `/license/list` locally, and back off if the endpoint returns 5xx errors during heavy use.

### How do I validate an ODRL fragment through Jentic?

Install with 'pip install jentic', search for 'validate an ODRL policy', and Jentic returns GET `/odrl/validate.` Load the operation, supply the ODRL fragment as the input parameter, and execute. The response indicates whether the fragment is well-formed.

### Can I limit what my agent is allowed to do with the Licensius API?

Yes. Because you run Jentic One yourself, your own rules decide which Licensius operations your agent may call, and it can invoke only the ones you allow. Since Licensius is read-only license detection and ODRL validation with no resource id in the path, you can grant just the operations the agent needs, such as GET `/license/findlicenseinrdf` and GET `/license/findlicenseintxt` for detection or GET `/odrl/validate` for policy checks. Any operation you leave out, the agent cannot run.
