# Get a collection

> The collection's definition: its indexes, default TTL and status. Collections are project-level, so this takes no scope.

`GET https://api.zavu.dev/v1/memory/collections/{collection}`

The collection's definition: its indexes, default TTL and status. Collections are project-level, so this takes no scope.

## Parameters

- `collection` (path, string, required): Collection name.

## Responses

### 200

Collection details.

- `collection` (object, required): A namespace of JSON documents addressed by key.
  - `name` (string, required)
  - `indexes` (object[], required): Fields that `POST /v1/memory/collections/{collection}/query` can filter on. Immutable after creation.
    - `field` (string, required)
  - `defaultTtlSeconds` (integer, required, nullable): TTL applied to items written without their own `ttlSeconds`. Null means items are kept until deleted.
  - `status` (string, required): `active`, or `deleting` while a delete drains in the background.
  - `createdAt` (string<date-time>, required)
  - `updatedAt` (string<date-time>, required)

### 400

Invalid collection name.

- `code` (string, required)
- `message` (string, required)
- `details` (object)

### 401

Unauthorized.

- `code` (string, required)
- `message` (string, required)
- `details` (object)

### 404

Collection not found.

- `code` (string, required)
- `message` (string, required)
- `details` (object)

## Example

```bash
curl -X GET "https://api.zavu.dev/v1/memory/collections/collection_abc123" \
  -H "Authorization: Bearer $ZAVUDEV_API_KEY"
```

```typescript
import Zavudev from "@zavudev/sdk";

const zavu = new Zavudev({ apiKey: process.env.ZAVUDEV_API_KEY });

const result = await zavu.memory.collections.retrieve("collection_abc123");

console.log(result);
```
