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

# Quickstart — Send Your First Request with GetRequest

> Create a GetRequest endpoint, fire a real HTTP request at it, and confirm it landed in your logs — the whole thing takes under two minutes.

GetRequest requires no SDK, no code changes, and no redeployment. You create an endpoint in the dashboard, point your callers at the URL it gives you, and every request is captured automatically. Follow the three steps below to see it working end to end.

<Steps>
  <Step title="Create an endpoint">
    Sign in to [getrequest.io](https://getrequest.io) and open your project. Click **New Endpoint** and fill in the fields:

    | Field  | Example value | Notes                                                 |
    | ------ | ------------- | ----------------------------------------------------- |
    | Name   | `User login`  | Human-readable label shown in the dashboard           |
    | Slug   | `/auth/login` | Appended to your project URL to form the full path    |
    | Method | `POST`        | Accepts GET, POST, PUT, PATCH, or DELETE              |
    | Action | `JSON`        | Start with JSON to return a mock response immediately |

    Paste a sample JSON response body so GetRequest knows what to return:

    ```json theme={null}
    {
      "token": "eyJhbGciOiJIUzI1NiJ9...",
      "user": { "id": 1, "email": "you@example.com" }
    }
    ```

    Click **Create**. Your endpoint goes live immediately — no deploy, no waiting.

    Your full endpoint URL will look like this:

    ```text theme={null}
    https://e.getrequest.io/ddfkU760XMs2z7te/auth/login
    ```

    <Note>
      The segment between `e.getrequest.io/` and your slug (`ddfkU760XMs2z7te` above) is your **project URI** — unique to your project. Copy it from the project page in the dashboard.
    </Note>
  </Step>

  <Step title="Send your first request">
    Grab your **API key** from [Settings → API Key](https://getrequest.io/settings). Every request to a GetRequest endpoint must include this key in the `x-api-key` header.

    Replace `{project_uri}` with your actual project URI and fire a request:

    <CodeGroup>
      ```bash cURL theme={null}
      curl -X POST https://e.getrequest.io/{project_uri}/auth/login \
        -H "x-api-key: YOUR_API_KEY" \
        -H "Content-Type: application/json" \
        -d '{"email": "you@example.com", "password": "secret"}'
      ```

      ```javascript JavaScript theme={null}
      const response = await fetch('https://e.getrequest.io/{project_uri}/auth/login', {
        method: 'POST',
        headers: {
          'x-api-key': 'YOUR_API_KEY',
          'Content-Type': 'application/json',
        },
        body: JSON.stringify({ email: 'you@example.com', password: 'secret' }),
      });

      const data = await response.json();
      console.log(data);
      ```

      ```python Python theme={null}
      import requests

      response = requests.post(
          'https://e.getrequest.io/{project_uri}/auth/login',
          headers={
              'x-api-key': 'YOUR_API_KEY',
              'Content-Type': 'application/json',
          },
          json={'email': 'you@example.com', 'password': 'secret'},
      )

      print(response.json())
      ```

      ```php PHP theme={null}
      $client = new \GuzzleHttp\Client();

      $response = $client->post('https://e.getrequest.io/{project_uri}/auth/login', [
          'headers' => [
              'x-api-key' => 'YOUR_API_KEY',
              'Content-Type' => 'application/json',
          ],
          'json' => ['email' => 'you@example.com', 'password' => 'secret'],
      ]);

      echo $response->getBody();
      ```
    </CodeGroup>

    You'll get back the JSON response body you configured in Step 1:

    ```json theme={null}
    {
      "token": "eyJhbGciOiJIUzI1NiJ9...",
      "user": { "id": 1, "email": "you@example.com" }
    }
    ```
  </Step>

  <Step title="Verify in Logs">
    Open your project in the [dashboard](https://getrequest.io) and click **Logs**. You'll see the request you just sent listed with its method, status code, path, and duration.

    Click any row to inspect the full detail:

    * **Request** — complete headers, query parameters, and body exactly as they arrived
    * **Response** — status code, headers, and the body that was returned
    * **Timing** — total end-to-end duration for the request

    <Tip>
      On Pro, click **Share** on any log entry to generate a public link to that request/response pair — useful for bug reports, postmortems, and team debugging sessions.
    </Tip>
  </Step>
</Steps>

## What's next

Now that you have a working endpoint, explore what GetRequest can do when things go wrong in production.

<CardGroup cols={2}>
  <Card title="Forward to your backend" icon="arrow-up-right-from-square" href="/guides/backend-downtime">
    Switch your endpoint from a JSON mock to a real upstream URL to proxy live traffic through GetRequest.
  </Card>

  <Card title="Capture webhooks" icon="webhook" href="/guides/capture-webhooks">
    Point Stripe, GitHub, or any webhook provider at GetRequest so no event is ever silently dropped.
  </Card>

  <Card title="Recover from failures" icon="rotate-right" href="/guides/recover-failures">
    Replay any captured request after a backend outage or failed deploy and confirm your system handled it correctly.
  </Card>

  <Card title="Share incident evidence" icon="link" href="/guides/share-evidence">
    Generate a public link to any request/response pair and share it instantly in Slack or a Jira ticket.
  </Card>
</CardGroup>
