Skip to content

    Pre-launch API. The concepts described here are settled, but the API shape is not: request and response fields, parameters and defaults can still change. Build against it, and talk to your Luigi's Box contact before you put an integration into production.

    Get an object's change timeline

    View source
    GET
    /ledger/v1/catalogs/{catalog_id}/objects/{public_id}/timeline
    curl --request GET \
    --url https://api.eu1.luigisbox.ai/ledger/v1/catalogs/example/objects/example/timeline \
    --header 'Authorization: Bearer <token>'

    Fetch the change-history timeline of a single object by its public ID.

    Entries are ordered newest first.

    public_id is the object’s canonical, typed id — <type>/<value> — and is passed as-is, slash included. The window runs from date_from (inclusive) to now; omitting it returns the full retained timeline.

    Requires a read grant on the catalog named in the path; a token granted on another catalog cannot read this one.

    catalog_id
    required
    Catalog Id
    string
    public_id
    required
    Public Id
    string
    date_from
    Any of:
    string format: date-time

    Successful Response

    Media type application/json
    TimelineResponse

    Response body for the object timeline read.

    object
    catalog_id
    required
    Catalog Id
    string
    entries
    required
    Entries
    Array<object>
    TimelineEntry

    A single change on the object’s timeline, annotated with its processing status.

    object
    event_id
    required
    Event Id
    string
    operation
    required
    TimelineOperation

    The kind of change recorded on the timeline.

    string
    Allowed values: update partial_update delete
    payload
    required
    Payload
    object
    key
    additional properties
    any
    source_system
    required
    Source System
    string
    status
    required
    TimelineStatus

    Whether a change has been confirmed applied.

    string
    Allowed values: acked pending
    timestamp
    required
    Timestamp
    string format: date-time
    identity
    required
    Identity
    string
    window
    required
    Window

    The time window the timeline covers.

    object
    date_from
    required
    Date From
    string format: date-time
    to
    To
    string
    default: now
    Allowed value: now
    Example
    {
    "entries": [
    {
    "operation": "update",
    "status": "acked"
    }
    ],
    "window": {
    "to": "now"
    }
    }

    Missing or invalid credentials

    Media type application/json
    ErrorResponse

    Canonical error body — every non-2xx response uses this shape.

    object
    exception_details
    ExceptionDetails

    Machine-readable error context; empty object when there is nothing to add.

    object
    validation_errors
    Any of:
    Array<object>
    ValidationProblem

    One field-level reason a request was rejected.

    object
    loc
    required
    Loc

    Path to the offending value from the request root, e.g. ["body", "filters", 0, "operator"].

    Array
    msg
    required
    Msg

    What is wrong with the value at loc.

    string
    type
    required
    Type

    Stable machine code for the problem, e.g. missing or string_too_short.

    string
    key
    additional properties
    any
    reason
    required
    Reason

    Human-readable, actionable error message.

    string
    request_id
    Any of:
    string
    Example generated
    {
    "exception_details": {
    "validation_errors": [
    {
    "loc": [
    "example"
    ],
    "msg": "example",
    "type": "example"
    }
    ]
    },
    "reason": "example",
    "request_id": "example"
    }

    Authenticated but not permitted

    Media type application/json
    ErrorResponse

    Canonical error body — every non-2xx response uses this shape.

    object
    exception_details
    ExceptionDetails

    Machine-readable error context; empty object when there is nothing to add.

    object
    validation_errors
    Any of:
    Array<object>
    ValidationProblem

    One field-level reason a request was rejected.

    object
    loc
    required
    Loc

    Path to the offending value from the request root, e.g. ["body", "filters", 0, "operator"].

    Array
    msg
    required
    Msg

    What is wrong with the value at loc.

    string
    type
    required
    Type

    Stable machine code for the problem, e.g. missing or string_too_short.

    string
    key
    additional properties
    any
    reason
    required
    Reason

    Human-readable, actionable error message.

    string
    request_id
    Any of:
    string
    Example generated
    {
    "exception_details": {
    "validation_errors": [
    {
    "loc": [
    "example"
    ],
    "msg": "example",
    "type": "example"
    }
    ]
    },
    "reason": "example",
    "request_id": "example"
    }

    Request validation failed

    Media type application/json
    ErrorResponse

    Canonical error body — every non-2xx response uses this shape.

    object
    exception_details
    ExceptionDetails

    Machine-readable error context; empty object when there is nothing to add.

    object
    validation_errors
    Any of:
    Array<object>
    ValidationProblem

    One field-level reason a request was rejected.

    object
    loc
    required
    Loc

    Path to the offending value from the request root, e.g. ["body", "filters", 0, "operator"].

    Array
    msg
    required
    Msg

    What is wrong with the value at loc.

    string
    type
    required
    Type

    Stable machine code for the problem, e.g. missing or string_too_short.

    string
    key
    additional properties
    any
    reason
    required
    Reason

    Human-readable, actionable error message.

    string
    request_id
    Any of:
    string
    Example generated
    {
    "exception_details": {
    "validation_errors": [
    {
    "loc": [
    "example"
    ],
    "msg": "example",
    "type": "example"
    }
    ]
    },
    "reason": "example",
    "request_id": "example"
    }