<!-- Markdown copy of https://docs.creatorain.com/reference/operations/listlocations/ -->
# This account's locations, oldest first

**Not live yet:** the v1 API and its hosts are not open. See [Sandbox](/get-started/sandbox/).

GET

/locations

Select code sampleFetchcURL

```js
const url = 'https://api.creatorain.com/v1/locations?limit=50';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```sh
curl --request GET \
  --url 'https://api.creatorain.com/v1/locations?limit=50' \
  --header 'Authorization: Bearer <token>'
```

-   Live (crp\_live\_ keys)
-   Sandbox (crp\_test\_ keys)

Scope `read`. Every store of this account on the CreatoRain Network, each with the state the app’s Network page shows (`state`), its plan and videos a month, and whether it is held (`held`, the API hold until CreatoRain releases it) or accepting creators (`accepting`). The same `loc_` id `POST /locations` returned. `deposit` is the quote at create; what Checkout would ask today is `GET /bill/preview`’s `deposit`. `account` is as on the create; `network` says whether the network takes bookings at all.

## Authorizations

-   **[bearerAuth](/reference/#bearerauth)**

## Parameters

### Query Parameters

**cursor**

string

<= 512 characters

The `next_cursor` of the previous page, unchanged. Omit it for the first page. Anything else is `400 parameter_invalid` (field `cursor`).

**limit**

integer

default: 50 \>= 1 <= 200

Items a page, 1 to 200.

## Responses

### 200

One page of locations.

Media typeapplication/json

object

**object**

required

string

Allowed values: list

**data**

required

Array<object>

A location as the reads answer it. The fields it shares with LocationItem carry the same names and meanings.

object

**object**

required

string

Allowed values: location

**id**

required

string

**livemode**

required

boolean

**name**

required

string

nullable

**address**

required

string

nullable

**plan**

required

string

Allowed values: paid free

**videos\_per\_month**

required

integer

nullable

**term\_months**

required

integer

nullable

**price\_per\_video\_cents**

required

integer

nullable

**currency**

required

string

Allowed values: USD

**deposit**

required

object

**cents**

required

The quote at create (half of month one; free 0). Not what is due now.

integer

nullable

**charged**

required

boolean

**state**

required

The network state the app’s Network page shows.

string

Allowed values: payment\_failed ended paused needs\_hours on\_hold awaiting\_payment full\_this\_month accepting

**status**

required

string

Allowed values: active paused ended

**held**

required

Held by the API hold until CreatoRain releases it to recruiting.

boolean

**accepting**

required

True exactly when state is accepting.

boolean

**term\_ends\_on**

required

string format: date

nullable

**created\_at**

required

RFC 3339, UTC.

string format: date-time

**next\_cursor**

required

string

nullable

**account**

required

object

**counting\_locations**

required

Live stores of this account after the call (a dry run - as it would be).

integer

**min\_locations**

required

integer

**blockers**

required

Below\_minimum while counting\_locations is under min\_locations.

Array<string>

**network**

required

object

**accepting**

required

The network takes bookings now.

boolean

**join\_enabled**

required

boolean

**comped**

required

The account is on the free plan.

boolean

**renew\_to\_free**

required

boolean

nullable

#### Example

```json
{
  "object": "list",
  "data": [
    {
      "object": "location",
      "id": "loc_3f2a9c1e5b7d4a6f8e0c2b4d6f8a0c2e",
      "plan": "paid",
      "currency": "USD",
      "deposit": {
        "charged": false
      },
      "state": "payment_failed",
      "status": "active"
    }
  ],
  "account": {
    "min_locations": 3
  }
}
```

#### Headers

**Request-Id**

string format: uuid

This request’s id. Equal to error.request\_id; quote it to support.

**RateLimit-Limit**

integer

##### Example

```json
600
```

Requests allowed in the current minute for this workspace (600).

**RateLimit-Remaining**

integer

Requests left in the current minute for this workspace.

**RateLimit-Reset**

integer

Seconds until the current window resets.

### 400

Parameter\_invalid (with `field`) or invalid\_json.

Media typeapplication/json

object

**error**

required

object

**type**

required

string

Allowed values: invalid\_request\_error authentication\_error permission\_error idempotency\_error rate\_limit\_error api\_error

**code**

required

string

Allowed values: parameter\_invalid invalid\_json idempotency\_key\_invalid idempotency\_key\_required customization\_not\_supported videos\_per\_month\_out\_of\_range batch\_invalid terms\_not\_accepted invalid\_key test\_key\_on\_live live\_key\_on\_sandbox insufficient\_balance scope\_missing forbidden\_ip forbidden live\_key\_requires\_top\_up limit\_raise\_requires\_dashboard not\_found idempotency\_conflict idempotency\_in\_progress conflict location\_already\_in\_network external\_id\_conflict dispute\_open request\_too\_large address\_not\_verified not\_food\_business metro\_not\_served package\_not\_available account\_location\_limit commit\_limit\_exceeded top\_up\_exceeds\_feasible no\_saved\_card rate\_limited quota\_exceeded slow\_down internal\_error service\_unavailable

**message**

required

string

**field**

The request field at fault

string

**doc\_url**

required

string format: uri

**request\_id**

required

string format: uuid

**items**

Batch\_invalid only. Every refused location, by its index in the request.

Array<object>

object

**index**

required

integer

**code**

required

One of the error codes above.

string

**field**

string

**message**

required

string

#### Example

```json
{
  "error": {
    "type": "invalid_request_error",
    "code": "parameter_invalid",
    "doc_url": "https://www.creatorain.com/api/errors#scope_missing",
    "items": [
      {
        "field": "locations.1.videos_per_month"
      }
    ]
  }
}
```

#### Headers

**Request-Id**

string format: uuid

This request’s id. Equal to error.request\_id; quote it to support.

### 401

Invalid\_key, test\_key\_on\_live or live\_key\_on\_sandbox.

Media typeapplication/json

object

**error**

required

object

**type**

required

string

Allowed values: invalid\_request\_error authentication\_error permission\_error idempotency\_error rate\_limit\_error api\_error

**code**

required

string

Allowed values: parameter\_invalid invalid\_json idempotency\_key\_invalid idempotency\_key\_required customization\_not\_supported videos\_per\_month\_out\_of\_range batch\_invalid terms\_not\_accepted invalid\_key test\_key\_on\_live live\_key\_on\_sandbox insufficient\_balance scope\_missing forbidden\_ip forbidden live\_key\_requires\_top\_up limit\_raise\_requires\_dashboard not\_found idempotency\_conflict idempotency\_in\_progress conflict location\_already\_in\_network external\_id\_conflict dispute\_open request\_too\_large address\_not\_verified not\_food\_business metro\_not\_served package\_not\_available account\_location\_limit commit\_limit\_exceeded top\_up\_exceeds\_feasible no\_saved\_card rate\_limited quota\_exceeded slow\_down internal\_error service\_unavailable

**message**

required

string

**field**

The request field at fault

string

**doc\_url**

required

string format: uri

**request\_id**

required

string format: uuid

**items**

Batch\_invalid only. Every refused location, by its index in the request.

Array<object>

object

**index**

required

integer

**code**

required

One of the error codes above.

string

**field**

string

**message**

required

string

#### Example

```json
{
  "error": {
    "type": "invalid_request_error",
    "code": "parameter_invalid",
    "doc_url": "https://www.creatorain.com/api/errors#scope_missing",
    "items": [
      {
        "field": "locations.1.videos_per_month"
      }
    ]
  }
}
```

#### Headers

**Request-Id**

string format: uuid

This request’s id. Equal to error.request\_id; quote it to support.

### 403

Scope\_missing or forbidden\_ip.

Media typeapplication/json

object

**error**

required

object

**type**

required

string

Allowed values: invalid\_request\_error authentication\_error permission\_error idempotency\_error rate\_limit\_error api\_error

**code**

required

string

Allowed values: parameter\_invalid invalid\_json idempotency\_key\_invalid idempotency\_key\_required customization\_not\_supported videos\_per\_month\_out\_of\_range batch\_invalid terms\_not\_accepted invalid\_key test\_key\_on\_live live\_key\_on\_sandbox insufficient\_balance scope\_missing forbidden\_ip forbidden live\_key\_requires\_top\_up limit\_raise\_requires\_dashboard not\_found idempotency\_conflict idempotency\_in\_progress conflict location\_already\_in\_network external\_id\_conflict dispute\_open request\_too\_large address\_not\_verified not\_food\_business metro\_not\_served package\_not\_available account\_location\_limit commit\_limit\_exceeded top\_up\_exceeds\_feasible no\_saved\_card rate\_limited quota\_exceeded slow\_down internal\_error service\_unavailable

**message**

required

string

**field**

The request field at fault

string

**doc\_url**

required

string format: uri

**request\_id**

required

string format: uuid

**items**

Batch\_invalid only. Every refused location, by its index in the request.

Array<object>

object

**index**

required

integer

**code**

required

One of the error codes above.

string

**field**

string

**message**

required

string

#### Example

```json
{
  "error": {
    "type": "invalid_request_error",
    "code": "parameter_invalid",
    "doc_url": "https://www.creatorain.com/api/errors#scope_missing",
    "items": [
      {
        "field": "locations.1.videos_per_month"
      }
    ]
  }
}
```

#### Headers

**Request-Id**

string format: uuid

This request’s id. Equal to error.request\_id; quote it to support.

### 404

Not\_found.

Media typeapplication/json

object

**error**

required

object

**type**

required

string

Allowed values: invalid\_request\_error authentication\_error permission\_error idempotency\_error rate\_limit\_error api\_error

**code**

required

string

Allowed values: parameter\_invalid invalid\_json idempotency\_key\_invalid idempotency\_key\_required customization\_not\_supported videos\_per\_month\_out\_of\_range batch\_invalid terms\_not\_accepted invalid\_key test\_key\_on\_live live\_key\_on\_sandbox insufficient\_balance scope\_missing forbidden\_ip forbidden live\_key\_requires\_top\_up limit\_raise\_requires\_dashboard not\_found idempotency\_conflict idempotency\_in\_progress conflict location\_already\_in\_network external\_id\_conflict dispute\_open request\_too\_large address\_not\_verified not\_food\_business metro\_not\_served package\_not\_available account\_location\_limit commit\_limit\_exceeded top\_up\_exceeds\_feasible no\_saved\_card rate\_limited quota\_exceeded slow\_down internal\_error service\_unavailable

**message**

required

string

**field**

The request field at fault

string

**doc\_url**

required

string format: uri

**request\_id**

required

string format: uuid

**items**

Batch\_invalid only. Every refused location, by its index in the request.

Array<object>

object

**index**

required

integer

**code**

required

One of the error codes above.

string

**field**

string

**message**

required

string

#### Example

```json
{
  "error": {
    "type": "invalid_request_error",
    "code": "parameter_invalid",
    "doc_url": "https://www.creatorain.com/api/errors#scope_missing",
    "items": [
      {
        "field": "locations.1.videos_per_month"
      }
    ]
  }
}
```

#### Headers

**Request-Id**

string format: uuid

This request’s id. Equal to error.request\_id; quote it to support.

### 429

Rate\_limited (600 a minute per workspace, an onboarding create limit, or an address blocked after failed authentication), or slow\_down (an onboarding session polled too fast).

Media typeapplication/json

object

**error**

required

object

**type**

required

string

Allowed values: invalid\_request\_error authentication\_error permission\_error idempotency\_error rate\_limit\_error api\_error

**code**

required

string

Allowed values: parameter\_invalid invalid\_json idempotency\_key\_invalid idempotency\_key\_required customization\_not\_supported videos\_per\_month\_out\_of\_range batch\_invalid terms\_not\_accepted invalid\_key test\_key\_on\_live live\_key\_on\_sandbox insufficient\_balance scope\_missing forbidden\_ip forbidden live\_key\_requires\_top\_up limit\_raise\_requires\_dashboard not\_found idempotency\_conflict idempotency\_in\_progress conflict location\_already\_in\_network external\_id\_conflict dispute\_open request\_too\_large address\_not\_verified not\_food\_business metro\_not\_served package\_not\_available account\_location\_limit commit\_limit\_exceeded top\_up\_exceeds\_feasible no\_saved\_card rate\_limited quota\_exceeded slow\_down internal\_error service\_unavailable

**message**

required

string

**field**

The request field at fault

string

**doc\_url**

required

string format: uri

**request\_id**

required

string format: uuid

**items**

Batch\_invalid only. Every refused location, by its index in the request.

Array<object>

object

**index**

required

integer

**code**

required

One of the error codes above.

string

**field**

string

**message**

required

string

#### Example

```json
{
  "error": {
    "type": "invalid_request_error",
    "code": "parameter_invalid",
    "doc_url": "https://www.creatorain.com/api/errors#scope_missing",
    "items": [
      {
        "field": "locations.1.videos_per_month"
      }
    ]
  }
}
```

#### Headers

**Request-Id**

string format: uuid

This request’s id. Equal to error.request\_id; quote it to support.

**Retry-After**

integer

\>= 1

Seconds to wait before retrying (at least 1).

### 500

Internal\_error (500) or service\_unavailable (503). The message never carries a cause.

Media typeapplication/json

object

**error**

required

object

**type**

required

string

Allowed values: invalid\_request\_error authentication\_error permission\_error idempotency\_error rate\_limit\_error api\_error

**code**

required

string

Allowed values: parameter\_invalid invalid\_json idempotency\_key\_invalid idempotency\_key\_required customization\_not\_supported videos\_per\_month\_out\_of\_range batch\_invalid terms\_not\_accepted invalid\_key test\_key\_on\_live live\_key\_on\_sandbox insufficient\_balance scope\_missing forbidden\_ip forbidden live\_key\_requires\_top\_up limit\_raise\_requires\_dashboard not\_found idempotency\_conflict idempotency\_in\_progress conflict location\_already\_in\_network external\_id\_conflict dispute\_open request\_too\_large address\_not\_verified not\_food\_business metro\_not\_served package\_not\_available account\_location\_limit commit\_limit\_exceeded top\_up\_exceeds\_feasible no\_saved\_card rate\_limited quota\_exceeded slow\_down internal\_error service\_unavailable

**message**

required

string

**field**

The request field at fault

string

**doc\_url**

required

string format: uri

**request\_id**

required

string format: uuid

**items**

Batch\_invalid only. Every refused location, by its index in the request.

Array<object>

object

**index**

required

integer

**code**

required

One of the error codes above.

string

**field**

string

**message**

required

string

#### Example

```json
{
  "error": {
    "type": "invalid_request_error",
    "code": "parameter_invalid",
    "doc_url": "https://www.creatorain.com/api/errors#scope_missing",
    "items": [
      {
        "field": "locations.1.videos_per_month"
      }
    ]
  }
}
```

#### Headers

**Request-Id**

string format: uuid

This request’s id. Equal to error.request\_id; quote it to support.

### 503

Service\_unavailable. The read is unavailable right now (for the bill preview, an account over 2000 locations).

Media typeapplication/json

object

**error**

required

object

**type**

required

string

Allowed values: invalid\_request\_error authentication\_error permission\_error idempotency\_error rate\_limit\_error api\_error

**code**

required

string

Allowed values: parameter\_invalid invalid\_json idempotency\_key\_invalid idempotency\_key\_required customization\_not\_supported videos\_per\_month\_out\_of\_range batch\_invalid terms\_not\_accepted invalid\_key test\_key\_on\_live live\_key\_on\_sandbox insufficient\_balance scope\_missing forbidden\_ip forbidden live\_key\_requires\_top\_up limit\_raise\_requires\_dashboard not\_found idempotency\_conflict idempotency\_in\_progress conflict location\_already\_in\_network external\_id\_conflict dispute\_open request\_too\_large address\_not\_verified not\_food\_business metro\_not\_served package\_not\_available account\_location\_limit commit\_limit\_exceeded top\_up\_exceeds\_feasible no\_saved\_card rate\_limited quota\_exceeded slow\_down internal\_error service\_unavailable

**message**

required

string

**field**

The request field at fault

string

**doc\_url**

required

string format: uri

**request\_id**

required

string format: uuid

**items**

Batch\_invalid only. Every refused location, by its index in the request.

Array<object>

object

**index**

required

integer

**code**

required

One of the error codes above.

string

**field**

string

**message**

required

string

#### Example

```json
{
  "error": {
    "type": "invalid_request_error",
    "code": "parameter_invalid",
    "doc_url": "https://www.creatorain.com/api/errors#scope_missing",
    "items": [
      {
        "field": "locations.1.videos_per_month"
      }
    ]
  }
}
```

#### Headers

**Request-Id**

string format: uuid

This request’s id. Equal to error.request\_id; quote it to support.
