# RPC Nodes

# Flex

## Create RPC Node Flex

**post** `/v1/rpc_nodes/flex`

Create a new RPC Node Flex

### Body Parameters

- `blockchain: string`

  Blockchain.

- `name: string`

  Name of the RPC Node Flex.

- `network: string`

  Network type (e.g., mainnet, testnet).

- `project_id: string`

  Project ID to associate with the RPC Node Flex.

- `tags: optional array of string`

  Tags to attach to the RPC Node Flex (optional, max 50).

### Returns

- `Flex object { id, blockchain, created_at, 6 more }`

  RPC Node Flex details.

  - `id: string`

    Unique identifier for the RPC Node Flex.

  - `blockchain: string`

    Blockchain type.

  - `created_at: string`

    When the RPC Node Flex was created.

  - `endpoint: string`

    RPC endpoint URL.

  - `name: string`

    Name of the RPC Node Flex.

  - `network: string`

    Network type (e.g., mainnet, testnet).

  - `project_id: string`

    Project identifier associated with the RPC Node Flex.

  - `tags: array of string`

    Tags to attach to the RPC Node Flex.

  - `updated_at: string`

    When the RPC Node Flex was updated.

### Example

```http
curl https://api.nirvanalabs.io/v1/rpc_nodes/flex \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \
    -d '{
          "blockchain": "ethereum",
          "name": "my-ethereum-node",
          "network": "mainnet",
          "project_id": "123e4567-e89b-12d3-a456-426614174000",
          "tags": [
            "production",
            "ethereum"
          ]
        }'
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "blockchain": "ethereum",
  "created_at": "2025-01-01T00:00:00Z",
  "endpoint": "https://ethereum-mainnet.nirvanalabs.xyz/my-ethereum-node-abc12?apikey=apiKey",
  "name": "my-ethereum-node",
  "network": "mainnet",
  "project_id": "123e4567-e89b-12d3-a456-426614174000",
  "tags": [
    "production",
    "ethereum"
  ],
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## Get RPC Node Flex Details

**get** `/v1/rpc_nodes/flex/{node_id}`

Get details about an RPC Node Flex

### Path Parameters

- `node_id: string`

### Returns

- `Flex object { id, blockchain, created_at, 6 more }`

  RPC Node Flex details.

  - `id: string`

    Unique identifier for the RPC Node Flex.

  - `blockchain: string`

    Blockchain type.

  - `created_at: string`

    When the RPC Node Flex was created.

  - `endpoint: string`

    RPC endpoint URL.

  - `name: string`

    Name of the RPC Node Flex.

  - `network: string`

    Network type (e.g., mainnet, testnet).

  - `project_id: string`

    Project identifier associated with the RPC Node Flex.

  - `tags: array of string`

    Tags to attach to the RPC Node Flex.

  - `updated_at: string`

    When the RPC Node Flex was updated.

### Example

```http
curl https://api.nirvanalabs.io/v1/rpc_nodes/flex/$NODE_ID \
    -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "blockchain": "ethereum",
  "created_at": "2025-01-01T00:00:00Z",
  "endpoint": "https://ethereum-mainnet.nirvanalabs.xyz/my-ethereum-node-abc12?apikey=apiKey",
  "name": "my-ethereum-node",
  "network": "mainnet",
  "project_id": "123e4567-e89b-12d3-a456-426614174000",
  "tags": [
    "production",
    "ethereum"
  ],
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## Update RPC Node Flex

**patch** `/v1/rpc_nodes/flex/{node_id}`

Update an existing RPC Node Flex

### Path Parameters

- `node_id: string`

### Body Parameters

- `name: optional string`

  Name of the RPC Node Flex.

- `tags: optional array of string`

  Tags to attach to the RPC Node Flex (optional, max 50).

### Returns

- `Flex object { id, blockchain, created_at, 6 more }`

  RPC Node Flex details.

  - `id: string`

    Unique identifier for the RPC Node Flex.

  - `blockchain: string`

    Blockchain type.

  - `created_at: string`

    When the RPC Node Flex was created.

  - `endpoint: string`

    RPC endpoint URL.

  - `name: string`

    Name of the RPC Node Flex.

  - `network: string`

    Network type (e.g., mainnet, testnet).

  - `project_id: string`

    Project identifier associated with the RPC Node Flex.

  - `tags: array of string`

    Tags to attach to the RPC Node Flex.

  - `updated_at: string`

    When the RPC Node Flex was updated.

