Install
openclaw skills install @ogruenig/regmapperBrowse, search, and annotate regulations via the RegMapper API. Use when asked about regulations, rules, compliance requirements, project annotations, or comparing regulation versions.
openclaw skills install @ogruenig/regmapperUse the regmapper skill to browse and research laws and regulations in the RegMapper database. You can search for regulations, explore their chapter and rule structure, and read detailed rule content. You can also access project-scoped comments to gain insights from human reviewers. If you have write access to a project, you can add or update comments and set their status and category to enrich the dataset for future use. Additionally, you can compare different versions of a regulation and get a diff of changed rules.
Header for all API calls:
Authorization: Token <token_value>
<token_value> with your actual API token.401 UnauthorizedStoring the token:
skills/.env as REGMAPPER_API_TOKEN so it is loaded automatically:
REGMAPPER_API_TOKEN=your_token_here
Base URL:
https://regmapper.net/api/v1
To use this skill, you need a RegMapper API token:
skills/.env as shown aboveSecurity Note: Never commit your .env file or share your token publicly.
*Note: For creating comments or using advanced features, you will need to create a project through the web interface first (create project) *
Store only REGMAPPER_API_TOKEN in skills/.env; create the file if missing. Add .env to .gitignore.
401: Token invalid/expired → regenerate at RegMapper. 403: No project access → contact project admin.
The full OpenAPI specification is included as openapi.json in this skill package. See https://www.regmapper.net/api/v1/schema/ for the live schema reference.
List endpoints are paginated (page query param, default page size 100).
Envelope: count, next, previous, results.
GET /projects/
id, name, auth (read or write).auth=write.GET /projects/{id}/
id, name, reference, description, auth, categories (id, category), statuses (id, status).view_project on that project (403 otherwise).GET /projects/{id}/regulations/
regid, title, shortname.GET /projects/{id}/statuses/
id, status.GET /projects/{id}/categories/
id, category.GET /regulations/
title, shortname, versdate, status, regulator, language.status is omitted. Add status=current to restrict to current versions only.GET /regulations/{regid}/rules/overview/
GET /regulations/{regid}/rules/
chapter, rule, page).id from results when creating comments.GET /regulations/compare/{obs}/{new}/overview/ and /rules/{rule}/{chapter}/
chapter from an overview merge row to avoid ambiguity.agg (aggregated number of changed characters per rule) and diff; sim, obs, and new are only available on detailed compare rows.rules_any (rules with any project comments) and rules_current (rules with current-project comments) — useful for prioritizing which rules to inspect.comment_refs (list of {id, project_id, rule_id, status_id}) — use to detect existing annotations before creating a duplicate.orig_url and copyright_url — URLs to the source document and copyright page for citations.changes_html uses semantic diff tags: <ins> = added text, <del> = removed text.diff, sim, and obs/new text fields.GET /comments/?project=<id>
regulation|regulations, category|categories, status|statuses, q|text.include_note=true (include full note in list/search response).project → 400; no project access → 403.note_preview (50 chars) and does not include rule_content.GET /comments/{id}/
note and full rule_content.view_project on the comment's project.POST /comments/
project, rule, optional note, optional status, optional category (list of category ids).change_project on project.created_by and changed_by are set from the token user automatically.PATCH /comments/{id}/
note, status, category.change_project on the comment's project.changed_by is set from the token user automatically./projects/ and pick a project with auth=read or auth=write./projects/{id}/regulations/, /projects/{id}/statuses/, and /projects/{id}/categories/ for linked metadata./comments/?project=<id> for search/list (compact response; add include_note=true if needed)./comments/{id}/ when full note and rule text are required.auth=write, use comment create/update endpoints.Goal: Identify changes between two versions of a regulation.
Steps:
Find the older version:
curl -H "Authorization: Token <YOUR_TOKEN>" "https://regmapper.net/api/v1/regulations/?shortname=<REG>&status=obsolete"
→ Note the regid and versdate of the older version.
Find the current version:
curl -H "Authorization: Token <YOUR_TOKEN>" "https://regmapper.net/api/v1/regulations/?shortname=<REG>&status=current"
→ Note the regid and versdate of the current version.
Get comparison overview:
curl -H "Authorization: Token <YOUR_TOKEN>" "https://regmapper.net/api/v1/regulations/compare/{obs_regid}/{new_regid}/overview/"
→ Check the diff field: "diff" = changes present, "same" = no changes.
Get detailed changes:
For each changed rule (diff: "diff"):
curl -H "Authorization: Token <YOUR_TOKEN>" "https://regmapper.net/api/v1/regulations/compare/{obs_regid}/{new_regid}/rules/{rule}/{chapter}/"
→ Analyse changes_html (<ins> = added, <del> = removed) and sim (similarity score).
Note:
agg = number of changed characters (useful for prioritization).chapter from the merge row of the overview to avoid ambiguity.