---
title: "List logs"
method: GET
path: "/v1/logs"
tags: ["Logs"]
---

# List logs

`GET /v1/logs`

## Request

- Base URL: `https://api.markifact.com`
- URL: `https://api.markifact.com/v1/logs`
- Auth: HTTP bearer

List your team's operation logs, newest first.

## Query parameters

- `source_type` 'mcp' | 'agent' | 'workflow'
- `status` 'success' | 'error' | 'skipped' | 'stop' | 'start'
- `operation_id` string
- `source_id` string
- `source_run_id` string
- `started_after` integer
- `started_before` integer
- `limit` integer
- `cursor` string

## Response `200`

Logs returned.

- LogPage
  - `data` Log[], required
    - `id` string, required: Log ID.
    - `operation_id` string, required: Markifact operation that ran.
    - `operation_version` integer, nullable
    - `status` 'success' | 'error' | 'skipped' | 'stop' | 'start', required
    - `source` LogSource, required
      - `type` 'mcp' | 'agent' | 'workflow', required: What ran the operation.
      - `id` string, nullable: Parent object ID: the MCP server, agent conversation, or workflow.
      - `run_id` string, nullable: Single execution ID. Set on workflow logs, null otherwise.
      - `name` string, nullable: Current parent name, falling back to the name captured at log time if the parent was deleted.
    - `user` LogUser, required
      - `id` string, nullable: Markifact user ID.
      - `email` string, nullable: Email of the team member who ran the operation.
    - `started_at` integer, required: Start time in Unix seconds.
    - `completed_at` integer, nullable: Completion time in Unix seconds. Null while the operation is still running.
    - `credits_used` integer, required
    - `cache_hit` boolean, required: Whether the result came from cache instead of the provider.
    - `input` unknown
    - `output` unknown
    - `metadata` object, required: Extra context. Keys depend on the source: node_id, node_label, and retry_attempts for workflows, tool_name for MCP.
  - `has_more` boolean, required: Whether more logs match beyond this page.
  - `next_cursor` string, nullable: Pass back as `cursor` to fetch the next page. Null on the last page.

## Other responses

- `400`: Invalid cursor.
- `401`: Invalid API key.

---

[API](https://skmtc.dev/markifact/apis/markifact-api.md) · [All operations](https://skmtc.dev/markifact/apis/markifact-api/llms.txt) · [OpenAPI document](https://skmtc.dev/markifact/apis/markifact-api/revisions/24033d2ceea4?raw)