### Example

```http
curl https://api.nirvanalabs.io/v1/rpc_nodes/flex/$NODE_ID \
    -X PATCH \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \
    -d '{
          "name": "my-ethereum-node",
          "tags": [
            "production",
            "ethereum"
          ]
        }'
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "blockchain": "ethereum",
  "created_at": "2025-01-01T00:00:00Z",
  "endpoint": "https://ethereum-mainnet.nirvanalabs.xyz/my-ethereum-node-abc12?apikey=apiKey",
  "name": "my-ethereum-node",
  "network": "mainnet",
  "project_id": "123e4567-e89b-12d3-a456-426614174000",
  "tags": [
    "production",
    "ethereum"
  ],
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## Delete RPC Node Flex

**delete** `/v1/rpc_nodes/flex/{node_id}`

Delete an RPC Node Flex

### Path Parameters

- `node_id: string`

### Example

```http
curl https://api.nirvanalabs.io/v1/rpc_nodes/flex/$NODE_ID \
    -X DELETE \
    -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"
```

## List RPC Node Flex

**get** `/v1/rpc_nodes/flex`

List all RPC Node Flex you created

### Query Parameters

- `project_id: string`

  Project ID of resources to request

- `cursor: optional string`

  Pagination cursor returned by a previous request

- `limit: optional number`

  Maximum number of items to return

### Returns

- `FlexList object { items, pagination }`

  - `items: array of Flex`

    - `id: string`

      Unique identifier for the RPC Node Flex.

    - `blockchain: string`

      Blockchain type.

    - `created_at: string`

      When the RPC Node Flex was created.

    - `endpoint: string`

      RPC endpoint URL.

    - `name: string`

      Name of the RPC Node Flex.

    - `network: string`

      Network type (e.g., mainnet, testnet).

    - `project_id: string`

      Project identifier associated with the RPC Node Flex.

    - `tags: array of string`

      Tags to attach to the RPC Node Flex.

    - `updated_at: string`

      When the RPC Node Flex was updated.

  - `pagination: Pagination`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

### Example

```http
curl https://api.nirvanalabs.io/v1/rpc_nodes/flex \
    -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"
```

#### Response

```json
{
  "items": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "blockchain": "ethereum",
      "created_at": "2025-01-01T00:00:00Z",
      "endpoint": "https://ethereum-mainnet.nirvanalabs.xyz/my-ethereum-node-abc12?apikey=apiKey",
      "name": "my-ethereum-node",
      "network": "mainnet",
      "project_id": "123e4567-e89b-12d3-a456-426614174000",
      "tags": [
        "production",
        "ethereum"
      ],
      "updated_at": "2025-01-01T00:00:00Z"
    }
  ],
  "pagination": {
    "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
    "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
    "total_count": 125
  }
}
```

## Domain Types

### Flex

- `Flex object { id, blockchain, created_at, 6 more }`

  RPC Node Flex details.

  - `id: string`

    Unique identifier for the RPC Node Flex.

  - `blockchain: string`

    Blockchain type.

  - `created_at: string`

    When the RPC Node Flex was created.

  - `endpoint: string`

    RPC endpoint URL.

  - `name: string`

    Name of the RPC Node Flex.

  - `network: string`

    Network type (e.g., mainnet, testnet).

  - `project_id: string`

    Project identifier associated with the RPC Node Flex.

  - `tags: array of string`

    Tags to attach to the RPC Node Flex.

  - `updated_at: string`

    When the RPC Node Flex was updated.

### Flex Blockchain

- `FlexBlockchain object { blockchain, network }`

  Blockchain supported by the RPC Node Flex.

  - `blockchain: string`

    Blockchain type.

  - `network: string`

    Network type (e.g., mainnet, testnet).

### Flex Blockchain List

- `FlexBlockchainList object { items, pagination }`

  - `items: array of FlexBlockchain`

    - `blockchain: string`

      Blockchain type.

    - `network: string`

      Network type (e.g., mainnet, testnet).

  - `pagination: Pagination`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

### Flex List

- `FlexList object { items, pagination }`

  - `items: array of Flex`

    - `id: string`

      Unique identifier for the RPC Node Flex.

    - `blockchain: string`

      Blockchain type.

    - `created_at: string`

      When the RPC Node Flex was created.

    - `endpoint: string`

      RPC endpoint URL.

    - `name: string`

      Name of the RPC Node Flex.

    - `network: string`

      Network type (e.g., mainnet, testnet).

    - `project_id: string`

      Project identifier associated with the RPC Node Flex.

    - `tags: array of string`

      Tags to attach to the RPC Node Flex.

    - `updated_at: string`

      When the RPC Node Flex was updated.

  - `pagination: Pagination`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

# Blockchains

## List Flex Blockchains

**get** `/v1/rpc_nodes/flex/blockchains`

List all Flex Blockchains

### Query Parameters

- `cursor: optional string`

  Pagination cursor returned by a previous request

- `limit: optional number`

  Maximum number of items to return

### Returns

- `FlexBlockchainList object { items, pagination }`

  - `items: array of FlexBlockchain`

    - `blockchain: string`

      Blockchain type.

    - `network: string`

      Network type (e.g., mainnet, testnet).

  - `pagination: Pagination`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

### Example

```http
curl https://api.nirvanalabs.io/v1/rpc_nodes/flex/blockchains \
    -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"
