<!-- Markdown copy of https://docs.creatorain.com/partner-api/reference/operations/getpartnerlocationcreators/ -->
# One store's named creators (accepted or later)

GET

/locations/{partner\_location\_id}/creators

Select code sampleFetchcURL

```js
const url = 'https://data.creatorain.com/partner/v1/locations/store_123/creators?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://data.creatorain.com/partner/v1/locations/store_123/creators?limit=50' \
  --header 'Authorization: Bearer <token>'
```

-   Production (live stores; a live key is issued per partner)
-   Sandbox, for integration testing (test keys, test stores)

The creators of this store’s current season who are at stage `accepted` or later, newest accepted first. Creators still being contacted are not named; they are counts in `pipeline` on `GET /locations/{partner_location_id}`, and `pipeline.accepted` is the length of this list.

No email, phone, rates or notes: a merchant should never need to contact a creator directly.

EITHER CREDENTIAL: the partner key or that store’s own token.

## Authorizations

-   **[partnerApiKey](/partner-api/reference/#partnerapikey)**
-   **[storeTokenHeader](/partner-api/reference/#storetokenheader)**
-   **[storeTokenQuery](/partner-api/reference/#storetokenquery)**

## Parameters

### Path Parameters

**partner\_location\_id**

required

string

<= 200 characters

YOUR id for the store, as you sent it to `POST /locations`.

#### Example

```
store_123
```

### Query Parameters

**cursor**

string

The `next_cursor` from the previous page, sent back UNCHANGED. Omit it for the first page.

It is opaque: do not build one yourself. It names a POSITION in the sort order rather than a count of rows to skip, which is why a page stays stable when a booking is touched between two requests. A cursor we did not issue is refused with `400 validation_error`, rather than silently treated as the first page, so a broken client fails loudly instead of looping over page one for ever.

**limit**

integer

default: 50 \>= 1 <= 200

Rows per page. Default 50, maximum 200. A larger value is CLAMPED to 200 rather than refused, so you never have to guess the ceiling.

## Responses

### 200

A page of named creators.

Media typeapplication/json

object

**items**

required

Array<object>

One named creator of a store. Public profile only.

object

**handle**

string

nullable

**platforms**

Array<string>

**followers**

integer

nullable

**city**

string

nullable

**stage**

string

Allowed values: accepted booked visited posted

**next\_visit**

Her next confirmed visit at this store, RFC 3339 with the store’s offset.

string

nullable

**next\_cursor**

required

string

nullable

#### Example

```json
{
  "items": [
    {
      "handle": "example_creator",
      "platforms": [
        "instagram",
        "tiktok"
      ],
      "followers": 18200,
      "city": "San Jose",
      "stage": "accepted",
      "next_visit": "2026-10-03T15:00:00-07:00"
    }
  ]
}
```

### 400

`validation_error`. `field` names the offending parameter.

Media typeapplication/json

object

**error**

required

object

**code**

required

The stable value to branch on.

string

Allowed values: unauthorized forbidden\_ip rate\_limited validation\_error location\_already\_exists location\_not\_found location\_terminated reservation\_not\_found conflict internal\_error

**message**

required

A human sentence. Copy, not contract; it may be reworded.

string

**field**

The request field at fault, dotted for a nested one (`plan.term_months`).

string

#### Example

```json
{
  "error": {
    "code": "unauthorized"
  }
}
```

### 401

`unauthorized`. A missing, malformed, unknown or revoked key; or an invalid, expired or wrong-store dashboard token. One answer for every case on purpose: the holder of a bad credential learns nothing from the difference.

Media typeapplication/json

object

**error**

required

object

**code**

required

The stable value to branch on.

string

Allowed values: unauthorized forbidden\_ip rate\_limited validation\_error location\_already\_exists location\_not\_found location\_terminated reservation\_not\_found conflict internal\_error

**message**

required

A human sentence. Copy, not contract; it may be reworded.

string

**field**

The request field at fault, dotted for a nested one (`plan.term_months`).

string

#### Example

```json
{
  "error": {
    "code": "unauthorized"
  }
}
```

### 404

`location_not_found`. No store of this key carries that `partner_location_id`.

Media typeapplication/json

object

**error**

required

object

**code**

required

The stable value to branch on.

string

Allowed values: unauthorized forbidden\_ip rate\_limited validation\_error location\_already\_exists location\_not\_found location\_terminated reservation\_not\_found conflict internal\_error

**message**

required

A human sentence. Copy, not contract; it may be reworded.

string

**field**

The request field at fault, dotted for a nested one (`plan.term_months`).

string

#### Example

```json
{
  "error": {
    "code": "unauthorized"
  }
}
```

### 429

`rate_limited`. Over this key’s requests-per-minute ceiling.

Media typeapplication/json

object

**error**

required

object

**code**

required

The stable value to branch on.

string

Allowed values: unauthorized forbidden\_ip rate\_limited validation\_error location\_already\_exists location\_not\_found location\_terminated reservation\_not\_found conflict internal\_error

**message**

required

A human sentence. Copy, not contract; it may be reworded.

string

**field**

The request field at fault, dotted for a nested one (`plan.term_months`).

string

#### Example

```json
{
  "error": {
    "code": "unauthorized"
  }
}
```
