# List citations

Retrieve previous verification records with pagination and optional thread filtering.

Documentation index: https://webcite.co/llms.txt
Canonical page: https://webcite.co/api-docs/citations
API origin: https://api.webcite.co
Authentication: x-api-key header. Keep keys on your server.

## When to use it

Start with `page=1&limit=20`. The pagination schema allows a maximum of 100, while the controller description still says 50. Use 50 or fewer for compatibility. `fields` defaults to `all`; request `basic` explicitly for a smaller response.

## Request

GET /api/v1/citations

1 credit.

### curl

```curl
curl --fail-with-body -X GET 'https://api.webcite.co/api/v1/citations' \
  -H "x-api-key: $WEBCITE_API_KEY"
```

### Node.js

```javascript
const response = await fetch("https://api.webcite.co/api/v1/citations", {
  method: "GET",
  headers: {
    "x-api-key": process.env.WEBCITE_API_KEY,
  },
});
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
console.log(await response.json());
```

### python

```python
import os
import requests

response = requests.get(
    "https://api.webcite.co/api/v1/citations",
    headers={"x-api-key": os.environ["WEBCITE_API_KEY"]},
    timeout=(10, 300),
)
response.raise_for_status()
print(response.json())
```

## Response

Returns data and pagination metadata as defined below. Use the returned pagination values when requesting the next page.

## Errors

For 400, check the request fields and source identifiers. For 401, check your API key. For 429, wait for the retry interval. See the errors guide before retrying a billable request.

## OpenAPI operation

```json
{
  "path": "/api/v1/citations",
  "method": "GET",
  "operation": {
    "description": "List your past verification results. Supports pagination and filtering by thread_id.\n\n**Cost: 1 credit.** This is a read of results you already generated. No LLM calls.",
    "operationId": "ApiV1Controller_listCitations",
    "parameters": [
      {
        "description": "Page number (starts at 1)",
        "in": "query",
        "name": "page",
        "required": false,
        "schema": {
          "default": 1,
          "example": 1,
          "minimum": 1,
          "type": "number"
        }
      },
      {
        "description": "Results per page (max 50)",
        "in": "query",
        "name": "limit",
        "required": false,
        "schema": {
          "default": 20,
          "example": 20,
          "maximum": 100,
          "minimum": 1,
          "type": "number"
        }
      },
      {
        "description": "Predefined field set to return",
        "in": "query",
        "name": "fields",
        "required": false,
        "schema": {
          "default": "all",
          "enum": [
            "minimal",
            "basic",
            "detailed",
            "with_relations",
            "all"
          ],
          "example": "basic",
          "type": "string"
        }
      },
      {
        "description": "Filter by thread ID",
        "in": "query",
        "name": "thread_id",
        "required": false,
        "schema": {
          "example": "123e4567-e89b-12d3-a456-426614174000",
          "type": "string"
        }
      }
    ],
    "responses": {
      "200": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CitationListResponseDto"
            }
          }
        },
        "description": "Citations retrieved"
      },
      "401": {
        "description": "Unauthorized - API key required"
      }
    },
    "security": [
      {
        "x-api-key": []
      },
      {
        "bearer": []
      }
    ],
    "summary": "List citations",
    "tags": [
      "Public API"
    ]
  },
  "schemas": {
    "CitationListResponseDto": {
      "properties": {
        "data": {
          "description": "Array of citation records",
          "example": [
            {
              "citation": "[{\"title\":\"Example\",\"url\":\"https://example.com\"}]",
              "created_at": "2024-01-01T00:00:00.000Z",
              "id": "123e4567-e89b-12d3-a456-426614174000",
              "is_active": true,
              "prompt": "Latest trends in AI",
              "thread_id": "thread-123"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/CitationRecordDto"
          },
          "type": "array"
        },
        "message": {
          "description": "Response message",
          "example": "Citations fetched successfully",
          "type": "string"
        },
        "pagination": {
          "allOf": [
            {
              "$ref": "#/components/schemas/PaginationMetaDto"
            }
          ],
          "description": "Pagination metadata"
        },
        "statusCode": {
          "description": "HTTP status code",
          "example": 200,
          "type": "number"
        }
      },
      "required": [
        "data",
        "pagination",
        "statusCode",
        "message"
      ],
      "type": "object"
    },
    "CitationRecordDto": {
      "properties": {
        "api_key_id": {
          "description": "API key ID used for this citation",
          "example": "api-key-123",
          "type": "string"
        },
        "citation": {
          "description": "Citation data (JSON string or array of CitationObject)",
          "example": "[{\"title\":\"Example\",\"url\":\"https://example.com\",\"snippet\":\"...\"}]",
          "type": "object"
        },
        "created_at": {
          "description": "Timestamp when the citation was created",
          "example": "2024-01-01T00:00:00.000Z",
          "format": "date-time",
          "type": "string"
        },
        "id": {
          "description": "Unique identifier of the citation record",
          "example": "123e4567-e89b-12d3-a456-426614174000",
          "type": "string"
        },
        "is_active": {
          "description": "Whether the citation is active",
          "example": true,
          "type": "boolean"
        },
        "prompt": {
          "description": "The original prompt that generated this citation",
          "example": "Latest trends in AI",
          "type": "string"
        },
        "thread_id": {
          "description": "Thread ID associated with this citation",
          "example": "123e4567-e89b-12d3-a456-426614174000",
          "type": "string"
        },
        "updated_at": {
          "description": "Timestamp when the citation was last updated",
          "example": "2024-01-01T00:00:00.000Z",
          "format": "date-time",
          "type": "string"
        },
        "user_id": {
          "description": "User ID who created this citation",
          "example": "user-123",
          "type": "string"
        }
      },
      "required": [
        "id",
        "thread_id",
        "prompt"
      ],
      "type": "object"
    },
    "PaginationMetaDto": {
      "properties": {
        "hasNextPage": {
          "description": "Whether there is a next page",
          "example": true,
          "type": "boolean"
        },
        "hasPreviousPage": {
          "description": "Whether there is a previous page",
          "example": false,
          "type": "boolean"
        },
        "limit": {
          "description": "Number of items per page",
          "example": 20,
          "type": "number"
        },
        "page": {
          "description": "Current page number",
          "example": 1,
          "type": "number"
        },
        "total": {
          "description": "Total number of items",
          "example": 100,
          "type": "number"
        },
        "totalPages": {
          "description": "Total number of pages",
          "example": 5,
          "type": "number"
        }
      },
      "required": [
        "total",
        "page",
        "limit",
        "totalPages",
        "hasNextPage",
        "hasPreviousPage"
      ],
      "type": "object"
    }
  }
}
```
