> For the complete documentation index, see [llms.txt](https://docs.pullbay.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pullbay.com/documentation/getting-started/quickstart.md).

# Quickstart

Get up and running with the Pullbay data API in just a few minutes. This guide walks you through account setup, API key generation, and your first API call.

## Prerequisites

To get started with Pullbay, you'll need:

* A Pullbay account (free to create)
* An API key (generated automatically when you sign up)
* A tool for making HTTP requests (cURL, Postman, or your preferred programming language)

{% stepper %}
{% step %}

### Step 1: Create Your Account

Creating a Pullbay account is quick and free:

1. Visit the [Pullbay Dashboard](https://dashboard.pullbay.com/)
2. Click **Sign Up** in the top right corner
3. Enter your email address and create a secure password (or sign in with Google/GitHub)
4. Check your email and verify your email address
5. You're done! Your account is active with free API credits already added

**No credit card required to get started.** New accounts receive free credits to explore all endpoints and test the API.
{% endstep %}

{% step %}

### Step 2: Get Your API Key

Every request to the Pullbay API requires authentication with an API key:

1. Sign in to your [Pullbay Dashboard](https://dashboard.pullbay.com/)
2. Navigate to the **API Keys** section in the left sidebar
3. You'll see your **Test API Key** (prefixed with `test_`) — this is your development key
4. Click the copy icon next to your test key to copy it to your clipboard

**Keep your API key safe.** Store it in an environment variable or secure configuration file, never commit it to version control, and never share it in plain text.
{% endstep %}

{% step %}

### Step 3: Make Your First Call

Here's how to fetch app store reviews using the Pullbay API. Replace `YOUR_API_KEY` with the test key you just copied.

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X GET "https://api.pullbay.com/v1/app-store/reviews?app_id=284882215" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

api_key = "YOUR_API_KEY"
url = "https://api.pullbay.com/v1/app-store/reviews"
params = {"app_id": "284882215"}
headers = {"Authorization": f"Bearer {api_key}"}

response = requests.get(url, params=params, headers=headers)
data = response.json()

print(data)
```

{% endtab %}

{% tab title="Node.js" %}

```javascript
const axios = require('axios');

const apiKey = 'YOUR_API_KEY';
const url = 'https://api.pullbay.com/v1/app-store/reviews';
const params = { app_id: '284882215' };

const response = await axios.get(url, {
  params,
  headers: { 'Authorization': `Bearer ${apiKey}` }
});

console.log(response.data);
```

{% endtab %}
{% endtabs %}
{% endstep %}

{% step %}

### Step 4: Understand the Response

A successful request returns a JSON response with this structure:

```json
{
  "data": [
    {
      "id": "10293847561",
      "author": "HappyUser123",
      "rating": 5,
      "title": "Great app!",
      "content": "This app has changed how I work...",
      "date": "2024-01-15T10:30:00Z",
      "version": "5.2.1",
      "helpful_count": 42
    },
    {
      "id": "10293847562",
      "author": "CriticalReviewer",
      "rating": 3,
      "title": "Good but needs work",
      "content": "The core features are solid...",
      "date": "2024-01-14T15:45:00Z",
      "version": "5.2.0",
      "helpful_count": 18
    }
  ],
  "pagination": {
    "next_cursor": "eyJwYWdlIjoyLCJsaW1pdCI6MTB9",
    "has_more": true
  },
  "meta": {
    "credits_used": 1,
    "request_id": "req_abc123xyz"
  }
}
```

#### Response Fields

| Field                       | Description                                               |
| --------------------------- | --------------------------------------------------------- |
| **data**                    | Array of review objects containing app store reviews      |
| **data\[].id**              | Unique identifier for the review                          |
| **data\[].author**          | Username or display name of the reviewer                  |
| **data\[].rating**          | Star rating (typically 1-5)                               |
| **data\[].title**           | Review title or headline                                  |
| **data\[].content**         | Full review text                                          |
| **data\[].date**            | ISO 8601 timestamp when the review was posted             |
| **data\[].version**         | App version at time of review                             |
| **data\[].helpful\_count**  | Number of users who marked review as helpful              |
| **pagination.next\_cursor** | Cursor for fetching the next page of results              |
| **pagination.has\_more**    | Boolean indicating if more results are available          |
| **meta.credits\_used**      | Number of API credits consumed by this request            |
| **meta.request\_id**        | Unique identifier for this request (useful for debugging) |
| {% endstep %}               |                                                           |

{% step %}

### Step 5: Paginate Through Results

When `pagination.has_more` is `true`, use the `next_cursor` to fetch additional results:

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X GET "https://api.pullbay.com/v1/app-store/reviews?app_id=284882215&cursor=eyJwYWdlIjoyLCJsaW1pdCI6MTB9" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

{% endtab %}

{% tab title="Python" %}

```python
cursor = data['pagination']['next_cursor']

response = requests.get(url, params={
  'app_id': '284882215',
  'cursor': cursor
}, headers=headers)
```

{% endtab %}

{% tab title="Node.js" %}

```javascript
const cursor = response.data.pagination.next_cursor;

const nextResponse = await axios.get(url, {
  params: { app_id: '284882215', cursor },
  headers: { 'Authorization': `Bearer ${apiKey}` }
});
```

{% endtab %}
{% endtabs %}
{% endstep %}
{% endstepper %}

## Check Your Usage

Visit your [Pullbay Dashboard](https://dashboard.pullbay.com/) and navigate to the **Usage** section to see:

* API credits remaining in your account
* Breakdown of requests by endpoint
* Request history and timestamps
* Any rate limit warnings

## What's Next?

You've successfully made your first Pullbay API call! Explore these topics to go deeper:

* [**Authentication Guide**](broken://pages/ad35e9fae7dd67a9108f6c7928da4ab49ed12175) — Learn about test vs. live keys, key rotation, and security best practices
* [**Pagination Guide**](broken://pages/eaafdc0aa61556675299f95968ab83b8acb73972) — Master cursor-based pagination for large datasets
* [**App Store API Reference**](broken://pages/b7e8abe11a3095796b95d24da9edcd74241f4afa) — Full endpoint documentation and parameters
* [**n8n Integration**](broken://pages/59bc740d15bfc1e1ef0e885739a6565101ba108e) — Connect Pullbay to your automation workflows

## FAQ

<details>

<summary>How do I find an app's ID?</summary>

App IDs are unique identifiers assigned by app stores. For iOS apps, you can find the ID in the App Store URL (e.g., the ID for Facebook is 284882215). For Android apps, use the package name. You can also use your app store's API or web interface to look up IDs.

</details>

<details>

<summary>How many API calls can I make with free credits?</summary>

Each request uses 1 API credit by default. Your free account includes 1,000 credits per month, which translates to 1,000 API calls. See your dashboard for your current balance.

</details>

<details>

<summary>Do I need to switch keys when moving to production?</summary>

Yes, we recommend using your test key (`test_*`) for development and testing, and your live key (`live_*`) for production. Both have the same rate limits and endpoints, but separating them helps track usage and prevent accidental production issues.

</details>

<details>

<summary>What if I get a 401 error?</summary>

A 401 Unauthorized error means your API key is missing, invalid, or expired. Check that you're including the correct key in the `Authorization: Bearer YOUR_API_KEY` header. If you think your key is compromised, revoke it and create a new one in your dashboard.

</details>

Start building with Pullbay today!


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.pullbay.com/documentation/getting-started/quickstart.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
