> ## 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.

# Geekflare API Docs

> Welcome to the Geekflare API Documentation.

## What is Geekflare API?

[Geekflare API](https://geekflare.com/api/) provides a suite of enterprise-ready REST APIs to handle Scraping, Search, Data Extraction, Screenshots, DNS lookups, and other essential web utilities.

## Getting started

Getting up and running with Geekflare API 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 API into your applications using REST API, SDKs, MCP or No-Code platforms.

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

  <Card title="SDKs" icon="cubes" href="/api/quickstart">
    Accelerate development with our packages for Node.js/TypeScript and Go.
  </Card>

  <Card title="No-Code" icon="wand-magic-sparkles">
    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="/api/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 range from 1 to 50 requests per second (RPS), depending on your subscription plan. If you exceed this threshold, the API will return an `HTTP 429 Too Many Requests` error.

## Proxy & Geolocation

Several Geekflare APIs (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](/api/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

Make sure it's present in your header value when making API calls.

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

It expects the API access key to be present in a request header called `x-api-key`.

### 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.

### 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</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</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</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="API Reference" icon="code" href="/api/endpoint/reference">
    Explore all available endpoints.
  </Card>
</CardGroup>
