> ## Documentation Index
> Fetch the complete documentation index at: https://docs.law4devs.eu/llms.txt
> Use this file to discover all available pages before exploring further.

# Global content update changelog

> Returns content update log entries across all frameworks, newest first.
Filter by framework slug or date to scope results.




## OpenAPI

````yaml /openapi.yaml get /changelog
openapi: 3.0.3
info:
  title: Law4Devs API
  version: 1.0.0
  description: >
    Structured EU regulatory compliance data for developers.


    All 19 major EU digital regulations — CRA, NIS2, DORA, GDPR, AI Act, eIDAS,

    DSA, DMA, Data Act, DGA, eIDAS2, CER, PSD2, MiCA, Cybersecurity Act,

    ePrivacy, RED, CSRD, NIS1 — parsed into structured articles, recitals,

    requirements, compliance deadlines, and tags.


    ## Response Conventions


    - **List responses** (paginated): `{ data: [...], meta: { api_version,
    total, page, per_page, pages }, links: { next, prev } }`

    - **List responses** (non-paginated): `{ data: [...], meta: { api_version,
    total } }`

    - **Detail responses**: `{ data: { ... } }`

    - **Error responses**: `{ error: { code: "ERROR_CODE", message:
    "Human-readable message" } }`


    ## Pagination


    All list endpoints accept `page` (≥ 1, default 1) and `per_page` (1–100,
    default 20).

    Invalid values return `400 INVALID_PARAM`.
servers:
  - url: https://demo.law4devs.eu/api/v1
    description: Demo (CRA only, no key required)
security: []
tags:
  - name: Health
    description: API and database health check
  - name: Frameworks
    description: EU regulatory frameworks (CRA, NIS2, GDPR, etc.)
  - name: Articles
    description: Individual articles within a framework
  - name: Recitals
    description: Recitals (preamble paragraphs) within a framework
  - name: Requirements
    description: Extracted compliance requirements with stakeholder role mappings
  - name: Annexes
    description: Technical annexes attached to a framework
  - name: Compliance
    description: Compliance deadlines and key dates
  - name: Stats
    description: Coverage statistics per framework
  - name: Search
    description: Full-text search across articles, recitals, and requirements
  - name: Tags
    description: Semantic tags used to classify content
  - name: Changelog
    description: Content update history and data freshness
  - name: Compare
    description: Cross-framework article comparison
paths:
  /changelog:
    get:
      tags:
        - Changelog
      summary: Global content update changelog
      description: |
        Returns content update log entries across all frameworks, newest first.
        Filter by framework slug or date to scope results.
      operationId: get_global_changelog
      parameters:
        - name: framework
          in: query
          description: Filter by framework slug
          schema:
            type: string
            example: cra
        - name: since
          in: query
          description: Only return entries after this ISO 8601 datetime
          schema:
            type: string
            format: date-time
            example: '2025-01-01T00:00:00Z'
        - name: limit
          in: query
          description: Maximum number of entries (default 50)
          schema:
            type: integer
            default: 50
            example: 20
      responses:
        '200':
          description: Content update log entries
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/SyncLogEntry'
                  meta:
                    type: object
                    properties:
                      api_version:
                        type: string
                        example: '1.0'
                      total:
                        type: integer
components:
  schemas:
    SyncLogEntry:
      type: object
      properties:
        synced_at:
          type: string
          format: date-time
        articles_added:
          type: integer
        articles_updated:
          type: integer
        recitals_added:
          type: integer
        recitals_updated:
          type: integer
        requirements_added:
          type: integer
        duration_seconds:
          type: number
          nullable: true
        success:
          type: boolean
        error_message:
          type: string
          nullable: true

````