# Http

Complete HTTP REST API examples for integrating with NextBlock.

HTTP is the simplest way to integrate if you want to submit transactions with JSON requests. If you want the full typed client flow, use the gRPC examples. If you want the lowest-latency submission path, use [QUIC Transaction Submission](/api/quic-transaction-submission.md).

## API Endpoints

Choose the endpoint closest to your location:

* **Frankfurt**: `https://frankfurt.nextblock.io`
* **Amsterdam**: `https://amsterdam.nextblock.io`
* **London**: `https://london.nextblock.io`
* **Singapore**: `https://singapore.nextblock.io`
* **Tokyo**: `https://tokyo.nextblock.io`
* **New York**: `https://ny.nextblock.io`
* **Salt Lake City**: `https://slc.nextblock.io`
* **Dublin**: `https://dublin.nextblock.io`
* **Vilnius**: `https://vilnius.nextblock.io`

## Authentication

All API requests require an API key in the Authorization header:

```http
Authorization: your-api-key-here
```

## Single Transaction Submission

### POST /api/v2/submit

```http
POST /api/v2/submit HTTP/1.1
Host: frankfurt.nextblock.io
Content-Type: application/json
Authorization: your-api-key-here

{
  "transaction": {
    "content": "base-64-encoded-transaction"
  },
  "frontRunningProtection": false
}
```

**Response:**

```json
{
  "signature": "transaction-signature",
  "uuid": "jito-bundle-uuid"
}
```

## Batched Transaction Submission

### POST /api/v2/submit-batch

```http
POST /api/v2/submit-batch HTTP/1.1
Host: frankfurt.nextblock.io
Content-Type: application/json
Authorization: your-api-key-here

{
  "entries": [
    {
      "transaction": {
        "content": "base-64-encoded-transaction-1"
      }
    },
    {
      "transaction": {
        "content": "base-64-encoded-transaction-2"
      }
    }
  ]
}
```

**Response:**

```json
{
  "signature": "bundle-signature"
}
```

## Tip Floor API

### GET /api/v2/tipfloor

```http
GET /api/v2/tipfloor HTTP/1.1
Host: frankfurt.nextblock.io
Authorization: your-api-key-here
```

**Response:**

```json
{
  "time": "2025-05-13T10:41:45Z",
  "landed_tips_25th_percentile": 0.0011,
  "landed_tips_50th_percentile": 0.005000001,
  "landed_tips_75th_percentile": 0.01555,
  "landed_tips_95th_percentile": 0.09339195639999975,
  "landed_tips_99th_percentile": 0.4846427910400001,
  "ema_landed_tips_50th_percentile": 0.005989477267191758
}
```

## cURL Examples

```bash
# Submit single transaction
curl -X POST https://frankfurt.nextblock.io/api/v2/submit \
  -H "Content-Type: application/json" \
  -H "Authorization: your-api-key-here" \
  -d '{
    "transaction": {
      "content": "AjF+B...BCQ=="
    },
    "frontRunningProtection": false
  }'

# Submit batched transactions
curl -X POST https://frankfurt.nextblock.io/api/v2/submit-batch \
  -H "Content-Type: application/json" \
  -H "Authorization: your-api-key-here" \
  -d '{
    "entries": [
      {
        "transaction": {
          "content": "ASrTNkPOT...BCQ=="
        }
      },
      {
        "transaction": {
          "content": "AVFRplUyy...BCQ=="
        }
      }
    ]
  }'

# Get tip floor data
curl -X GET https://frankfurt.nextblock.io/api/v2/tipfloor \
  -H "Authorization: your-api-key-here"
```

The language sections in this docs set focus mainly on gRPC and QUIC examples. Use this page as the canonical HTTP request reference.


---

# Agent Instructions: 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.nextblock.io/api/examples/http.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.
