ISCC - Schema
JSON Schema and JSON-LD Contexts for ISCC Metadata
What is iscc-schema?
iscc-schema provides the official schema definitions for the International Standard Content Code
(ISO 24138:2024). YAML-based OpenAPI 3.1.0 definitions
are the single source of truth for auto-generated JSON Schema,
JSON-LD contexts, Python models, and vocabulary
documentation.
Install
pip install iscc-schema
Quick Start
Core and Service metadata serialize as full JSON-LD by default:
from iscc_schema import IsccMeta
meta = IsccMeta(
iscc="ISCC:KACYPXW445FTYNJ3CYSXHAFJMA2HUWULUNRFE3BLHRSCXYH2M5AEGQY",
name="The Never Ending Story",
)
# Serialize as dict (set fields only)
meta.dict()
# {'iscc': 'ISCC:KACY...', 'name': 'The Never Ending Story'}
# Serialize as JSON (includes schema defaults)
meta.json()
# JSON-LD: includes @context, @type and a version-pinned $schema
Seed and Protocol records serialize as compact JSON — just the fields plus a version-pinned
$schema that anchors the schema version and lets any consumer recover full JSON-LD on demand:
from iscc_schema import STM, recover_context
seed = STM(
doi="10.5555/example.2020.0001",
resource_type="JournalArticle",
title="On the Stability of Quasilinear Forms",
publisher="Meridian Academic Press",
pubyear=2020,
)
# Compact JSON by default: fields plus the version-pinned $schema, no @context/@type
seed.json()
# Opt into full JSON-LD when you need it
seed.json(ld=True)
# Recover the JSON-LD @context from compact data using its $schema
recover_context(seed.dict())
Schema Categories
- ISCC Metadata. Core vocabulary for digital content identified by the ISCC. All fields are optional, covering content description, rights, technical properties, and cryptographic declarations.
- Seed Metadata. Industry-specific input for Meta-Code generation (
ISBN,ISRC,STM). Required fields ensure interoperable content fingerprinting across platforms. - Service Metadata. Use-case-specific schemas for ISCC registries (
TDM,GenAI). Machine-readable signals for text and data mining rights and generative AI disclosure. - Protocol Schemas. ISCC Discovery Protocol wire records (
IsccNote). Compact, signature-anchored declaration records for ISCC-HUB timestamping and registration.
Published Artifacts
| Artifact | URL |
|---|---|
| JSON Schema | http://purl.org/iscc/schema |
| JSON-LD Context | http://purl.org/iscc/context |
| Vocabulary | http://purl.org/iscc/terms |
| Python Package | https://pypi.org/project/iscc-schema |
Documentation
Documentation is hosted at schema.iscc.codes
Development
uv sync # Install dependencies
uv run poe all # Full build pipeline (codegen, tests, docs)
Status
Under development. Expect breaking changes until we reach a version 1.0 release.
Metadata
Release files for iscc-schema 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iscc_schema-0.8.0.tar.gz | 511.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iscc_schema-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 578.4 kB
Release files / iscc_schema-0.8.0.tar.gz
| Download URL | iscc_schema-0.8.0.tar.gz |
|---|---|
| Size | 511.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ceca76958b4f76df686f93f37daef05d8026f24945db1d78e0aa5921b52cefc1
|
|
BLAKE2b-256 checksum How to use checksums |
e205430bd42956fd54770ca6ecf1debb9b0df70bd146d3c2eafd587578e54bd6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / iscc_schema-0.8.0-py3-none-any.whl
| Download URL | iscc_schema-0.8.0-py3-none-any.whl |
|---|---|
| Size | 66.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
465a423647c8d845a704a3f4d04a7923f8633e33313eb618bb9ea80c60ec39b4
|
|
BLAKE2b-256 checksum How to use checksums |
6c236b44c5bed78f6d76c365ddbe52ca8b5a9183cf763611b95481f98f363879
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|