# List catalogs

Use `/catalogs/list` to list existing catalogs.

## List

> List catalogs

```json
{"openapi":"3.1.0","info":{"title":"Batch - REST API","version":"2.9"},"tags":[{"name":"Catalogs"}],"servers":[{"url":"https://api.batch.com/{version}","description":"production","variables":{"version":{"default":"2.11","description":"Version of the API"}}}],"security":[{"rest_key":[]}],"components":{"securitySchemes":{"rest_key":{"type":"http","scheme":"bearer","description":"## API Key Authentication\n\nAuthentication is required in order to interact with Batch's APIs.\n\nBatch implements authentication using API Keys, that we call the \"REST API Key\".\nYou can find it on your dashboard.\n\nPlease make sure that you keep this key secret. You should never use it in client apps to call APIs from there as it would\neasily be extractable.\n\n### How to authenticate\n\nIn order to authenticate your requests, add your REST API Key in the `Authorization` header and prefix it by `Bearer`. Example: `Authorization: Bearer bcd38d9rfb38ra28`.\n"}},"parameters":{"HeaderProjectKey":{"in":"header","name":"X-Batch-Project","description":"The unique project key, identifying a project on the Batch platform","schema":{"type":"string"},"required":true}},"schemas":{"catalog":{"description":"A catalog represents a structured collection of items and associated fields that define the schema of those items.","type":"object","required":["name","fields","items","size","created","updated"],"properties":{"name":{"type":"string","description":"Unique identifier for the catalog, used for referencing in API calls."},"fields":{"type":"array","description":"List of fields that define the schema of items in the catalog.","items":{"$ref":"#/components/schemas/field"},"minItems":1,"maxItems":25},"items":{"type":"integer","description":"Total number of items currently stored in this catalog."},"size":{"type":"integer","description":"Size of the catalog data in bytes."},"created":{"type":"string","format":"date-time","description":"RFC 3339 UTC date indicating when the catalog was created."},"updated":{"type":"string","format":"date-time","description":"RFC 3339 UTC date of the last update to the catalog."},"indexing_state":{"type":"string","enum":["IN_PROGRESS","APPLIED"],"description":"Indicates the current indexing state of the catalog items."}}},"field":{"description":"A field defines a single attribute type that items in the catalog can have. Each field has a unique name and a type.","type":"object","required":["name","type"],"properties":{"name":{"type":"string","description":"The name of the field as it will appear on catalog items.","pattern":"[a-z0-9_]+$","minLength":1,"maxLength":250},"type":{"$ref":"#/components/schemas/field_type","description":"The data type for this field, such as integer or string."}}},"field_type":{"type":"string","description":"Enumerates the possible data types allowed for catalog fields.","enum":["array","bool","date","float","integer","string","url"]}}},"paths":{"/catalogs/list":{"get":{"operationId":"catalog_list","summary":"List","description":"List catalogs","tags":["Catalogs"],"parameters":[{"$ref":"#/components/parameters/HeaderProjectKey"},{"name":"from","in":"query","description":"A cursor for pagination across multiple pages of results. Don’t include this parameter on the first call. Use the `next_from` value returned in a previous response to request subsequent results.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"To change the page size of results.","required":false,"schema":{"type":"integer","default":10,"minimum":1,"maximum":100}}],"responses":{"200":{"description":"Successfully listed all catalogs.","content":{"application/json":{"schema":{"type":"object","required":["catalogs","count","has_more","next_from"],"properties":{"catalogs":{"type":"array","description":"Array of catalog objects.","items":{"$ref":"#/components/schemas/catalog"}},"count":{"type":"integer","description":"Total number of catalogs."},"has_more":{"type":"boolean","description":"Indicates whether more catalogs are available."},"next_from":{"type":"string","description":"Cursor for pagination if more results are available."}}}}}}}}}}}
```

### Request structure

#### Route

The Catalog API exposes a GET endpoint that allows to list catalogs :

`/catalogs/list`

#### Headers and authentication

See [Overview → Using Project APIs](https://doc.batch.com/developer/api/cep/..#request-headers-and-authentication).

#### Query parameters

See API Description.

### Responses

#### Success

If the GET to the API endpoint is successful you will receive an **HTTP 200** confirmation and information about your catalogs.

```json
{
  "catalogs": [
    {
      "name": "MOVIES",
      "items": 8807,
      "size": 7746977,
      "created": "2025-07-14T16:27:14Z",
      "updated": "2025-07-21T09:20:44Z",
      "fields": [
        {
          "name": "director",
          "type": "string"
        },
        {
          "name": "title",
          "type": "string"
        },
        {
          "name": "release_year",
          "type": "integer"
        },
        {
          "name": "cast",
          "type": "array"
        },
        {
          "name": "description",
          "type": "string"
        }
      ]
    }
  ],
  "count": 3,
  "has_more": false,
  "next_from": "676DEZREZ"
}
```

Pagination infos:

* `next_from` can be used for the next call to list to retrieve the next page
* `count` is only returned for the first page

#### Failure

If the POST data does not meet the API requirements you will receive an actionable error message. Contact us at <support@batch.com> if you need further support.

See the list of potential failures in the API Description.
