Carpool
WebsiteTwitter
  • 👋Welcome
    • 🚘What is Carpool?
    • ☕Getting Started
  • 📘Guides
    • 🔖Onboarding Programs
    • ❓Querying
    • 🚨Alerting
    • 📖Organization Management
  • ⚙️API Reference
    • 📚About our Query API
    • 📝Instructions
      • LIST_INSTRUCTIONS
      • GET_INSTRUCTION
      • GET_INSTRUCTIONS_IN_TRANSACTION
      • GET_INSTRUCTIONS_INVOLVING_ACCOUNT
      • SEARCH_INSTRUCTION_LOGS
      • SEARCH_INSTRUCTIONS
      • COUNT_INSTRUCTIONS
      • FIELD_STATISTIC_INSTRUCTION
      • MOST_COMMON_VALUES_INSTRUCTION
      • MOST_COMMON_ACCOUNTS_INSTRUCTION
    • 🗄️Accounts
      • LIST_ACCOUNTS
      • GET_ACCOUNT
      • GET_ACCOUNTS_WITH_LAMPORTS
      • SEARCH_ACCOUNTS
      • COUNT_ACCOUNTS
      • FIELD_STATISTIC_ACCOUNT
      • MOST_COMMON_VALUES_ACCOUNT
    • ⏳Account Archive
      • GET_ACCOUNT_SNAPSHOT
      • GET_ACCOUNT_SNAPSHOT_AT_SLOT
      • LIST_ACCOUNT_SNAPSHOTS
    • 🗃️Filters
      • 👓Instruction Filters
      • 🎛️Account Filters
  • ❔Resources
    • 🔗Links
    • 📄Blog Posts
Powered by GitBook
On this page
  1. API Reference
  2. Accounts

FIELD_STATISTIC_ACCOUNT

Aggregate accounts through basic statistics on account fields.

PreviousCOUNT_ACCOUNTSNextMOST_COMMON_VALUES_ACCOUNT

Last updated 1 year ago

Overview

This method allows you to aggregate accounts through basic statistics and a robust filter object. There are many types of filters you can apply and you can find information regarding those in the section of the docs. The endpoint example here shows off one of the many filters.

Statistic

The "statistic" field in the post body is based on the following type and can adapt to the kind of query you wish to perform

type FieldStatistic = 'avg' | 'sum' | 'std' | 'min' | 'max' | { percentile: number }

Filters

As mentioned above, the api definition here illustrates one of Carpool's many filter types. All queries that accept a filter object in the POST body can make use of any of the potential filters. Please see the Account Filters section of the documentation to better understand how they are implemented for account related queries.

Example

Program - Candy Machine

Description - Return the average of the value at data.creators.percentageShare for all CandyMachine account types. Filter for only accounts that include the pubkey "GH2mL1wdNZZQbogCGs8Rinp6zvLxzCzpH17v9Aj1xesF" for the collectionMint value and only look in the specified time range.

Javascript

var myHeaders = new Headers();
myHeaders.append("x-api-key", "<API_KEY>");
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "type": "FIELD_STATISTIC_ACCOUNT",
  "query": {
    "programId": "CndyV3LdqHUfDLmE5naZjVN8rBZz4tqhdefbAnjHG3JR",
    "accountName": "CandyMachine",
    "path": "data.creators.percentageShare",
    "statistic": "avg",
    "filter": {
      "type": "ACCOUNT_DATA_KEYWORD",
      "path": "collectionMint",
      "value": "GH2mL1wdNZZQbogCGs8Rinp6zvLxzCzpH17v9Aj1xesF"
    },
    "timeRange": {
      "before": "2023-07-19T22:53:09+0000",
      "after": "2023-07-11T22:53:09+0000"
    }
  }
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://mainnet.carpool.dev/query/solana", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

cURL

curl --location 'https://mainnet.carpool.dev/query/solana' \
--header 'x-api-key: <API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
    "type": "FIELD_STATISTIC_ACCOUNT",
    "query": {
        "programId": "CndyV3LdqHUfDLmE5naZjVN8rBZz4tqhdefbAnjHG3JR",
        "accountName": "CandyMachine",
        "path": "data.creators.percentageShare",
        "statistic": "avg",
        "filter": {
            "type": "ACCOUNT_DATA_KEYWORD",
            "path": "collectionMint",
            "value": "GH2mL1wdNZZQbogCGs8Rinp6zvLxzCzpH17v9Aj1xesF"
        },
        "timeRange": {
            "before": "2023-07-19T22:53:09+0000",
            "after": "2023-07-11T22:53:09+0000"
        }
    }
}'
⚙️
🗄️
🎛️Account Filters
Filters
  • Overview
  • POSTFIELD_STATISTIC_ACCOUNT
  • Statistic
  • Filters
  • Example

FIELD_STATISTIC_ACCOUNT

post

Aggregate accounts through basic statistics on account fields.

Header parameters
x-api-keystringRequired

the API key

Body
typestringRequired

should be set to 'FIELD_STATISTIC_ACCOUNT' This is the type of query you want to perform.

Example: FIELD_STATISTIC_ACCOUNT
Responses
200
Successful Response
application/json
post
POST /query/solana HTTP/1.1
Host: mainnet.carpool.dev
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 480

"{\n    \"type\": \"FIELD_STATISTIC_ACCOUNT\",\n    \"query\": {\n        \"programId\": \"CndyV3LdqHUfDLmE5naZjVN8rBZz4tqhdefbAnjHG3JR\",\n        \"accountName\": \"CandyMachine\",\n        \"statistic\": \"avg\",\n        \"path\": \"data.creators.percentageShare\",\n         \"filter\": {\n            \"type\": \"ACCOUNT_DATA_KEYWORD\",\n            \"path\": \"collectionMint\",\n            \"value\": \"GH2mL1wdNZZQbogCGs8Rinp6zvLxzCzpH17v9Aj1xesF\"\n        }\n    }\n}"
200

Successful Response

{
    "response": {
        "value": 100
    }
}