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. Instructions

SEARCH_INSTRUCTIONS

Search instructions with a powerful filter built on top of Elasticsearch

PreviousSEARCH_INSTRUCTION_LOGSNextCOUNT_INSTRUCTIONS

Last updated 1 year ago

Overview

This method allows you to search through program instructions with 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.

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 Instruction Filters section of the documentation to better understand how they are implemented for instruction queries.

Example - Basic

Program - Cypher Protocol

Description - Get all instructions associated with the authority account at pubkey 8mpT...Mguz

Javascript

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

var raw = JSON.stringify({
  "type": "SEARCH_INSTRUCTIONS",
  "query": {
    "programId": "CYPH3o83JX6jY6NkbproSpdmQ5VWJtxjfJ5P8veyYVu3",
    "filter": {
      "type": "INSTRUCTION_ACCOUNT",
      "accountPubKey": "8mpTNU6vpLSD9mWx4BQt2S6sz2yP39ZhQ9TuMXY4MgUz",
      "accountName": "authority"
    }
  }
});

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": "SEARCH_INSTRUCTIONS",
    "query": {
        "programId": "CYPH3o83JX6jY6NkbproSpdmQ5VWJtxjfJ5P8veyYVu3",
        "filter": {
            "type": "INSTRUCTION_ACCOUNT",
            "accountPubKey": "8mpTNU6vpLSD9mWx4BQt2S6sz2yP39ZhQ9TuMXY4MgUz",
            "accountName": "authority"
        }
    }
}'

Example - Advanced

Program - Cypher Protocol

Description - Get all instructions associated with the authority account at pubkey 8mpT...Mguz. Search in a specific time range and return up to 20 objects.

Javascript

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

var raw = JSON.stringify({
  "type": "SEARCH_INSTRUCTIONS",
  "query": {
    "programId": "CYPH3o83JX6jY6NkbproSpdmQ5VWJtxjfJ5P8veyYVu3",
    "filter": {
      "type": "INSTRUCTION_ACCOUNT",
      "accountPubKey": "8mpTNU6vpLSD9mWx4BQt2S6sz2yP39ZhQ9TuMXY4MgUz",
      "accountName": "authority"
    },
    "timeRange": {
      "before": "2023-07-17T22:53:09+0000",
      "after": "2023-07-11T22:53:09+0000"
    },
    "failures": false,
    "fields": [],
    "sort": {
      "order": "asc"
    },
    "pagination": {
      "limit": 20,
      "offset": 0
    }
  }
});

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": "SEARCH_INSTRUCTIONS",
    "query": {
        "programId": "CYPH3o83JX6jY6NkbproSpdmQ5VWJtxjfJ5P8veyYVu3",
        "filter": {
            "type": "INSTRUCTION_ACCOUNT",
            "accountPubKey": "8mpTNU6vpLSD9mWx4BQt2S6sz2yP39ZhQ9TuMXY4MgUz",
            "accountName": "authority"
        },
        "timeRange": {
            "before": "2023-07-17T22:53:09+0000",
            "after": "2023-07-11T22:53:09+0000"
        },
        "failures": false,
        "fields": [],
        "sort": {
            "order": "asc"
        },
        "pagination": {
            "limit": 20,
            "offset": 0
        }
    }
}'

⚙️
📝
👓Instruction Filters
Filters
  • Overview
  • POSTSEARCH_INSTRUCTIONS
  • Filters
  • Example - Basic
  • Example - Advanced

SEARCH_INSTRUCTIONS

post

Search instructions with a powerful filter built on top of Elasticsearch

Header parameters
x-api-keystringRequired

the API key

Body
typestringRequired

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

Example: SEARCH_INSTRUCTIONS
Responses
200
Successful Response
application/json; charset=utf-8
post
POST /query/solana HTTP/1.1
Host: mainnet.carpool.dev
x-api-key: text
Content-Type: application/json
Accept: */*
Content-Length: 666

"{\n    \"type\": \"SEARCH_INSTRUCTIONS\",\n    \"query\": {\n        \"programId\": \"CYPH3o83JX6jY6NkbproSpdmQ5VWJtxjfJ5P8veyYVu3\",\n        \"filter\": {\n            \"type\": \"INSTRUCTION_ACCOUNT\",\n            \"accountPubKey\": \"8mpTNU6vpLSD9mWx4BQt2S6sz2yP39ZhQ9TuMXY4MgUz\",\n            \"accountName\": \"authority\"\n        },\n        \"timeRange\": {\n            \"before\": \"\",\n            \"after\": \"\"\n        },\n        \"failures\": false,\n        \"fields\": [],\n        \"sort\": {\n            \"order\": \"desc\"\n        },\n        \"pagination\": {\n            \"limit\": 20,\n            \"offset\": 0\n        }\n    }\n}"
200

Successful Response

{
  "response": {
    "instructions": [
      {
        "txSignature": "59sk7MgK3CEr8pBHkSwffdq5DoUsSRr3ZoFsV3J1Uy9KTAUmwPb4PQzPwS3oG1nZTEg5Wkn9FVHYJ4gLD8v44sZq",
        "slot": 205959894,
        "args": {
          "accountBump": 254,
          "accountNumber": 0
        },
        "logs": [
          "Program log: Instruction: CreateAccount",
          "Program 11111111111111111111111111111111 invoke [2]",
          "Program 11111111111111111111111111111111 success",
          "Program data: EiEYjZKPB30H2sVoIxfhUpvoWQiHW6wCxW0C2Y1jUJiEBp+soQRc43N9BW+28+GTEILmHRXnmRg3DoNkkb9Xte0VgvEHOzUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
        ],
        "timestamp": 1689634074581,
        "isFailure": false,
        "errorCode": "text",
        "balances": [
          {
            "pubKey": "8mpTNU6vpLSD9mWx4BQt2S6sz2yP39ZhQ9TuMXY4MgUz",
            "lamports": {
              "pre": 18947001180,
              "post": 18883632339,
              "delta": -63368841
            },
            "token": {
              "owner": "234itWGBdtFT2VaPzoV8de9kGcDVCK33T9TNgVFmnpXN",
              "mint": "So11111111111111111111111111111111111111112",
              "pre": 19132223433067,
              "post": 19134585433067,
              "delta": 2362000000,
              "decimals": 9
            }
          }
        ],
        "accounts": {}
      }
    ]
  }
}