> ## Documentation Index
> Fetch the complete documentation index at: https://docs.geekflare.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Welcome to the Geekflare Documentation.

## What is Geekflare?

[Geekflare](https://geekflare.com) provides a suite of REST APIs for Scraping, Search, Data Extraction, Screenshots, DNS lookups, and other essential web utilities. Every request consumes credits based on the endpoint and options used. See [Credit Mapping](/api-credit-mapping) for the full breakdown.

## Getting started

Getting up and running with Geekflare is simple. Create a free account (no credit card required) to generate your API key. Once you have your key, you can test endpoints using our [Interactive Playground](https://dash.geekflare.com/playground).

<Card title="Get your API key" icon="key" href="https://auth.geekflare.com/register?service=geekflare_api">
  Sign up for a free account to generate your key.
</Card>

## API Protocol

Geekflare provides a RESTful API. It is accessed via HTTPs and ensures that all data sent and received is formatted as JSON.

## Integration Methods

Integrate Geekflare into your applications using REST API, SDKs, MCP or No-Code platforms.

<CardGroup cols={2}>
  <Card title="REST API" icon="code" href="/endpoint/reference">
    Standard HTTPS endpoints returning JSON payloads. Compatible with OpenAPI specifications.
  </Card>

  <Card title="SDKs" icon="cubes" href="/integrations">
    Accelerate development with our official Node.js/TypeScript and Python packages.
  </Card>

  <Card title="No-Code" icon="wand-magic-sparkles" href="/integrations">
    Connect Geekflare to thousands of apps via Zapier and Make without writing a single line of code.
  </Card>

  <Card title="MCP Server" icon="robot" href="/mcp">
    Plug Geekflare into AI IDEs and LLM agents to give them web scraping, search, screenshot and other tools.
  </Card>
</CardGroup>

<CardGroup cols={1}>
  <Card title="Interactive Playground" icon="terminal" href="https://dash.geekflare.com/playground">
    Use all our APIs directly in your browser.
  </Card>
</CardGroup>

## Rate Limits

Rate limits depend on your subscription plan. If you exceed your limit, the API returns an `HTTP 429 Too Many Requests` error — see [Rate Limit Exceeded](/rate-limit-exceeded) for how to handle this gracefully.

| Plan       | Requests per second (RPS) |
| ---------- | ------------------------- |
| Free       | 1                         |
| Starter    | 5                         |
| Growth     | 10                        |
| Business   | 25                        |
| Enterprise | Custom, up to 1,000       |

## Proxy & Geolocation

Several Geekflare endpoints (such as Scraping, Site Status, PDF Generator, Load time, etc.) support request routing via specific locations. To use this, pass the target country code in the `proxyCountry` parameter. [View supported APIs](/using-proxies)

**Note:** Using proxies incurs additional credit costs. We recommend using this feature only when geolocation is required.

<Info>Proxy is available to paid users only.</Info>

## Request

### Authentication

Every request must include your API key in an `x-api-key` request header:

```bash theme={null}
x-api-key YOUR-API-KEY
```

<Info>
  See our [Security page](https://geekflare.com/security/) for details on how
  we protect your API keys and data.
</Info>

### Base URL

For all the endpoints listed in this documentation, the base URL is:

```
https://api.geekflare.com
```

## Response

The API response follows some common formats for the sake of clarity and consistency. Depending on the request status, the response structures are as given below. See the [Error Code Reference](/error-codes) for the complete list.

### Success Response

On successful processing of a request, the API returns a response in the following format:

```json theme={null}
{
  "timestamp": 1610796547300,
  "apiStatus": "success",
  "apiCode": 200,
  "message": "An overview message.",
  "meta": {
    "url": "https://example.com"
  },
  "data": []
}
```

<Check>200 - Success</Check>

### Missing API Key

When no API key is provided in the request, the following response structure is returned:

```json theme={null}
{
  "apiCode": 401,
  "message": "Missing x-api-key header"
}
```

<Warning>401 - Unauthorized. See [Unauthorized](/unauthorized) for how to resolve this.</Warning>

### Invalid API Key

When an invalid or incorrect API key is provided:

```json theme={null}
{
  "apiCode": 401,
  "message": "Invalid x-api-key"
}
```

<Warning>401 - Unauthorized. See [Unauthorized](/unauthorized) for how to resolve this.</Warning>

### Forbidden Response

If you are under a free plan and try to access a paid-only API like Port Scanner, it would return an error in the following format:

```json theme={null}
{
  "timestamp": 1658254283953,
  "apiStatus": "failure",
  "apiCode": 403,
  "message": "You are not allowed to access. This is available to premium plan only."
}
```

<Warning>403 - Forbidden. See [Forbidden](/forbidden) for how to resolve this.</Warning>

### Not Found Response

If a wrong endpoint or wrong request type (POST instead of GET, for example) is provided, the API returns an error in the following format:

```json theme={null}
{
  "timestamp": 1657208461046,
  "apiStatus": "failure",
  "apiCode": 404,
  "message": "API not found.",
  "meta": {
    "method": "POST",
    "endpoint": "/helloworld"
  }
}
```

<Warning>404 - Not Found</Warning>

## Next Steps

<CardGroup cols={1}>
  <Card title="Quickstart" icon="rocket" href="/quickstart">
    Make your first API call in your language or framework of choice.
  </Card>
</CardGroup>
