---
title: "List credit logs"
method: GET
path: "/v1/credits/logs"
tags: ["Credits"]
---

# List credit logs

`GET /v1/credits/logs`

## Request

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

List the team's credit charges, newest first. Not truncated by plan.

## Query parameters

- `service_type` 'workflow' | 'agent' | 'copilot' | 'mcp'
- `service_id` string
- `user_id` string
- `created_after` integer
- `created_before` integer
- `limit` integer
- `cursor` string

## Response `200`

Credit logs returned.

- CreditLogPage
  - `data` CreditLog[], required
    - `id` integer, required: Ledger entry ID.
    - `credits_used` integer, required: Credits this charge consumed.
    - `credits_remaining` integer, required: Balance immediately after this charge. A snapshot, not a running total: renewals reset the balance without writing an entry.
    - `service` CreditService, required
      - `type` 'workflow' | 'agent' | 'copilot' | 'mcp', required: What was charged.
      - `id` string, nullable: The workflow, conversation, or MCP server charged. Matches source.id on operation logs.
      - `name` string, nullable: Name at the time of the charge, not the parent's current name.
    - `user` LogUser, required
      - `id` string, nullable: Markifact user ID.
      - `email` string, nullable: Email of the team member who ran the operation.
    - `created_at` integer, required: Charge time in Unix seconds.
  - `has_more` boolean, required: Whether more entries 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)