```

#### Response

```json
{
  "items": [
    {
      "blockchain": "ethereum",
      "network": "mainnet"
    }
  ],
  "pagination": {
    "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
    "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
    "total_count": 125
  }
}
```

# Dedicated

## Get RPC Node Dedicated Details

**get** `/v1/rpc_nodes/dedicated/{node_id}`

Get details about an RPC Node Dedicated

### Path Parameters

- `node_id: string`

### Returns

- `Dedicated object { id, blockchain, created_at, 6 more }`

  RPC Node Dedicated details.

  - `id: string`

    Unique identifier for the RPC Node Dedicated.

  - `blockchain: string`

    Blockchain type.

  - `created_at: string`

    When the RPC Node Dedicated was created.

  - `endpoint: string`

    RPC endpoint URL.

  - `name: string`

    Name of the RPC Node Dedicated.

  - `network: string`

    Network type (e.g., mainnet, testnet).

  - `project_id: string`

    Project identifier associated with the RPC Node Dedicated.

  - `tags: array of string`

    Tags to attach to the RPC Node Dedicated.

  - `updated_at: string`

    When the RPC Node Dedicated was updated.

### Example

```http
curl https://api.nirvanalabs.io/v1/rpc_nodes/dedicated/$NODE_ID \
    -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"
```

#### Response

```json
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "blockchain": "ethereum",
  "created_at": "2025-01-01T00:00:00Z",
  "endpoint": "https://ethereum-mainnet.nirvanalabs.xyz/?apikey=apiKey",
  "name": "my-ethereum-node",
  "network": "mainnet",
  "project_id": "123e4567-e89b-12d3-a456-426614174000",
  "tags": [
    "production",
    "ethereum"
  ],
  "updated_at": "2025-01-01T00:00:00Z"
}
```

## List RPC Node Dedicated

**get** `/v1/rpc_nodes/dedicated`

List all RPC Node Dedicated you created

### Query Parameters

- `project_id: string`

  Project ID of resources to request

- `cursor: optional string`

  Pagination cursor returned by a previous request

- `limit: optional number`

  Maximum number of items to return

### Returns

- `DedicatedList object { items, pagination }`

  - `items: array of Dedicated`

    - `id: string`

      Unique identifier for the RPC Node Dedicated.

    - `blockchain: string`

      Blockchain type.

    - `created_at: string`

      When the RPC Node Dedicated was created.

    - `endpoint: string`

      RPC endpoint URL.

    - `name: string`

      Name of the RPC Node Dedicated.

    - `network: string`

      Network type (e.g., mainnet, testnet).

    - `project_id: string`

      Project identifier associated with the RPC Node Dedicated.

    - `tags: array of string`

      Tags to attach to the RPC Node Dedicated.

    - `updated_at: string`

      When the RPC Node Dedicated was updated.

  - `pagination: Pagination`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

### Example

```http
curl https://api.nirvanalabs.io/v1/rpc_nodes/dedicated \
    -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"
