{
  "openapi": "3.1.0",
  "info": {
    "title": "Solana RPC",
    "version": "1.0.0",
    "description": "Solana RPC HTTP method reference."
  },
  "servers": [
    {
      "url": "https://rpc-mainnet.solanatracker.io",
      "description": "Mainnet RPC endpoint"
    }
  ],
  "paths": {
    "/": {
      "post": {
        "operationId": "getblocks",
        "summary": "getBlocks",
        "security": [
          {
            "ApiKeyQuery": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "jsonrpc": {
                    "allOf": [
                      {
                        "type": "string",
                        "enum": [
                          "2.0"
                        ],
                        "description": "The JSON-RPC protocol version.",
                        "example": "2.0",
                        "default": "2.0"
                      }
                    ]
                  },
                  "id": {
                    "allOf": [
                      {
                        "type": "string",
                        "description": "A unique identifier for the request.",
                        "example": "1",
                        "default": "1"
                      }
                    ]
                  },
                  "method": {
                    "allOf": [
                      {
                        "type": "string",
                        "enum": [
                          "getBlocks"
                        ],
                        "description": "The name of the RPC method to invoke.",
                        "example": "getBlocks",
                        "default": "getBlocks"
                      }
                    ]
                  },
                  "params": {
                    "allOf": [
                      {
                        "type": "array",
                        "description": "Request parameters for the method.",
                        "default": [
                          5,
                          10,
                          {
                            "commitment": "finalized"
                          }
                        ],
                        "items": {
                          "oneOf": [
                            {
                              "type": "integer",
                              "description": "Start slot (required).",
                              "example": 5
                            },
                            {
                              "type": "integer",
                              "description": "End slot (optional, must be ≤ 500,000 blocks from start slot).",
                              "example": 10
                            },
                            {
                              "type": "object",
                              "description": "The commitment describes how finalized a block is at that point in time. \"processed\" is not supported.",
                              "properties": {
                                "commitment": {
                                  "type": "string",
                                  "description": "The commitment level for the request.",
                                  "enum": [
                                    "confirmed",
                                    "finalized"
                                  ],
                                  "default": "finalized"
                                }
                              }
                            }
                          ]
                        }
                      }
                    ]
                  }
                },
                "required": [
                  "jsonrpc",
                  "id",
                  "method",
                  "params"
                ]
              },
              "examples": {
                "example": {
                  "value": {
                    "jsonrpc": "2.0",
                    "id": "db16f277-1a22-41ff-9f85-f37e2cd77900",
                    "method": "getBlocks",
                    "params": [
                      5,
                      10,
                      {
                        "commitment": "finalized"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully retrieved confirmed blocks.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jsonrpc": {
                      "allOf": [
                        {
                          "type": "string",
                          "enum": [
                            "2.0"
                          ],
                          "example": "2.0"
                        }
                      ]
                    },
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "Identifier matching the request.",
                          "example": "1"
                        }
                      ]
                    },
                    "result": {
                      "allOf": [
                        {
                          "type": "array",
                          "description": "List of confirmed blocks between start_slot and end_slot.",
                          "items": {
                            "type": "integer"
                          },
                          "example": [
                            5,
                            6,
                            7,
                            8,
                            9,
                            10
                          ]
                        }
                      ]
                    }
                  }
                },
                "examples": {
                  "example": {
                    "value": {
                      "jsonrpc": "2.0",
                      "id": "db16f277-1a22-41ff-9f85-f37e2cd77900",
                      "result": [
                        5,
                        6,
                        7,
                        8,
                        9,
                        10
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request - Invalid request parameters or malformed request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jsonrpc": {
                      "allOf": [
                        {
                          "type": "string",
                          "enum": [
                            "2.0"
                          ],
                          "description": "The JSON-RPC protocol version.",
                          "example": "2.0"
                        }
                      ]
                    },
                    "error": {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "integer",
                              "description": "The error code.",
                              "example": -32602
                            },
                            "message": {
                              "type": "string",
                              "description": "The error message.",
                              "example": "Invalid params"
                            }
                          }
                        }
                      ]
                    },
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "A unique identifier for the request.",
                          "example": "1"
                        }
                      ]
                    }
                  },
                  "refIdentifier": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "example": {
                    "value": {
                      "jsonrpc": "2.0",
                      "error": {
                        "code": -32602,
                        "message": "Invalid params"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Invalid or missing API key.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jsonrpc": {
                      "allOf": [
                        {
                          "type": "string",
                          "enum": [
                            "2.0"
                          ],
                          "description": "The JSON-RPC protocol version.",
                          "example": "2.0"
                        }
                      ]
                    },
                    "error": {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "integer",
                              "description": "The error code.",
                              "example": -32602
                            },
                            "message": {
                              "type": "string",
                              "description": "The error message.",
                              "example": "Invalid params"
                            }
                          }
                        }
                      ]
                    },
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "A unique identifier for the request.",
                          "example": "1"
                        }
                      ]
                    }
                  },
                  "refIdentifier": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "example": {
                    "value": {
                      "jsonrpc": "2.0",
                      "error": {
                        "code": -32001,
                        "message": "Unauthorized"
                      },
                      "id": "db16f277-1a22-41ff-9f85-f37e2cd77900"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests - Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jsonrpc": {
                      "allOf": [
                        {
                          "type": "string",
                          "enum": [
                            "2.0"
                          ],
                          "description": "The JSON-RPC protocol version.",
                          "example": "2.0"
                        }
                      ]
                    },
                    "error": {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "integer",
                              "description": "The error code.",
                              "example": -32602
                            },
                            "message": {
                              "type": "string",
                              "description": "The error message.",
                              "example": "Invalid params"
                            }
                          }
                        }
                      ]
                    },
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "A unique identifier for the request.",
                          "example": "1"
                        }
                      ]
                    }
                  },
                  "refIdentifier": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "example": {
                    "value": {
                      "jsonrpc": "2.0",
                      "error": {
                        "code": -32005,
                        "message": "Too many requests"
                      },
                      "id": "db16f277-1a22-41ff-9f85-f37e2cd77900"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error - An error occurred on the server.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jsonrpc": {
                      "allOf": [
                        {
                          "type": "string",
                          "enum": [
                            "2.0"
                          ],
                          "description": "The JSON-RPC protocol version.",
                          "example": "2.0"
                        }
                      ]
                    },
                    "error": {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "integer",
                              "description": "The error code.",
                              "example": -32602
                            },
                            "message": {
                              "type": "string",
                              "description": "The error message.",
                              "example": "Invalid params"
                            }
                          }
                        }
                      ]
                    },
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "A unique identifier for the request.",
                          "example": "1"
                        }
                      ]
                    }
                  },
                  "refIdentifier": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "example": {
                    "value": {
                      "jsonrpc": "2.0",
                      "error": {
                        "code": -32603,
                        "message": "Internal error"
                      },
                      "id": "db16f277-1a22-41ff-9f85-f37e2cd77900"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable - The service is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jsonrpc": {
                      "allOf": [
                        {
                          "type": "string",
                          "enum": [
                            "2.0"
                          ],
                          "description": "The JSON-RPC protocol version.",
                          "example": "2.0"
                        }
                      ]
                    },
                    "error": {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "integer",
                              "description": "The error code.",
                              "example": -32602
                            },
                            "message": {
                              "type": "string",
                              "description": "The error message.",
                              "example": "Invalid params"
                            }
                          }
                        }
                      ]
                    },
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "A unique identifier for the request.",
                          "example": "1"
                        }
                      ]
                    }
                  },
                  "refIdentifier": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "example": {
                    "value": {
                      "jsonrpc": "2.0",
                      "error": {
                        "code": -32002,
                        "message": "Service unavailable"
                      },
                      "id": "db16f277-1a22-41ff-9f85-f37e2cd77900"
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Gateway Timeout - The request timed out.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jsonrpc": {
                      "allOf": [
                        {
                          "type": "string",
                          "enum": [
                            "2.0"
                          ],
                          "description": "The JSON-RPC protocol version.",
                          "example": "2.0"
                        }
                      ]
                    },
                    "error": {
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "integer",
                              "description": "The error code.",
                              "example": -32602
                            },
                            "message": {
                              "type": "string",
                              "description": "The error message.",
                              "example": "Invalid params"
                            }
                          }
                        }
                      ]
                    },
                    "id": {
                      "allOf": [
                        {
                          "type": "string",
                          "description": "A unique identifier for the request.",
                          "example": "1"
                        }
                      ]
                    }
                  },
                  "refIdentifier": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "example": {
                    "value": {
                      "jsonrpc": "2.0",
                      "error": {
                        "code": -32003,
                        "message": "Gateway timeout"
                      },
                      "id": "db16f277-1a22-41ff-9f85-f37e2cd77900"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "List confirmed block slots between a start slot and an optional end slot."
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKeyQuery": {
        "type": "apiKey",
        "in": "query",
        "name": "api_key"
      }
    }
  }
}
