getProgramAccounts
curl --request POST \
--url 'https://rpc-mainnet.solanatracker.io/?api_key=' \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": "db16f277-1a22-41ff-9f85-f37e2cd77900",
"method": "getProgramAccounts",
"params": [
"4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T"
]
}
'import requests
url = "https://rpc-mainnet.solanatracker.io/?api_key="
payload = {
"jsonrpc": "2.0",
"id": "db16f277-1a22-41ff-9f85-f37e2cd77900",
"method": "getProgramAccounts",
"params": ["4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
jsonrpc: '2.0',
id: 'db16f277-1a22-41ff-9f85-f37e2cd77900',
method: 'getProgramAccounts',
params: ['4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T']
})
};
fetch('https://rpc-mainnet.solanatracker.io/?api_key=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://rpc-mainnet.solanatracker.io/?api_key=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'id' => 'db16f277-1a22-41ff-9f85-f37e2cd77900',
'method' => 'getProgramAccounts',
'params' => [
'4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://rpc-mainnet.solanatracker.io/?api_key="
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": \"db16f277-1a22-41ff-9f85-f37e2cd77900\",\n \"method\": \"getProgramAccounts\",\n \"params\": [\n \"4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://rpc-mainnet.solanatracker.io/?api_key=")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": \"db16f277-1a22-41ff-9f85-f37e2cd77900\",\n \"method\": \"getProgramAccounts\",\n \"params\": [\n \"4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://rpc-mainnet.solanatracker.io/?api_key=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"id\": \"db16f277-1a22-41ff-9f85-f37e2cd77900\",\n \"method\": \"getProgramAccounts\",\n \"params\": [\n \"4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": "db16f277-1a22-41ff-9f85-f37e2cd77900",
"result": [
{
"pubkey": "CxELquR1gPP8wHe33gZ4QxqGB3sZ9RSwsJ2KshVewkFY",
"account": {
"lamports": 15298080,
"owner": "4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T",
"data": [
"2R9jLfiAQ9bgdcw6h8s44439",
"base58"
],
"executable": false,
"rentEpoch": 28,
"space": 42
}
}
]
}{
"jsonrpc": "2.0",
"error": {
"code": -32602,
"message": "Invalid params",
"data": {}
},
"id": "db16f277-1a22-41ff-9f85-f37e2cd77900"
}{
"jsonrpc": "2.0",
"error": {
"code": -32001,
"message": "Unauthorized",
"data": {}
},
"id": "db16f277-1a22-41ff-9f85-f37e2cd77900"
}{
"jsonrpc": "2.0",
"error": {
"code": -32005,
"message": "Too many requests",
"data": {}
},
"id": "db16f277-1a22-41ff-9f85-f37e2cd77900"
}{
"jsonrpc": "2.0",
"error": {
"code": -32603,
"message": "Internal error",
"data": {}
},
"id": "db16f277-1a22-41ff-9f85-f37e2cd77900"
}{
"jsonrpc": "2.0",
"error": {
"code": -32002,
"message": "Service unavailable",
"data": {}
},
"id": "db16f277-1a22-41ff-9f85-f37e2cd77900"
}{
"jsonrpc": "2.0",
"error": {
"code": -32003,
"message": "Gateway timeout",
"data": {}
},
"id": "db16f277-1a22-41ff-9f85-f37e2cd77900"
}Account Methods
getProgramAccounts
Runs the Solana RPC getProgramAccounts method.
POST
/
getProgramAccounts
curl --request POST \
--url 'https://rpc-mainnet.solanatracker.io/?api_key=' \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": "db16f277-1a22-41ff-9f85-f37e2cd77900",
"method": "getProgramAccounts",
"params": [
"4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T"
]
}
'import requests
url = "https://rpc-mainnet.solanatracker.io/?api_key="
payload = {
"jsonrpc": "2.0",
"id": "db16f277-1a22-41ff-9f85-f37e2cd77900",
"method": "getProgramAccounts",
"params": ["4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
jsonrpc: '2.0',
id: 'db16f277-1a22-41ff-9f85-f37e2cd77900',
method: 'getProgramAccounts',
params: ['4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T']
})
};
fetch('https://rpc-mainnet.solanatracker.io/?api_key=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://rpc-mainnet.solanatracker.io/?api_key=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'id' => 'db16f277-1a22-41ff-9f85-f37e2cd77900',
'method' => 'getProgramAccounts',
'params' => [
'4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://rpc-mainnet.solanatracker.io/?api_key="
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": \"db16f277-1a22-41ff-9f85-f37e2cd77900\",\n \"method\": \"getProgramAccounts\",\n \"params\": [\n \"4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://rpc-mainnet.solanatracker.io/?api_key=")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": \"db16f277-1a22-41ff-9f85-f37e2cd77900\",\n \"method\": \"getProgramAccounts\",\n \"params\": [\n \"4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://rpc-mainnet.solanatracker.io/?api_key=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"id\": \"db16f277-1a22-41ff-9f85-f37e2cd77900\",\n \"method\": \"getProgramAccounts\",\n \"params\": [\n \"4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": "db16f277-1a22-41ff-9f85-f37e2cd77900",
"result": [
{
"pubkey": "CxELquR1gPP8wHe33gZ4QxqGB3sZ9RSwsJ2KshVewkFY",
"account": {
"lamports": 15298080,
"owner": "4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T",
"data": [
"2R9jLfiAQ9bgdcw6h8s44439",
"base58"
],
"executable": false,
"rentEpoch": 28,
"space": 42
}
}
]
}{
"jsonrpc": "2.0",
"error": {
"code": -32602,
"message": "Invalid params",
"data": {}
},
"id": "db16f277-1a22-41ff-9f85-f37e2cd77900"
}{
"jsonrpc": "2.0",
"error": {
"code": -32001,
"message": "Unauthorized",
"data": {}
},
"id": "db16f277-1a22-41ff-9f85-f37e2cd77900"
}{
"jsonrpc": "2.0",
"error": {
"code": -32005,
"message": "Too many requests",
"data": {}
},
"id": "db16f277-1a22-41ff-9f85-f37e2cd77900"
}{
"jsonrpc": "2.0",
"error": {
"code": -32603,
"message": "Internal error",
"data": {}
},
"id": "db16f277-1a22-41ff-9f85-f37e2cd77900"
}{
"jsonrpc": "2.0",
"error": {
"code": -32002,
"message": "Service unavailable",
"data": {}
},
"id": "db16f277-1a22-41ff-9f85-f37e2cd77900"
}{
"jsonrpc": "2.0",
"error": {
"code": -32003,
"message": "Gateway timeout",
"data": {}
},
"id": "db16f277-1a22-41ff-9f85-f37e2cd77900"
}⚡ Powered by Solana Ridge DBGet faster Solana account data with Ridge DB, our custom-built client designed specifically for high-performance account retrieval on Solana. Unlike standard RPC methods, Ridge DB uses specialized indexes that make querying program accounts significantly faster.What makes it different:Need to track only new accounts? Use
changedSince to fetch accounts modified after a specific slot, so you do not have to reload everything. Use cursor pagination to retrieve all matching accounts efficiently, up to 10k per request.High Load ConsiderationsThis endpoint streams all accounts directly to your client. While this works great for most queries, it can return errors during high load or when querying programs with millions of accounts (like liquidity pools or protocol-owned accounts).Need better reliability? Use getProgramAccountsV2 instead. The V2 method includes pagination support, making it more efficient and reliable for large programs and high-traffic scenarios.
Authorizations
Body
application/json
The JSON-RPC protocol version.
Available options:
2.0 Example:
"2.0"
A unique identifier for the request.
Example:
"1"
The name of the RPC method to invoke.
Available options:
getProgramAccounts Example:
"getProgramAccounts"
Parameters for the method.
The Solana program public key (address) to query accounts for, as a base-58 encoded string.
Example:
"4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T"
Was this page helpful?
⌘I