{"id":"datanorge","name":"Data catalog SPARQL","description":"Direct SPARQL queries and specialized dataset, resource and concept search in Norway's national data catalog.","documentation":"https://data.norge.no/nb/technical/api/sparql","operations":[{"name":"sparql_query","description":"Run a SPARQL query against the data.norge.no national data catalog.","parameters":[{"name":"query","type":"string","schema":{"type":"string"},"display_type":"string","required":true,"default":null,"description":"A SPARQL 1.1 SELECT, ASK, CONSTRUCT or DESCRIBE query. Declare the prefixes you use. The main ones in this store: PREFIX dcat: <http://www.w3.org/ns/dcat#> PREFIX dct:  <http://purl.org/dc/terms/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX skos: <http://www.w3.org/2004/02/skos/core#> PREFIX cpsv: <http://purl.org/vocab/cpsv#> Main classes: dcat:Dataset, dcat:Distribution, dcat:DataService, dcat:Catalog, skos:Concept, cpsv:PublicService, modelldcatno:InformationModel (PREFIX modelldcatno: <https://data.norge.no/vocabulary/modelldcatno#>). Events (cv:BusinessEvent/LifeEvent) are documented upstream but the store currently has none. Datasets have dct:title, dct:description, dcat:keyword, dcat:theme, dct:publisher (an agent with foaf:name), and dcat:distribution -> dcat:accessURL / dcat:downloadURL / dct:format. Data services have dct:title and dcat:endpointURL. Cross-resource relations: ?service dcat:servesDataset ?dataset; ?dataset dct:subject ?concept. Aggregation (GROUP BY, COUNT) works normally. Concept definitions are mostly indirect: ?c (euvoc:xlDefinition| skosno:definisjon)/(rdf:value|rdfs:label) ?text, with PREFIX euvoc: <http://publications.europa.eu/ontology/euvoc#> PREFIX skosno: <https://data.norge.no/vocabulary/skosno#> (some concepts use plain dct:description instead, and some carry labels only via skosxl:prefLabel/skosxl:literalForm). Literals are language-tagged (\"nb\", \"nn\", \"en\", some \"no\" or untagged), so filter with STR()/LANG() as needed."},{"name":"limit","type":"integer","schema":{"type":"integer","minimum":1,"maximum":100,"default":25},"display_type":"integer","required":false,"default":25,"description":"Maximum list items returned by the gateway (default 25, maximum 100)."},{"name":"offset","type":"integer","schema":{"type":"integer","minimum":0,"default":0},"display_type":"integer","required":false,"default":0,"description":"Number of list items to skip before returning the page."}],"json_get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/sparql_query?query={query}&limit=25&offset=0","output_fields":["boolean","rows","truncated","turtle"],"output_fields_truncated":false,"canonical_field_aliases":{},"description_language":"en","documentation":"Run a SPARQL query against the data.norge.no national data catalog.\n\nArgs:\n    query: A SPARQL 1.1 SELECT, ASK, CONSTRUCT or DESCRIBE query.\n        Declare the prefixes you use. The main ones in this store:\n          PREFIX dcat: <http://www.w3.org/ns/dcat#>\n          PREFIX dct:  <http://purl.org/dc/terms/>\n          PREFIX foaf: <http://xmlns.com/foaf/0.1/>\n          PREFIX skos: <http://www.w3.org/2004/02/skos/core#>\n          PREFIX cpsv: <http://purl.org/vocab/cpsv#>\n        Main classes: dcat:Dataset, dcat:Distribution, dcat:DataService,\n        dcat:Catalog, skos:Concept, cpsv:PublicService,\n        modelldcatno:InformationModel (PREFIX modelldcatno:\n        <https://data.norge.no/vocabulary/modelldcatno#>). Events\n        (cv:BusinessEvent/LifeEvent) are documented upstream but the\n        store currently has none.\n        Datasets have dct:title, dct:description, dcat:keyword,\n        dcat:theme, dct:publisher (an agent with foaf:name), and\n        dcat:distribution -> dcat:accessURL / dcat:downloadURL /\n        dct:format. Data services have dct:title and dcat:endpointURL.\n        Cross-resource relations: ?service dcat:servesDataset ?dataset;\n        ?dataset dct:subject ?concept. Aggregation (GROUP BY, COUNT)\n        works normally.\n        Concept definitions are mostly indirect: ?c (euvoc:xlDefinition|\n        skosno:definisjon)/(rdf:value|rdfs:label) ?text, with\n          PREFIX euvoc: <http://publications.europa.eu/ontology/euvoc#>\n          PREFIX skosno: <https://data.norge.no/vocabulary/skosno#>\n        (some concepts use plain dct:description instead, and some carry\n        labels only via skosxl:prefLabel/skosxl:literalForm).\n        Literals are language-tagged (\"nb\", \"nn\", \"en\", some \"no\" or\n        untagged), so filter with STR()/LANG() as needed.\n\nReturns for SELECT: {\"rows\": [{var: value}], \"truncated\": bool} (rows\ncapped at 1000 - use LIMIT/OFFSET to page). For ASK: {\"boolean\": bool}.\nFor CONSTRUCT/DESCRIBE: {\"turtle\": \"...\"} (Turtle text, capped at 60k\nchars). Data is NLOD/CC BY 4.0 from the source catalogs.","documentation_language":"en","wiki_get_endpoint":"https://allemannsdata.com/wiki/kilder/datanorge/sparql_query/","wiki_get_url_template":"https://allemannsdata.com/wiki/kilder/datanorge/sparql_query/?query={query}&limit=25&offset=0","json_endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/sparql_query","response_schema":{"type":"object","properties":{"boolean":{"x-allemannsdata-schema-status":"unresolved","description":"Response shape is not yet declared; any JSON value is permitted."},"rows":{"type":"object","properties":{},"additionalProperties":false},"truncated":{"type":"boolean"},"turtle":{"x-allemannsdata-schema-status":"unresolved","description":"Response shape is not yet declared; any JSON value is permitted."}},"additionalProperties":false},"response_schema_status":{"status":"incomplete","codegen_safe":false,"description":"Not suitable for typed model generation: the container shape and field names are useful, but unresolved values accept any JSON value."},"entity_projection":{"status":"projected","entity_types":["dataset"],"description":"Recognized records and stable operation identifiers are projected; an empty array means the successful payload contained no recognizable entity."},"response_schema_url":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/sparql_query/schema","endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/sparql_query","get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/sparql_query?query={query}&limit=25&offset=0"},{"name":"search_datasets","description":"Search the national data catalog for datasets by words in their title\nor description.","parameters":[{"name":"query","type":"string","schema":{"type":"string"},"display_type":"string","required":true,"default":null,"description":"One or more words, e.g. \"sykkel oslo\". All words must match (case-insensitive, any language). Norwegian terms usually find more than English ones."},{"name":"limit","type":"integer","schema":{"type":"integer"},"display_type":"integer","required":false,"default":20,"description":"Max datasets to return (default 20, max 100)."},{"name":"offset","type":"integer","schema":{"type":"integer","minimum":0,"default":0},"display_type":"integer","required":false,"default":0,"description":"Number of list items to skip before returning the page."}],"json_get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/search_datasets?query={query}&limit=20&offset=0","output_fields":["[].uri","[].title","[].description","[].publisher"],"output_fields_truncated":false,"canonical_field_aliases":{"name":["[].title"]},"description_language":"en","documentation":"Search the national data catalog for datasets by words in their title\nor description.\n\nArgs:\n    query: One or more words, e.g. \"sykkel oslo\". All words must match\n        (case-insensitive, any language). Norwegian terms usually find\n        more than English ones.\n    limit: Max datasets to return (default 20, max 100).\n\nReturns [{uri, title, description, publisher}]. Descriptions are\ntruncated to 300 chars. Pass a uri to sparql_query() as\n`DESCRIBE <uri>` to get the full record including distribution\n(download) URLs, themes, keywords and license.","documentation_language":"en","wiki_get_endpoint":"https://allemannsdata.com/wiki/kilder/datanorge/search_datasets/","wiki_get_url_template":"https://allemannsdata.com/wiki/kilder/datanorge/search_datasets/?query={query}&limit=20&offset=0","json_endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/search_datasets","response_schema":{"type":"array","items":{"type":"object","properties":{"uri":{"type":["string","null"],"format":"uri"},"title":{"type":["string","null"]},"description":{"type":["string","null"]},"publisher":{"type":["string","null"]}},"additionalProperties":false}},"response_schema_status":{"status":"inferred","codegen_safe":true,"description":"Safe for code generation from the currently published fields. The contract is statically inferred rather than independently maintained, so clients should tolerate additional fields."},"entity_projection":{"status":"projected","entity_types":["dataset"],"description":"Recognized records and stable operation identifiers are projected; an empty array means the successful payload contained no recognizable entity."},"response_schema_url":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/search_datasets/schema","endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/search_datasets","get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/search_datasets?query={query}&limit=20&offset=0"},{"name":"search_resources","description":"Search the other catalog resource types by words in title/description:\ndata services (APIs), public services or information models.","parameters":[{"name":"query","type":"string","schema":{"type":"string"},"display_type":"string","required":true,"default":null,"description":"One or more words, all must match (case-insensitive). Norwegian terms usually find more than English ones."},{"name":"resource_type","type":"string","schema":{"enum":["data_service","public_service","information_model"],"type":"string"},"display_type":"one of: data_service, public_service, information_model","required":true,"default":null,"description":"\"data_service\" (~1,000 APIs/endpoints), \"public_service\" (~1,200 offentlige tjenester) or \"information_model\" (~13 informasjonsmodeller)."},{"name":"limit","type":"integer","schema":{"type":"integer"},"display_type":"integer","required":false,"default":20,"description":"Max results (default 20, max 100)."},{"name":"offset","type":"integer","schema":{"type":"integer","minimum":0,"default":0},"display_type":"integer","required":false,"default":0,"description":"Number of list items to skip before returning the page."}],"json_get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/search_resources?query={query}&resource_type={resource_type}&limit=20&offset=0","output_fields":["[].data_service","[].public_service","[].information_model"],"output_fields_truncated":false,"canonical_field_aliases":{},"description_language":"en","documentation":"Search the other catalog resource types by words in title/description:\ndata services (APIs), public services or information models.\n\nArgs:\n    query: One or more words, all must match (case-insensitive).\n        Norwegian terms usually find more than English ones.\n    resource_type: \"data_service\" (~1,000 APIs/endpoints),\n        \"public_service\" (~1,200 offentlige tjenester) or\n        \"information_model\" (~13 informasjonsmodeller).\n    limit: Max results (default 20, max 100).\n\nReturns [{uri, title, description, publisher}]. Pass a uri to\nsparql_query() as `DESCRIBE <uri>` for the full record (e.g. a data\nservice's dcat:endpointURL). For datasets use search_datasets(); for\nconcepts use search_concepts().","documentation_language":"en","wiki_get_endpoint":"https://allemannsdata.com/wiki/kilder/datanorge/search_resources/","wiki_get_url_template":"https://allemannsdata.com/wiki/kilder/datanorge/search_resources/?query={query}&resource_type={resource_type}&limit=20&offset=0","json_endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/search_resources","response_schema":{"type":"array","items":{"type":"object","properties":{"data_service":{"type":"string"},"public_service":{"type":"string"},"information_model":{"type":"string"}},"additionalProperties":false}},"response_schema_status":{"status":"inferred","codegen_safe":true,"description":"Safe for code generation from the currently published fields. The contract is statically inferred rather than independently maintained, so clients should tolerate additional fields."},"entity_projection":{"status":"projected","entity_types":["dataset"],"description":"Recognized records and stable operation identifiers are projected; an empty array means the successful payload contained no recognizable entity."},"response_schema_url":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/search_resources/schema","endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/search_resources","get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/search_resources?query={query}&resource_type={resource_type}&limit=20&offset=0"},{"name":"search_concepts","description":"Search begreper (concepts/terms) in the national data catalog by words\nin their preferred or alternative labels.","parameters":[{"name":"query","type":"string","schema":{"type":"string"},"display_type":"string","required":true,"default":null,"description":"One or more words, all must match (case-insensitive)."},{"name":"limit","type":"integer","schema":{"type":"integer"},"display_type":"integer","required":false,"default":20,"description":"Max concepts to return (default 20, max 100)."},{"name":"offset","type":"integer","schema":{"type":"integer","minimum":0,"default":0},"display_type":"integer","required":false,"default":0,"description":"Number of list items to skip before returning the page."}],"json_get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/search_concepts?query={query}&limit=20&offset=0","output_fields":["[].uri","[].label","[].definition","[].publisher"],"output_fields_truncated":false,"canonical_field_aliases":{"name":["[].label"]},"description_language":"en","documentation":"Search begreper (concepts/terms) in the national data catalog by words\nin their preferred or alternative labels.\n\nConcepts are the official term definitions Norwegian public bodies\npublish - e.g. what \"aksjeklasse\" or \"inntekt\" means in a given\nregister. Norwegian search terms find the most.\n\nArgs:\n    query: One or more words, all must match (case-insensitive).\n    limit: Max concepts to return (default 20, max 100).\n\nReturns [{uri, label, definition, publisher}]. Pass a uri to\nsparql_query() as `DESCRIBE <uri>` for the full record.","documentation_language":"en","wiki_get_endpoint":"https://allemannsdata.com/wiki/kilder/datanorge/search_concepts/","wiki_get_url_template":"https://allemannsdata.com/wiki/kilder/datanorge/search_concepts/?query={query}&limit=20&offset=0","json_endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/search_concepts","response_schema":{"type":"array","items":{"type":"object","properties":{"uri":{"type":["string","null"],"format":"uri"},"label":{"type":["string","null"]},"definition":{"type":["string","null"]},"publisher":{"type":["string","null"]}},"additionalProperties":false}},"response_schema_status":{"status":"inferred","codegen_safe":true,"description":"Safe for code generation from the currently published fields. The contract is statically inferred rather than independently maintained, so clients should tolerate additional fields."},"entity_projection":{"status":"projected","entity_types":["dataset"],"description":"Recognized records and stable operation identifiers are projected; an empty array means the successful payload contained no recognizable entity."},"response_schema_url":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/search_concepts/schema","endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/search_concepts","get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/search_concepts?query={query}&limit=20&offset=0"}],"operation_schema_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge/{operation}/schema","related_sources":[],"_meta":{"retrieved_at":"2026-08-02T14:01:14Z","language":"en","content_languages":["en"],"sources":[{"id":"datanorge","name":"Data catalog SPARQL","description":"Direct SPARQL queries and specialized dataset, resource and concept search in Norway's national data catalog.","documentation":"https://data.norge.no/nb/technical/api/sparql","cache_ttl_seconds":300,"rate_limit":"The public SPARQL endpoint may return HTTP 429 when its rate limit is exceeded."}]},"_links":{"self":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge","names":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge?view=names","compact":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge?view=compact","full":"https://allemannsdata.com/wiki/api/v1/kilder/datanorge","wiki":"https://allemannsdata.com/wiki/kilder/datanorge/"}}