```

#### Response

```json
{
  "items": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "blockchain": "ethereum",
      "created_at": "2025-01-01T00:00:00Z",
      "endpoint": "https://ethereum-mainnet.nirvanalabs.xyz/?apikey=apiKey",
      "name": "my-ethereum-node",
      "network": "mainnet",
      "project_id": "123e4567-e89b-12d3-a456-426614174000",
      "tags": [
        "production",
        "ethereum"
      ],
      "updated_at": "2025-01-01T00:00:00Z"
    }
  ],
  "pagination": {
    "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
    "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
    "total_count": 125
  }
}
```

## Domain Types

### Dedicated

- `Dedicated object { id, blockchain, created_at, 6 more }`

  RPC Node Dedicated details.

  - `id: string`

    Unique identifier for the RPC Node Dedicated.

  - `blockchain: string`

    Blockchain type.

  - `created_at: string`

    When the RPC Node Dedicated was created.

  - `endpoint: string`

    RPC endpoint URL.

  - `name: string`

    Name of the RPC Node Dedicated.

  - `network: string`

    Network type (e.g., mainnet, testnet).

  - `project_id: string`

    Project identifier associated with the RPC Node Dedicated.

  - `tags: array of string`

    Tags to attach to the RPC Node Dedicated.

  - `updated_at: string`

    When the RPC Node Dedicated was updated.

### Dedicated Blockchain

- `DedicatedBlockchain object { blockchain, network }`

  Blockchain supported by the RPC Node Dedicated.

  - `blockchain: string`

    Blockchain type.

  - `network: string`

    Network type (e.g., mainnet, testnet).

### Dedicated Blockchain List

- `DedicatedBlockchainList object { items, pagination }`

  - `items: array of DedicatedBlockchain`

    - `blockchain: string`

      Blockchain type.

    - `network: string`

      Network type (e.g., mainnet, testnet).

  - `pagination: Pagination`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

### Dedicated List

- `DedicatedList object { items, pagination }`

  - `items: array of Dedicated`

    - `id: string`

      Unique identifier for the RPC Node Dedicated.

    - `blockchain: string`

      Blockchain type.

    - `created_at: string`

      When the RPC Node Dedicated was created.

    - `endpoint: string`

      RPC endpoint URL.

    - `name: string`

      Name of the RPC Node Dedicated.

    - `network: string`

      Network type (e.g., mainnet, testnet).

    - `project_id: string`

      Project identifier associated with the RPC Node Dedicated.

    - `tags: array of string`

      Tags to attach to the RPC Node Dedicated.

    - `updated_at: string`

      When the RPC Node Dedicated was updated.

  - `pagination: Pagination`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

# Blockchains

## List Dedicated Blockchains

**get** `/v1/rpc_nodes/dedicated/blockchains`

List all Dedicated Blockchains

### Query Parameters

- `cursor: optional string`

  Pagination cursor returned by a previous request

- `limit: optional number`

  Maximum number of items to return

### Returns

- `DedicatedBlockchainList object { items, pagination }`

  - `items: array of DedicatedBlockchain`

    - `blockchain: string`

      Blockchain type.

    - `network: string`

      Network type (e.g., mainnet, testnet).

  - `pagination: Pagination`

    Pagination response details.

    - `next_cursor: string`

    - `previous_cursor: string`

    - `total_count: number`

### Example

```http
curl https://api.nirvanalabs.io/v1/rpc_nodes/dedicated/blockchains \
    -H "Authorization: Bearer $NIRVANA_LABS_API_KEY"
```

#### Response

```json
{
  "items": [
    {
      "blockchain": "ethereum",
      "network": "mainnet"
    }
  ],
  "pagination": {
    "next_cursor": "RhwniMT4B74siYZcPF8TnCdGI1l9rpPvg",
    "previous_cursor": "ARhwnmi1hA7wEbHbMjdYQlOB_ZusP4fYvw",
    "total_count": 125
  }
}
```
