{
  "openapi": "3.1.0",
  "info": {
    "title": "grov API",
    "version": "1.0.0",
    "summary": "An API where AI agents buy social growth and pay in USDC. The work is carried out by people completing small tasks.",
    "description": "grov is a machine-payable API for social growth. An agent picks a service, points it at a post or an account, and pays in USDC over x402 or MPP. People pick the work up and complete it. No account, no dashboard, no invoice: the first call returns a payment requirement, the second call returns an order.\n\nEvery operation below is payable. Calling one without payment returns a 402\ncarrying the exact amount and asset. Sign it, call the same URL again, and you\nreceive an order with a secret you can read the status with for free.\n\nPrices come from the live catalog, so this document never drifts from reality.",
    "x-guidance": "Payable operations carry `x-payment-info` with the protocol, the asset and a price hint.\nx402 operations use the `PAYMENT-SIGNATURE` header. MPP operations use `Authorization: Payment`.\nAlways read the amount from the live 402 rather than from `x-payment-info`.",
    "contact": {
      "email": "support@grov.fun",
      "url": "https://grov.fun/docs"
    },
    "license": {
      "name": "Proprietary"
    }
  },
  "servers": [
    {
      "url": "https://grov.fun"
    }
  ],
  "tags": [
    {
      "name": "X",
      "description": "X growth services."
    },
    {
      "name": "Instagram",
      "description": "Instagram growth services."
    },
    {
      "name": "TikTok",
      "description": "TikTok growth services."
    },
    {
      "name": "YouTube",
      "description": "YouTube growth services."
    },
    {
      "name": "Telegram",
      "description": "Telegram growth services."
    },
    {
      "name": "Spotify",
      "description": "Spotify growth services."
    },
    {
      "name": "Facebook",
      "description": "Facebook growth services."
    }
  ],
  "paths": {
    "/api/base/xlikes": {
      "get": {
        "operationId": "base_xlikes",
        "tags": [
          "X"
        ],
        "summary": "X Likes via x402 on Base",
        "description": "Likes on a single X post. People open the post and like it.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xlikes",
          "platform": "x",
          "unit": "like",
          "aliases": [
            "twitter/like",
            "twitter/likes",
            "x/like",
            "x/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_xlikes_post",
        "tags": [
          "X"
        ],
        "summary": "X Likes via x402 on Base",
        "description": "Likes on a single X post. People open the post and like it.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xlikes",
          "platform": "x",
          "unit": "like",
          "aliases": [
            "twitter/like",
            "twitter/likes",
            "x/like",
            "x/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/xreposts": {
      "get": {
        "operationId": "base_xreposts",
        "tags": [
          "X"
        ],
        "summary": "X Reposts via x402 on Base",
        "description": "Reposts of a single X post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per repost. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "repost",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xreposts",
          "platform": "x",
          "unit": "repost",
          "aliases": [
            "twitter/repost",
            "twitter/reposts",
            "x/repost",
            "x/reposts"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_xreposts_post",
        "tags": [
          "X"
        ],
        "summary": "X Reposts via x402 on Base",
        "description": "Reposts of a single X post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per repost. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "repost",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xreposts",
          "platform": "x",
          "unit": "repost",
          "aliases": [
            "twitter/repost",
            "twitter/reposts",
            "x/repost",
            "x/reposts"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/xcomments": {
      "get": {
        "operationId": "base_xcomments",
        "tags": [
          "X"
        ],
        "summary": "X Comments via x402 on Base",
        "description": "Replies written under a single X post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xcomments",
          "platform": "x",
          "unit": "comment",
          "aliases": [
            "twitter/comment",
            "twitter/comments",
            "x/comment",
            "x/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_xcomments_post",
        "tags": [
          "X"
        ],
        "summary": "X Comments via x402 on Base",
        "description": "Replies written under a single X post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xcomments",
          "platform": "x",
          "unit": "comment",
          "aliases": [
            "twitter/comment",
            "twitter/comments",
            "x/comment",
            "x/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/xviews": {
      "get": {
        "operationId": "base_xviews",
        "tags": [
          "X"
        ],
        "summary": "X Views via x402 on Base",
        "description": "Views on a single X post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xviews",
          "platform": "x",
          "unit": "view",
          "aliases": [
            "twitter/view",
            "twitter/views",
            "x/view",
            "x/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_xviews_post",
        "tags": [
          "X"
        ],
        "summary": "X Views via x402 on Base",
        "description": "Views on a single X post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xviews",
          "platform": "x",
          "unit": "view",
          "aliases": [
            "twitter/view",
            "twitter/views",
            "x/view",
            "x/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/xfollowers": {
      "get": {
        "operationId": "base_xfollowers",
        "tags": [
          "X"
        ],
        "summary": "X Followers via x402 on Base",
        "description": "New followers for an X account.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xfollowers",
          "platform": "x",
          "unit": "follower",
          "aliases": [
            "twitter/follower",
            "twitter/followers",
            "x/follower",
            "x/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_xfollowers_post",
        "tags": [
          "X"
        ],
        "summary": "X Followers via x402 on Base",
        "description": "New followers for an X account.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xfollowers",
          "platform": "x",
          "unit": "follower",
          "aliases": [
            "twitter/follower",
            "twitter/followers",
            "x/follower",
            "x/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/instalikes": {
      "get": {
        "operationId": "base_instalikes",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Likes via x402 on Base",
        "description": "Likes on a single Instagram post or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instalikes",
          "platform": "instagram",
          "unit": "like",
          "aliases": [
            "instagram/like",
            "instagram/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_instalikes_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Likes via x402 on Base",
        "description": "Likes on a single Instagram post or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instalikes",
          "platform": "instagram",
          "unit": "like",
          "aliases": [
            "instagram/like",
            "instagram/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/instacomments": {
      "get": {
        "operationId": "base_instacomments",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Comments via x402 on Base",
        "description": "Comments written under a single Instagram post or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instacomments",
          "platform": "instagram",
          "unit": "comment",
          "aliases": [
            "instagram/comment",
            "instagram/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_instacomments_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Comments via x402 on Base",
        "description": "Comments written under a single Instagram post or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instacomments",
          "platform": "instagram",
          "unit": "comment",
          "aliases": [
            "instagram/comment",
            "instagram/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/instaviews": {
      "get": {
        "operationId": "base_instaviews",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Views via x402 on Base",
        "description": "Views on a single Instagram reel or video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/reel/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instaviews",
          "platform": "instagram",
          "unit": "view",
          "aliases": [
            "instagram/view",
            "instagram/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_instaviews_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Views via x402 on Base",
        "description": "Views on a single Instagram reel or video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/reel/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instaviews",
          "platform": "instagram",
          "unit": "view",
          "aliases": [
            "instagram/view",
            "instagram/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/instareposts": {
      "get": {
        "operationId": "base_instareposts",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Reposts via x402 on Base",
        "description": "Reposts of a single Instagram post or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per repost. Amount range 10 to 5000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "repost",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 5000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 5000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 5000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instareposts",
          "platform": "instagram",
          "unit": "repost",
          "aliases": [
            "instagram/repost",
            "instagram/reposts"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_instareposts_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Reposts via x402 on Base",
        "description": "Reposts of a single Instagram post or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per repost. Amount range 10 to 5000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "repost",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 5000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 5000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 5000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instareposts",
          "platform": "instagram",
          "unit": "repost",
          "aliases": [
            "instagram/repost",
            "instagram/reposts"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/instasaves": {
      "get": {
        "operationId": "base_instasaves",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Post Saves via x402 on Base",
        "description": "Saves on a single Instagram post or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instasaves",
          "platform": "instagram",
          "unit": "save",
          "aliases": [
            "instagram/save",
            "instagram/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_instasaves_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Post Saves via x402 on Base",
        "description": "Saves on a single Instagram post or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instasaves",
          "platform": "instagram",
          "unit": "save",
          "aliases": [
            "instagram/save",
            "instagram/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/instafollowers": {
      "get": {
        "operationId": "base_instafollowers",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Followers via x402 on Base",
        "description": "New followers for an Instagram account.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instafollowers",
          "platform": "instagram",
          "unit": "follower",
          "aliases": [
            "instagram/follower",
            "instagram/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_instafollowers_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Followers via x402 on Base",
        "description": "New followers for an Instagram account.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instafollowers",
          "platform": "instagram",
          "unit": "follower",
          "aliases": [
            "instagram/follower",
            "instagram/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/tiktoklikes": {
      "get": {
        "operationId": "base_tiktoklikes",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Likes via x402 on Base",
        "description": "Likes on a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktoklikes",
          "platform": "tiktok",
          "unit": "like",
          "aliases": [
            "tiktok/like",
            "tiktok/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_tiktoklikes_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Likes via x402 on Base",
        "description": "Likes on a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktoklikes",
          "platform": "tiktok",
          "unit": "like",
          "aliases": [
            "tiktok/like",
            "tiktok/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/tiktokcomments": {
      "get": {
        "operationId": "base_tiktokcomments",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Comments via x402 on Base",
        "description": "Comments written under a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokcomments",
          "platform": "tiktok",
          "unit": "comment",
          "aliases": [
            "tiktok/comment",
            "tiktok/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_tiktokcomments_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Comments via x402 on Base",
        "description": "Comments written under a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokcomments",
          "platform": "tiktok",
          "unit": "comment",
          "aliases": [
            "tiktok/comment",
            "tiktok/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/tiktokviews": {
      "get": {
        "operationId": "base_tiktokviews",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Views via x402 on Base",
        "description": "Views on a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.002 per view. Amount range 100 to 1000000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.002,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 1000000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 1000000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 1000000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokviews",
          "platform": "tiktok",
          "unit": "view",
          "aliases": [
            "tiktok/view",
            "tiktok/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_tiktokviews_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Views via x402 on Base",
        "description": "Views on a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.002 per view. Amount range 100 to 1000000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.002,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 1000000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 1000000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 1000000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokviews",
          "platform": "tiktok",
          "unit": "view",
          "aliases": [
            "tiktok/view",
            "tiktok/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/tiktokshares": {
      "get": {
        "operationId": "base_tiktokshares",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Shares via x402 on Base",
        "description": "Shares of a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per share. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "share",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokshares",
          "platform": "tiktok",
          "unit": "share",
          "aliases": [
            "tiktok/share",
            "tiktok/shares"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_tiktokshares_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Shares via x402 on Base",
        "description": "Shares of a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per share. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "share",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokshares",
          "platform": "tiktok",
          "unit": "share",
          "aliases": [
            "tiktok/share",
            "tiktok/shares"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/tiktoksaves": {
      "get": {
        "operationId": "base_tiktoksaves",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Post Saves via x402 on Base",
        "description": "Saves on a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktoksaves",
          "platform": "tiktok",
          "unit": "save",
          "aliases": [
            "tiktok/save",
            "tiktok/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_tiktoksaves_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Post Saves via x402 on Base",
        "description": "Saves on a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktoksaves",
          "platform": "tiktok",
          "unit": "save",
          "aliases": [
            "tiktok/save",
            "tiktok/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/tiktokfollowers": {
      "get": {
        "operationId": "base_tiktokfollowers",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Followers via x402 on Base",
        "description": "New followers for a TikTok account.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokfollowers",
          "platform": "tiktok",
          "unit": "follower",
          "aliases": [
            "tiktok/follower",
            "tiktok/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_tiktokfollowers_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Followers via x402 on Base",
        "description": "New followers for a TikTok account.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokfollowers",
          "platform": "tiktok",
          "unit": "follower",
          "aliases": [
            "tiktok/follower",
            "tiktok/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/ytlikes": {
      "get": {
        "operationId": "base_ytlikes",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Likes via x402 on Base",
        "description": "Likes on a single YouTube video or short.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytlikes",
          "platform": "youtube",
          "unit": "like",
          "aliases": [
            "youtube/like",
            "youtube/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_ytlikes_post",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Likes via x402 on Base",
        "description": "Likes on a single YouTube video or short.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytlikes",
          "platform": "youtube",
          "unit": "like",
          "aliases": [
            "youtube/like",
            "youtube/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/ytcomments": {
      "get": {
        "operationId": "base_ytcomments",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Comments via x402 on Base",
        "description": "Comments written under a single YouTube video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.035 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytcomments",
          "platform": "youtube",
          "unit": "comment",
          "aliases": [
            "youtube/comment",
            "youtube/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_ytcomments_post",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Comments via x402 on Base",
        "description": "Comments written under a single YouTube video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.035 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytcomments",
          "platform": "youtube",
          "unit": "comment",
          "aliases": [
            "youtube/comment",
            "youtube/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/ytviews": {
      "get": {
        "operationId": "base_ytviews",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Views via x402 on Base",
        "description": "Views on a single YouTube video or short.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.004 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.004,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytviews",
          "platform": "youtube",
          "unit": "view",
          "aliases": [
            "youtube/view",
            "youtube/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_ytviews_post",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Views via x402 on Base",
        "description": "Views on a single YouTube video or short.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.004 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.004,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytviews",
          "platform": "youtube",
          "unit": "view",
          "aliases": [
            "youtube/view",
            "youtube/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/ytsubscribers": {
      "get": {
        "operationId": "base_ytsubscribers",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Subscribers via x402 on Base",
        "description": "New subscribers for a YouTube channel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.035 per subscriber. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "subscriber",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/@grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytsubscribers",
          "platform": "youtube",
          "unit": "subscriber",
          "aliases": [
            "youtube/subscriber",
            "youtube/subscribers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_ytsubscribers_post",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Subscribers via x402 on Base",
        "description": "New subscribers for a YouTube channel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.035 per subscriber. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "subscriber",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/@grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytsubscribers",
          "platform": "youtube",
          "unit": "subscriber",
          "aliases": [
            "youtube/subscriber",
            "youtube/subscribers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/tgmembers": {
      "get": {
        "operationId": "base_tgmembers",
        "tags": [
          "Telegram"
        ],
        "summary": "Telegram Channel Members via x402 on Base",
        "description": "New members for a Telegram channel or group.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per member. Amount range 10 to 50000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "member",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "join",
            "in": "query",
            "required": true,
            "description": "Public t.me link for the channel or group.",
            "schema": {
              "type": "string",
              "examples": [
                "https://t.me/grovfun"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 50000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 50000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "join": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 50000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tgmembers",
          "platform": "telegram",
          "unit": "member",
          "aliases": [
            "telegram/member",
            "telegram/members"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_tgmembers_post",
        "tags": [
          "Telegram"
        ],
        "summary": "Telegram Channel Members via x402 on Base",
        "description": "New members for a Telegram channel or group.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per member. Amount range 10 to 50000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "member",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "join",
            "in": "query",
            "required": true,
            "description": "Public t.me link for the channel or group.",
            "schema": {
              "type": "string",
              "examples": [
                "https://t.me/grovfun"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 50000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 50000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "join": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 50000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tgmembers",
          "platform": "telegram",
          "unit": "member",
          "aliases": [
            "telegram/member",
            "telegram/members"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/spotifyplays": {
      "get": {
        "operationId": "base_spotifyplays",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Plays via x402 on Base",
        "description": "Plays on a single Spotify track.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.004 per play. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.004,
            "unit": "play",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the track or album.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifyplays",
          "platform": "spotify",
          "unit": "play",
          "aliases": [
            "spotify/play",
            "spotify/plays"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_spotifyplays_post",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Plays via x402 on Base",
        "description": "Plays on a single Spotify track.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.004 per play. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.004,
            "unit": "play",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the track or album.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifyplays",
          "platform": "spotify",
          "unit": "play",
          "aliases": [
            "spotify/play",
            "spotify/plays"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/spotifysaves": {
      "get": {
        "operationId": "base_spotifysaves",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Saves via x402 on Base",
        "description": "Saves on a single Spotify track or album.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.02 per save. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.02,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the track or album.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifysaves",
          "platform": "spotify",
          "unit": "save",
          "aliases": [
            "spotify/save",
            "spotify/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_spotifysaves_post",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Saves via x402 on Base",
        "description": "Saves on a single Spotify track or album.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.02 per save. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.02,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the track or album.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifysaves",
          "platform": "spotify",
          "unit": "save",
          "aliases": [
            "spotify/save",
            "spotify/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/spotifyfollowers": {
      "get": {
        "operationId": "base_spotifyfollowers",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Followers via x402 on Base",
        "description": "New followers for a Spotify artist profile.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.02 per follower. Amount range 10 to 50000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.02,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the artist profile.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/artist/6eUKZXaKkcviH0Ku9w2n3V"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 50000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 50000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 50000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifyfollowers",
          "platform": "spotify",
          "unit": "follower",
          "aliases": [
            "spotify/follower",
            "spotify/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_spotifyfollowers_post",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Followers via x402 on Base",
        "description": "New followers for a Spotify artist profile.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.02 per follower. Amount range 10 to 50000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.02,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the artist profile.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/artist/6eUKZXaKkcviH0Ku9w2n3V"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 50000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 50000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 50000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifyfollowers",
          "platform": "spotify",
          "unit": "follower",
          "aliases": [
            "spotify/follower",
            "spotify/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/spotifylisteners": {
      "get": {
        "operationId": "base_spotifylisteners",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Monthly Listeners via x402 on Base",
        "description": "Monthly listeners for a Spotify artist profile.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.01 per listener. Amount range 100 to 100000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.01,
            "unit": "listener",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the artist profile.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/artist/6eUKZXaKkcviH0Ku9w2n3V"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 100000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 100000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 100000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifylisteners",
          "platform": "spotify",
          "unit": "listener",
          "aliases": [
            "spotify/listener",
            "spotify/listeners",
            "spotify/monthly-listener",
            "spotify/monthly-listeners"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_spotifylisteners_post",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Monthly Listeners via x402 on Base",
        "description": "Monthly listeners for a Spotify artist profile.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.01 per listener. Amount range 100 to 100000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.01,
            "unit": "listener",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the artist profile.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/artist/6eUKZXaKkcviH0Ku9w2n3V"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 100000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 100000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 100000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifylisteners",
          "platform": "spotify",
          "unit": "listener",
          "aliases": [
            "spotify/listener",
            "spotify/listeners",
            "spotify/monthly-listener",
            "spotify/monthly-listeners"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/fblikes": {
      "get": {
        "operationId": "base_fblikes",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Likes via x402 on Base",
        "description": "Likes on a single Facebook post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fblikes",
          "platform": "facebook",
          "unit": "like",
          "aliases": [
            "facebook/like",
            "facebook/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_fblikes_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Likes via x402 on Base",
        "description": "Likes on a single Facebook post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fblikes",
          "platform": "facebook",
          "unit": "like",
          "aliases": [
            "facebook/like",
            "facebook/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/fbcomments": {
      "get": {
        "operationId": "base_fbcomments",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Comments via x402 on Base",
        "description": "Comments written under a single Facebook post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbcomments",
          "platform": "facebook",
          "unit": "comment",
          "aliases": [
            "facebook/comment",
            "facebook/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_fbcomments_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Comments via x402 on Base",
        "description": "Comments written under a single Facebook post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbcomments",
          "platform": "facebook",
          "unit": "comment",
          "aliases": [
            "facebook/comment",
            "facebook/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/fbviews": {
      "get": {
        "operationId": "base_fbviews",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Views via x402 on Base",
        "description": "Views on a single Facebook video or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/videos/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbviews",
          "platform": "facebook",
          "unit": "view",
          "aliases": [
            "facebook/view",
            "facebook/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_fbviews_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Views via x402 on Base",
        "description": "Views on a single Facebook video or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/videos/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbviews",
          "platform": "facebook",
          "unit": "view",
          "aliases": [
            "facebook/view",
            "facebook/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/fbshares": {
      "get": {
        "operationId": "base_fbshares",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Shares via x402 on Base",
        "description": "Shares of a single Facebook post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per share. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "share",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbshares",
          "platform": "facebook",
          "unit": "share",
          "aliases": [
            "facebook/share",
            "facebook/shares"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_fbshares_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Shares via x402 on Base",
        "description": "Shares of a single Facebook post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per share. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "share",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbshares",
          "platform": "facebook",
          "unit": "share",
          "aliases": [
            "facebook/share",
            "facebook/shares"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/fbsaves": {
      "get": {
        "operationId": "base_fbsaves",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Post Saves via x402 on Base",
        "description": "Saves on a single Facebook post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbsaves",
          "platform": "facebook",
          "unit": "save",
          "aliases": [
            "facebook/save",
            "facebook/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_fbsaves_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Post Saves via x402 on Base",
        "description": "Saves on a single Facebook post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbsaves",
          "platform": "facebook",
          "unit": "save",
          "aliases": [
            "facebook/save",
            "facebook/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/fbfollowers": {
      "get": {
        "operationId": "base_fbfollowers",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Followers via x402 on Base",
        "description": "New followers for a Facebook page or profile.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbfollowers",
          "platform": "facebook",
          "unit": "follower",
          "aliases": [
            "facebook/follower",
            "facebook/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_fbfollowers_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Followers via x402 on Base",
        "description": "New followers for a Facebook page or profile.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbfollowers",
          "platform": "facebook",
          "unit": "follower",
          "aliases": [
            "facebook/follower",
            "facebook/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/base/fbgroupmembers": {
      "get": {
        "operationId": "base_fbgroupmembers",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Group Members via x402 on Base",
        "description": "New members for a Facebook group.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.035 per member. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "member",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the Facebook group.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/groups/grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbgroupmembers",
          "platform": "facebook",
          "unit": "member",
          "aliases": [
            "facebook/group-member",
            "facebook/group-members"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "base_fbgroupmembers_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Group Members via x402 on Base",
        "description": "New members for a Facebook group.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.035 per member. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "member",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the Facebook group.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/groups/grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbgroupmembers",
          "platform": "facebook",
          "unit": "member",
          "aliases": [
            "facebook/group-member",
            "facebook/group-members"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/xlikes": {
      "get": {
        "operationId": "solana_xlikes",
        "tags": [
          "X"
        ],
        "summary": "X Likes via x402 on Solana",
        "description": "Likes on a single X post. People open the post and like it.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xlikes",
          "platform": "x",
          "unit": "like",
          "aliases": [
            "twitter/like",
            "twitter/likes",
            "x/like",
            "x/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_xlikes_post",
        "tags": [
          "X"
        ],
        "summary": "X Likes via x402 on Solana",
        "description": "Likes on a single X post. People open the post and like it.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xlikes",
          "platform": "x",
          "unit": "like",
          "aliases": [
            "twitter/like",
            "twitter/likes",
            "x/like",
            "x/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/xreposts": {
      "get": {
        "operationId": "solana_xreposts",
        "tags": [
          "X"
        ],
        "summary": "X Reposts via x402 on Solana",
        "description": "Reposts of a single X post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per repost. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "repost",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xreposts",
          "platform": "x",
          "unit": "repost",
          "aliases": [
            "twitter/repost",
            "twitter/reposts",
            "x/repost",
            "x/reposts"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_xreposts_post",
        "tags": [
          "X"
        ],
        "summary": "X Reposts via x402 on Solana",
        "description": "Reposts of a single X post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per repost. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "repost",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xreposts",
          "platform": "x",
          "unit": "repost",
          "aliases": [
            "twitter/repost",
            "twitter/reposts",
            "x/repost",
            "x/reposts"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/xcomments": {
      "get": {
        "operationId": "solana_xcomments",
        "tags": [
          "X"
        ],
        "summary": "X Comments via x402 on Solana",
        "description": "Replies written under a single X post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xcomments",
          "platform": "x",
          "unit": "comment",
          "aliases": [
            "twitter/comment",
            "twitter/comments",
            "x/comment",
            "x/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_xcomments_post",
        "tags": [
          "X"
        ],
        "summary": "X Comments via x402 on Solana",
        "description": "Replies written under a single X post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xcomments",
          "platform": "x",
          "unit": "comment",
          "aliases": [
            "twitter/comment",
            "twitter/comments",
            "x/comment",
            "x/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/xviews": {
      "get": {
        "operationId": "solana_xviews",
        "tags": [
          "X"
        ],
        "summary": "X Views via x402 on Solana",
        "description": "Views on a single X post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xviews",
          "platform": "x",
          "unit": "view",
          "aliases": [
            "twitter/view",
            "twitter/views",
            "x/view",
            "x/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_xviews_post",
        "tags": [
          "X"
        ],
        "summary": "X Views via x402 on Solana",
        "description": "Views on a single X post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xviews",
          "platform": "x",
          "unit": "view",
          "aliases": [
            "twitter/view",
            "twitter/views",
            "x/view",
            "x/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/xfollowers": {
      "get": {
        "operationId": "solana_xfollowers",
        "tags": [
          "X"
        ],
        "summary": "X Followers via x402 on Solana",
        "description": "New followers for an X account.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xfollowers",
          "platform": "x",
          "unit": "follower",
          "aliases": [
            "twitter/follower",
            "twitter/followers",
            "x/follower",
            "x/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_xfollowers_post",
        "tags": [
          "X"
        ],
        "summary": "X Followers via x402 on Solana",
        "description": "New followers for an X account.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xfollowers",
          "platform": "x",
          "unit": "follower",
          "aliases": [
            "twitter/follower",
            "twitter/followers",
            "x/follower",
            "x/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/instalikes": {
      "get": {
        "operationId": "solana_instalikes",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Likes via x402 on Solana",
        "description": "Likes on a single Instagram post or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instalikes",
          "platform": "instagram",
          "unit": "like",
          "aliases": [
            "instagram/like",
            "instagram/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_instalikes_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Likes via x402 on Solana",
        "description": "Likes on a single Instagram post or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instalikes",
          "platform": "instagram",
          "unit": "like",
          "aliases": [
            "instagram/like",
            "instagram/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/instacomments": {
      "get": {
        "operationId": "solana_instacomments",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Comments via x402 on Solana",
        "description": "Comments written under a single Instagram post or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instacomments",
          "platform": "instagram",
          "unit": "comment",
          "aliases": [
            "instagram/comment",
            "instagram/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_instacomments_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Comments via x402 on Solana",
        "description": "Comments written under a single Instagram post or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instacomments",
          "platform": "instagram",
          "unit": "comment",
          "aliases": [
            "instagram/comment",
            "instagram/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/instaviews": {
      "get": {
        "operationId": "solana_instaviews",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Views via x402 on Solana",
        "description": "Views on a single Instagram reel or video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/reel/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instaviews",
          "platform": "instagram",
          "unit": "view",
          "aliases": [
            "instagram/view",
            "instagram/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_instaviews_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Views via x402 on Solana",
        "description": "Views on a single Instagram reel or video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/reel/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instaviews",
          "platform": "instagram",
          "unit": "view",
          "aliases": [
            "instagram/view",
            "instagram/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/instareposts": {
      "get": {
        "operationId": "solana_instareposts",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Reposts via x402 on Solana",
        "description": "Reposts of a single Instagram post or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per repost. Amount range 10 to 5000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "repost",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 5000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 5000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 5000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instareposts",
          "platform": "instagram",
          "unit": "repost",
          "aliases": [
            "instagram/repost",
            "instagram/reposts"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_instareposts_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Reposts via x402 on Solana",
        "description": "Reposts of a single Instagram post or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per repost. Amount range 10 to 5000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "repost",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 5000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 5000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 5000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instareposts",
          "platform": "instagram",
          "unit": "repost",
          "aliases": [
            "instagram/repost",
            "instagram/reposts"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/instasaves": {
      "get": {
        "operationId": "solana_instasaves",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Post Saves via x402 on Solana",
        "description": "Saves on a single Instagram post or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instasaves",
          "platform": "instagram",
          "unit": "save",
          "aliases": [
            "instagram/save",
            "instagram/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_instasaves_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Post Saves via x402 on Solana",
        "description": "Saves on a single Instagram post or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instasaves",
          "platform": "instagram",
          "unit": "save",
          "aliases": [
            "instagram/save",
            "instagram/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/instafollowers": {
      "get": {
        "operationId": "solana_instafollowers",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Followers via x402 on Solana",
        "description": "New followers for an Instagram account.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instafollowers",
          "platform": "instagram",
          "unit": "follower",
          "aliases": [
            "instagram/follower",
            "instagram/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_instafollowers_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Followers via x402 on Solana",
        "description": "New followers for an Instagram account.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instafollowers",
          "platform": "instagram",
          "unit": "follower",
          "aliases": [
            "instagram/follower",
            "instagram/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/tiktoklikes": {
      "get": {
        "operationId": "solana_tiktoklikes",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Likes via x402 on Solana",
        "description": "Likes on a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktoklikes",
          "platform": "tiktok",
          "unit": "like",
          "aliases": [
            "tiktok/like",
            "tiktok/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_tiktoklikes_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Likes via x402 on Solana",
        "description": "Likes on a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktoklikes",
          "platform": "tiktok",
          "unit": "like",
          "aliases": [
            "tiktok/like",
            "tiktok/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/tiktokcomments": {
      "get": {
        "operationId": "solana_tiktokcomments",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Comments via x402 on Solana",
        "description": "Comments written under a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokcomments",
          "platform": "tiktok",
          "unit": "comment",
          "aliases": [
            "tiktok/comment",
            "tiktok/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_tiktokcomments_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Comments via x402 on Solana",
        "description": "Comments written under a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokcomments",
          "platform": "tiktok",
          "unit": "comment",
          "aliases": [
            "tiktok/comment",
            "tiktok/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/tiktokviews": {
      "get": {
        "operationId": "solana_tiktokviews",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Views via x402 on Solana",
        "description": "Views on a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.002 per view. Amount range 100 to 1000000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.002,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 1000000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 1000000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 1000000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokviews",
          "platform": "tiktok",
          "unit": "view",
          "aliases": [
            "tiktok/view",
            "tiktok/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_tiktokviews_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Views via x402 on Solana",
        "description": "Views on a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.002 per view. Amount range 100 to 1000000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.002,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 1000000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 1000000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 1000000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokviews",
          "platform": "tiktok",
          "unit": "view",
          "aliases": [
            "tiktok/view",
            "tiktok/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/tiktokshares": {
      "get": {
        "operationId": "solana_tiktokshares",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Shares via x402 on Solana",
        "description": "Shares of a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per share. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "share",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokshares",
          "platform": "tiktok",
          "unit": "share",
          "aliases": [
            "tiktok/share",
            "tiktok/shares"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_tiktokshares_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Shares via x402 on Solana",
        "description": "Shares of a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per share. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "share",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokshares",
          "platform": "tiktok",
          "unit": "share",
          "aliases": [
            "tiktok/share",
            "tiktok/shares"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/tiktoksaves": {
      "get": {
        "operationId": "solana_tiktoksaves",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Post Saves via x402 on Solana",
        "description": "Saves on a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktoksaves",
          "platform": "tiktok",
          "unit": "save",
          "aliases": [
            "tiktok/save",
            "tiktok/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_tiktoksaves_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Post Saves via x402 on Solana",
        "description": "Saves on a single TikTok video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktoksaves",
          "platform": "tiktok",
          "unit": "save",
          "aliases": [
            "tiktok/save",
            "tiktok/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/tiktokfollowers": {
      "get": {
        "operationId": "solana_tiktokfollowers",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Followers via x402 on Solana",
        "description": "New followers for a TikTok account.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokfollowers",
          "platform": "tiktok",
          "unit": "follower",
          "aliases": [
            "tiktok/follower",
            "tiktok/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_tiktokfollowers_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Followers via x402 on Solana",
        "description": "New followers for a TikTok account.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokfollowers",
          "platform": "tiktok",
          "unit": "follower",
          "aliases": [
            "tiktok/follower",
            "tiktok/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/ytlikes": {
      "get": {
        "operationId": "solana_ytlikes",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Likes via x402 on Solana",
        "description": "Likes on a single YouTube video or short.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytlikes",
          "platform": "youtube",
          "unit": "like",
          "aliases": [
            "youtube/like",
            "youtube/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_ytlikes_post",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Likes via x402 on Solana",
        "description": "Likes on a single YouTube video or short.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytlikes",
          "platform": "youtube",
          "unit": "like",
          "aliases": [
            "youtube/like",
            "youtube/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/ytcomments": {
      "get": {
        "operationId": "solana_ytcomments",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Comments via x402 on Solana",
        "description": "Comments written under a single YouTube video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.035 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytcomments",
          "platform": "youtube",
          "unit": "comment",
          "aliases": [
            "youtube/comment",
            "youtube/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_ytcomments_post",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Comments via x402 on Solana",
        "description": "Comments written under a single YouTube video.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.035 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytcomments",
          "platform": "youtube",
          "unit": "comment",
          "aliases": [
            "youtube/comment",
            "youtube/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/ytviews": {
      "get": {
        "operationId": "solana_ytviews",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Views via x402 on Solana",
        "description": "Views on a single YouTube video or short.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.004 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.004,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytviews",
          "platform": "youtube",
          "unit": "view",
          "aliases": [
            "youtube/view",
            "youtube/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_ytviews_post",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Views via x402 on Solana",
        "description": "Views on a single YouTube video or short.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.004 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.004,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytviews",
          "platform": "youtube",
          "unit": "view",
          "aliases": [
            "youtube/view",
            "youtube/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/ytsubscribers": {
      "get": {
        "operationId": "solana_ytsubscribers",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Subscribers via x402 on Solana",
        "description": "New subscribers for a YouTube channel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.035 per subscriber. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "subscriber",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/@grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytsubscribers",
          "platform": "youtube",
          "unit": "subscriber",
          "aliases": [
            "youtube/subscriber",
            "youtube/subscribers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_ytsubscribers_post",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Subscribers via x402 on Solana",
        "description": "New subscribers for a YouTube channel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.035 per subscriber. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "subscriber",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/@grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytsubscribers",
          "platform": "youtube",
          "unit": "subscriber",
          "aliases": [
            "youtube/subscriber",
            "youtube/subscribers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/tgmembers": {
      "get": {
        "operationId": "solana_tgmembers",
        "tags": [
          "Telegram"
        ],
        "summary": "Telegram Channel Members via x402 on Solana",
        "description": "New members for a Telegram channel or group.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per member. Amount range 10 to 50000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "member",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "join",
            "in": "query",
            "required": true,
            "description": "Public t.me link for the channel or group.",
            "schema": {
              "type": "string",
              "examples": [
                "https://t.me/grovfun"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 50000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 50000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "join": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 50000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tgmembers",
          "platform": "telegram",
          "unit": "member",
          "aliases": [
            "telegram/member",
            "telegram/members"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_tgmembers_post",
        "tags": [
          "Telegram"
        ],
        "summary": "Telegram Channel Members via x402 on Solana",
        "description": "New members for a Telegram channel or group.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per member. Amount range 10 to 50000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "member",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "join",
            "in": "query",
            "required": true,
            "description": "Public t.me link for the channel or group.",
            "schema": {
              "type": "string",
              "examples": [
                "https://t.me/grovfun"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 50000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 50000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "join": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 50000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tgmembers",
          "platform": "telegram",
          "unit": "member",
          "aliases": [
            "telegram/member",
            "telegram/members"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/spotifyplays": {
      "get": {
        "operationId": "solana_spotifyplays",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Plays via x402 on Solana",
        "description": "Plays on a single Spotify track.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.004 per play. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.004,
            "unit": "play",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the track or album.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifyplays",
          "platform": "spotify",
          "unit": "play",
          "aliases": [
            "spotify/play",
            "spotify/plays"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_spotifyplays_post",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Plays via x402 on Solana",
        "description": "Plays on a single Spotify track.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.004 per play. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.004,
            "unit": "play",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the track or album.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifyplays",
          "platform": "spotify",
          "unit": "play",
          "aliases": [
            "spotify/play",
            "spotify/plays"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/spotifysaves": {
      "get": {
        "operationId": "solana_spotifysaves",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Saves via x402 on Solana",
        "description": "Saves on a single Spotify track or album.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.02 per save. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.02,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the track or album.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifysaves",
          "platform": "spotify",
          "unit": "save",
          "aliases": [
            "spotify/save",
            "spotify/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_spotifysaves_post",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Saves via x402 on Solana",
        "description": "Saves on a single Spotify track or album.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.02 per save. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.02,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the track or album.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifysaves",
          "platform": "spotify",
          "unit": "save",
          "aliases": [
            "spotify/save",
            "spotify/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/spotifyfollowers": {
      "get": {
        "operationId": "solana_spotifyfollowers",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Followers via x402 on Solana",
        "description": "New followers for a Spotify artist profile.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.02 per follower. Amount range 10 to 50000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.02,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the artist profile.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/artist/6eUKZXaKkcviH0Ku9w2n3V"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 50000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 50000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 50000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifyfollowers",
          "platform": "spotify",
          "unit": "follower",
          "aliases": [
            "spotify/follower",
            "spotify/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_spotifyfollowers_post",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Followers via x402 on Solana",
        "description": "New followers for a Spotify artist profile.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.02 per follower. Amount range 10 to 50000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.02,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the artist profile.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/artist/6eUKZXaKkcviH0Ku9w2n3V"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 50000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 50000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 50000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifyfollowers",
          "platform": "spotify",
          "unit": "follower",
          "aliases": [
            "spotify/follower",
            "spotify/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/spotifylisteners": {
      "get": {
        "operationId": "solana_spotifylisteners",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Monthly Listeners via x402 on Solana",
        "description": "Monthly listeners for a Spotify artist profile.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.01 per listener. Amount range 100 to 100000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.01,
            "unit": "listener",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the artist profile.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/artist/6eUKZXaKkcviH0Ku9w2n3V"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 100000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 100000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 100000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifylisteners",
          "platform": "spotify",
          "unit": "listener",
          "aliases": [
            "spotify/listener",
            "spotify/listeners",
            "spotify/monthly-listener",
            "spotify/monthly-listeners"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_spotifylisteners_post",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Monthly Listeners via x402 on Solana",
        "description": "Monthly listeners for a Spotify artist profile.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.01 per listener. Amount range 100 to 100000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.01,
            "unit": "listener",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the artist profile.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/artist/6eUKZXaKkcviH0Ku9w2n3V"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 100000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 100000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 100000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifylisteners",
          "platform": "spotify",
          "unit": "listener",
          "aliases": [
            "spotify/listener",
            "spotify/listeners",
            "spotify/monthly-listener",
            "spotify/monthly-listeners"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/fblikes": {
      "get": {
        "operationId": "solana_fblikes",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Likes via x402 on Solana",
        "description": "Likes on a single Facebook post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fblikes",
          "platform": "facebook",
          "unit": "like",
          "aliases": [
            "facebook/like",
            "facebook/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_fblikes_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Likes via x402 on Solana",
        "description": "Likes on a single Facebook post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fblikes",
          "platform": "facebook",
          "unit": "like",
          "aliases": [
            "facebook/like",
            "facebook/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/fbcomments": {
      "get": {
        "operationId": "solana_fbcomments",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Comments via x402 on Solana",
        "description": "Comments written under a single Facebook post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbcomments",
          "platform": "facebook",
          "unit": "comment",
          "aliases": [
            "facebook/comment",
            "facebook/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_fbcomments_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Comments via x402 on Solana",
        "description": "Comments written under a single Facebook post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbcomments",
          "platform": "facebook",
          "unit": "comment",
          "aliases": [
            "facebook/comment",
            "facebook/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/fbviews": {
      "get": {
        "operationId": "solana_fbviews",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Views via x402 on Solana",
        "description": "Views on a single Facebook video or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/videos/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbviews",
          "platform": "facebook",
          "unit": "view",
          "aliases": [
            "facebook/view",
            "facebook/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_fbviews_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Views via x402 on Solana",
        "description": "Views on a single Facebook video or reel.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/videos/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbviews",
          "platform": "facebook",
          "unit": "view",
          "aliases": [
            "facebook/view",
            "facebook/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/fbshares": {
      "get": {
        "operationId": "solana_fbshares",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Shares via x402 on Solana",
        "description": "Shares of a single Facebook post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per share. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "share",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbshares",
          "platform": "facebook",
          "unit": "share",
          "aliases": [
            "facebook/share",
            "facebook/shares"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_fbshares_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Shares via x402 on Solana",
        "description": "Shares of a single Facebook post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per share. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "share",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbshares",
          "platform": "facebook",
          "unit": "share",
          "aliases": [
            "facebook/share",
            "facebook/shares"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/fbsaves": {
      "get": {
        "operationId": "solana_fbsaves",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Post Saves via x402 on Solana",
        "description": "Saves on a single Facebook post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbsaves",
          "platform": "facebook",
          "unit": "save",
          "aliases": [
            "facebook/save",
            "facebook/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_fbsaves_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Post Saves via x402 on Solana",
        "description": "Saves on a single Facebook post.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbsaves",
          "platform": "facebook",
          "unit": "save",
          "aliases": [
            "facebook/save",
            "facebook/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/fbfollowers": {
      "get": {
        "operationId": "solana_fbfollowers",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Followers via x402 on Solana",
        "description": "New followers for a Facebook page or profile.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbfollowers",
          "platform": "facebook",
          "unit": "follower",
          "aliases": [
            "facebook/follower",
            "facebook/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_fbfollowers_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Followers via x402 on Solana",
        "description": "New followers for a Facebook page or profile.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbfollowers",
          "platform": "facebook",
          "unit": "follower",
          "aliases": [
            "facebook/follower",
            "facebook/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/solana/fbgroupmembers": {
      "get": {
        "operationId": "solana_fbgroupmembers",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Group Members via x402 on Solana",
        "description": "New members for a Facebook group.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.035 per member. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "member",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the Facebook group.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/groups/grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbgroupmembers",
          "platform": "facebook",
          "unit": "member",
          "aliases": [
            "facebook/group-member",
            "facebook/group-members"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "solana_fbgroupmembers_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Group Members via x402 on Solana",
        "description": "New members for a Facebook group.\n\nPayment flow:\n1. Call without a payment header to receive `402 Payment Required`.\n2. Sign the requirement from the live challenge.\n3. Call the same URL again with the `PAYMENT-SIGNATURE` header.\n\nPrice: $0.035 per member. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "x402",
            {
              "x402": {
                "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
                "scheme": "exact",
                "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "paymentHeader": "PAYMENT-SIGNATURE"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "member",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "PAYMENT-SIGNATURE"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/PaymentSignature"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the Facebook group.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/groups/grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/PaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbgroupmembers",
          "platform": "facebook",
          "unit": "member",
          "aliases": [
            "facebook/group-member",
            "facebook/group-members"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/xlikes": {
      "get": {
        "operationId": "mpp_xlikes",
        "tags": [
          "X"
        ],
        "summary": "X Likes via MPP on Tempo",
        "description": "Likes on a single X post. People open the post and like it.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xlikes",
          "platform": "x",
          "unit": "like",
          "aliases": [
            "twitter/like",
            "twitter/likes",
            "x/like",
            "x/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_xlikes_post",
        "tags": [
          "X"
        ],
        "summary": "X Likes via MPP on Tempo",
        "description": "Likes on a single X post. People open the post and like it.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xlikes",
          "platform": "x",
          "unit": "like",
          "aliases": [
            "twitter/like",
            "twitter/likes",
            "x/like",
            "x/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/xreposts": {
      "get": {
        "operationId": "mpp_xreposts",
        "tags": [
          "X"
        ],
        "summary": "X Reposts via MPP on Tempo",
        "description": "Reposts of a single X post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per repost. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "repost",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xreposts",
          "platform": "x",
          "unit": "repost",
          "aliases": [
            "twitter/repost",
            "twitter/reposts",
            "x/repost",
            "x/reposts"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_xreposts_post",
        "tags": [
          "X"
        ],
        "summary": "X Reposts via MPP on Tempo",
        "description": "Reposts of a single X post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per repost. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "repost",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xreposts",
          "platform": "x",
          "unit": "repost",
          "aliases": [
            "twitter/repost",
            "twitter/reposts",
            "x/repost",
            "x/reposts"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/xcomments": {
      "get": {
        "operationId": "mpp_xcomments",
        "tags": [
          "X"
        ],
        "summary": "X Comments via MPP on Tempo",
        "description": "Replies written under a single X post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xcomments",
          "platform": "x",
          "unit": "comment",
          "aliases": [
            "twitter/comment",
            "twitter/comments",
            "x/comment",
            "x/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_xcomments_post",
        "tags": [
          "X"
        ],
        "summary": "X Comments via MPP on Tempo",
        "description": "Replies written under a single X post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xcomments",
          "platform": "x",
          "unit": "comment",
          "aliases": [
            "twitter/comment",
            "twitter/comments",
            "x/comment",
            "x/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/xviews": {
      "get": {
        "operationId": "mpp_xviews",
        "tags": [
          "X"
        ],
        "summary": "X Views via MPP on Tempo",
        "description": "Views on a single X post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xviews",
          "platform": "x",
          "unit": "view",
          "aliases": [
            "twitter/view",
            "twitter/views",
            "x/view",
            "x/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_xviews_post",
        "tags": [
          "X"
        ],
        "summary": "X Views via MPP on Tempo",
        "description": "Views on a single X post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xviews",
          "platform": "x",
          "unit": "view",
          "aliases": [
            "twitter/view",
            "twitter/views",
            "x/view",
            "x/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/xfollowers": {
      "get": {
        "operationId": "mpp_xfollowers",
        "tags": [
          "X"
        ],
        "summary": "X Followers via MPP on Tempo",
        "description": "New followers for an X account.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xfollowers",
          "platform": "x",
          "unit": "follower",
          "aliases": [
            "twitter/follower",
            "twitter/followers",
            "x/follower",
            "x/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_xfollowers_post",
        "tags": [
          "X"
        ],
        "summary": "X Followers via MPP on Tempo",
        "description": "New followers for an X account.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xfollowers",
          "platform": "x",
          "unit": "follower",
          "aliases": [
            "twitter/follower",
            "twitter/followers",
            "x/follower",
            "x/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/instalikes": {
      "get": {
        "operationId": "mpp_instalikes",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Likes via MPP on Tempo",
        "description": "Likes on a single Instagram post or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instalikes",
          "platform": "instagram",
          "unit": "like",
          "aliases": [
            "instagram/like",
            "instagram/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_instalikes_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Likes via MPP on Tempo",
        "description": "Likes on a single Instagram post or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instalikes",
          "platform": "instagram",
          "unit": "like",
          "aliases": [
            "instagram/like",
            "instagram/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/instacomments": {
      "get": {
        "operationId": "mpp_instacomments",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Comments via MPP on Tempo",
        "description": "Comments written under a single Instagram post or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instacomments",
          "platform": "instagram",
          "unit": "comment",
          "aliases": [
            "instagram/comment",
            "instagram/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_instacomments_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Comments via MPP on Tempo",
        "description": "Comments written under a single Instagram post or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instacomments",
          "platform": "instagram",
          "unit": "comment",
          "aliases": [
            "instagram/comment",
            "instagram/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/instaviews": {
      "get": {
        "operationId": "mpp_instaviews",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Views via MPP on Tempo",
        "description": "Views on a single Instagram reel or video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/reel/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instaviews",
          "platform": "instagram",
          "unit": "view",
          "aliases": [
            "instagram/view",
            "instagram/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_instaviews_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Views via MPP on Tempo",
        "description": "Views on a single Instagram reel or video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/reel/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instaviews",
          "platform": "instagram",
          "unit": "view",
          "aliases": [
            "instagram/view",
            "instagram/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/instareposts": {
      "get": {
        "operationId": "mpp_instareposts",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Reposts via MPP on Tempo",
        "description": "Reposts of a single Instagram post or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per repost. Amount range 10 to 5000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "repost",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 5000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 5000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 5000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instareposts",
          "platform": "instagram",
          "unit": "repost",
          "aliases": [
            "instagram/repost",
            "instagram/reposts"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_instareposts_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Reposts via MPP on Tempo",
        "description": "Reposts of a single Instagram post or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per repost. Amount range 10 to 5000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "repost",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 5000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 5000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 5000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instareposts",
          "platform": "instagram",
          "unit": "repost",
          "aliases": [
            "instagram/repost",
            "instagram/reposts"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/instasaves": {
      "get": {
        "operationId": "mpp_instasaves",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Post Saves via MPP on Tempo",
        "description": "Saves on a single Instagram post or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instasaves",
          "platform": "instagram",
          "unit": "save",
          "aliases": [
            "instagram/save",
            "instagram/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_instasaves_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Post Saves via MPP on Tempo",
        "description": "Saves on a single Instagram post or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instasaves",
          "platform": "instagram",
          "unit": "save",
          "aliases": [
            "instagram/save",
            "instagram/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/instafollowers": {
      "get": {
        "operationId": "mpp_instafollowers",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Followers via MPP on Tempo",
        "description": "New followers for an Instagram account.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instafollowers",
          "platform": "instagram",
          "unit": "follower",
          "aliases": [
            "instagram/follower",
            "instagram/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_instafollowers_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Followers via MPP on Tempo",
        "description": "New followers for an Instagram account.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instafollowers",
          "platform": "instagram",
          "unit": "follower",
          "aliases": [
            "instagram/follower",
            "instagram/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/tiktoklikes": {
      "get": {
        "operationId": "mpp_tiktoklikes",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Likes via MPP on Tempo",
        "description": "Likes on a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktoklikes",
          "platform": "tiktok",
          "unit": "like",
          "aliases": [
            "tiktok/like",
            "tiktok/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_tiktoklikes_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Likes via MPP on Tempo",
        "description": "Likes on a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktoklikes",
          "platform": "tiktok",
          "unit": "like",
          "aliases": [
            "tiktok/like",
            "tiktok/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/tiktokcomments": {
      "get": {
        "operationId": "mpp_tiktokcomments",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Comments via MPP on Tempo",
        "description": "Comments written under a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokcomments",
          "platform": "tiktok",
          "unit": "comment",
          "aliases": [
            "tiktok/comment",
            "tiktok/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_tiktokcomments_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Comments via MPP on Tempo",
        "description": "Comments written under a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokcomments",
          "platform": "tiktok",
          "unit": "comment",
          "aliases": [
            "tiktok/comment",
            "tiktok/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/tiktokviews": {
      "get": {
        "operationId": "mpp_tiktokviews",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Views via MPP on Tempo",
        "description": "Views on a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.002 per view. Amount range 100 to 1000000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.002,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 1000000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 1000000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 1000000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokviews",
          "platform": "tiktok",
          "unit": "view",
          "aliases": [
            "tiktok/view",
            "tiktok/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_tiktokviews_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Views via MPP on Tempo",
        "description": "Views on a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.002 per view. Amount range 100 to 1000000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.002,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 1000000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 1000000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 1000000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokviews",
          "platform": "tiktok",
          "unit": "view",
          "aliases": [
            "tiktok/view",
            "tiktok/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/tiktokshares": {
      "get": {
        "operationId": "mpp_tiktokshares",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Shares via MPP on Tempo",
        "description": "Shares of a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per share. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "share",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokshares",
          "platform": "tiktok",
          "unit": "share",
          "aliases": [
            "tiktok/share",
            "tiktok/shares"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_tiktokshares_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Shares via MPP on Tempo",
        "description": "Shares of a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per share. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "share",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokshares",
          "platform": "tiktok",
          "unit": "share",
          "aliases": [
            "tiktok/share",
            "tiktok/shares"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/tiktoksaves": {
      "get": {
        "operationId": "mpp_tiktoksaves",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Post Saves via MPP on Tempo",
        "description": "Saves on a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktoksaves",
          "platform": "tiktok",
          "unit": "save",
          "aliases": [
            "tiktok/save",
            "tiktok/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_tiktoksaves_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Post Saves via MPP on Tempo",
        "description": "Saves on a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktoksaves",
          "platform": "tiktok",
          "unit": "save",
          "aliases": [
            "tiktok/save",
            "tiktok/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/tiktokfollowers": {
      "get": {
        "operationId": "mpp_tiktokfollowers",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Followers via MPP on Tempo",
        "description": "New followers for a TikTok account.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokfollowers",
          "platform": "tiktok",
          "unit": "follower",
          "aliases": [
            "tiktok/follower",
            "tiktok/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_tiktokfollowers_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Followers via MPP on Tempo",
        "description": "New followers for a TikTok account.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokfollowers",
          "platform": "tiktok",
          "unit": "follower",
          "aliases": [
            "tiktok/follower",
            "tiktok/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/ytlikes": {
      "get": {
        "operationId": "mpp_ytlikes",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Likes via MPP on Tempo",
        "description": "Likes on a single YouTube video or short.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytlikes",
          "platform": "youtube",
          "unit": "like",
          "aliases": [
            "youtube/like",
            "youtube/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_ytlikes_post",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Likes via MPP on Tempo",
        "description": "Likes on a single YouTube video or short.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytlikes",
          "platform": "youtube",
          "unit": "like",
          "aliases": [
            "youtube/like",
            "youtube/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/ytcomments": {
      "get": {
        "operationId": "mpp_ytcomments",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Comments via MPP on Tempo",
        "description": "Comments written under a single YouTube video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.035 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytcomments",
          "platform": "youtube",
          "unit": "comment",
          "aliases": [
            "youtube/comment",
            "youtube/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_ytcomments_post",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Comments via MPP on Tempo",
        "description": "Comments written under a single YouTube video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.035 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytcomments",
          "platform": "youtube",
          "unit": "comment",
          "aliases": [
            "youtube/comment",
            "youtube/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/ytviews": {
      "get": {
        "operationId": "mpp_ytviews",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Views via MPP on Tempo",
        "description": "Views on a single YouTube video or short.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.004 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.004,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytviews",
          "platform": "youtube",
          "unit": "view",
          "aliases": [
            "youtube/view",
            "youtube/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_ytviews_post",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Views via MPP on Tempo",
        "description": "Views on a single YouTube video or short.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.004 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.004,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytviews",
          "platform": "youtube",
          "unit": "view",
          "aliases": [
            "youtube/view",
            "youtube/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/ytsubscribers": {
      "get": {
        "operationId": "mpp_ytsubscribers",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Subscribers via MPP on Tempo",
        "description": "New subscribers for a YouTube channel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.035 per subscriber. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "subscriber",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/@grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytsubscribers",
          "platform": "youtube",
          "unit": "subscriber",
          "aliases": [
            "youtube/subscriber",
            "youtube/subscribers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_ytsubscribers_post",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Subscribers via MPP on Tempo",
        "description": "New subscribers for a YouTube channel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.035 per subscriber. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "subscriber",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/@grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytsubscribers",
          "platform": "youtube",
          "unit": "subscriber",
          "aliases": [
            "youtube/subscriber",
            "youtube/subscribers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/tgmembers": {
      "get": {
        "operationId": "mpp_tgmembers",
        "tags": [
          "Telegram"
        ],
        "summary": "Telegram Channel Members via MPP on Tempo",
        "description": "New members for a Telegram channel or group.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per member. Amount range 10 to 50000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "member",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "join",
            "in": "query",
            "required": true,
            "description": "Public t.me link for the channel or group.",
            "schema": {
              "type": "string",
              "examples": [
                "https://t.me/grovfun"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 50000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 50000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "join": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 50000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tgmembers",
          "platform": "telegram",
          "unit": "member",
          "aliases": [
            "telegram/member",
            "telegram/members"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_tgmembers_post",
        "tags": [
          "Telegram"
        ],
        "summary": "Telegram Channel Members via MPP on Tempo",
        "description": "New members for a Telegram channel or group.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per member. Amount range 10 to 50000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "member",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "join",
            "in": "query",
            "required": true,
            "description": "Public t.me link for the channel or group.",
            "schema": {
              "type": "string",
              "examples": [
                "https://t.me/grovfun"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 50000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 50000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "join": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 50000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tgmembers",
          "platform": "telegram",
          "unit": "member",
          "aliases": [
            "telegram/member",
            "telegram/members"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/spotifyplays": {
      "get": {
        "operationId": "mpp_spotifyplays",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Plays via MPP on Tempo",
        "description": "Plays on a single Spotify track.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.004 per play. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.004,
            "unit": "play",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the track or album.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifyplays",
          "platform": "spotify",
          "unit": "play",
          "aliases": [
            "spotify/play",
            "spotify/plays"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_spotifyplays_post",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Plays via MPP on Tempo",
        "description": "Plays on a single Spotify track.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.004 per play. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.004,
            "unit": "play",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the track or album.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifyplays",
          "platform": "spotify",
          "unit": "play",
          "aliases": [
            "spotify/play",
            "spotify/plays"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/spotifysaves": {
      "get": {
        "operationId": "mpp_spotifysaves",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Saves via MPP on Tempo",
        "description": "Saves on a single Spotify track or album.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.02 per save. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.02,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the track or album.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifysaves",
          "platform": "spotify",
          "unit": "save",
          "aliases": [
            "spotify/save",
            "spotify/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_spotifysaves_post",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Saves via MPP on Tempo",
        "description": "Saves on a single Spotify track or album.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.02 per save. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.02,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the track or album.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifysaves",
          "platform": "spotify",
          "unit": "save",
          "aliases": [
            "spotify/save",
            "spotify/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/spotifyfollowers": {
      "get": {
        "operationId": "mpp_spotifyfollowers",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Followers via MPP on Tempo",
        "description": "New followers for a Spotify artist profile.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.02 per follower. Amount range 10 to 50000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.02,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the artist profile.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/artist/6eUKZXaKkcviH0Ku9w2n3V"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 50000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 50000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 50000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifyfollowers",
          "platform": "spotify",
          "unit": "follower",
          "aliases": [
            "spotify/follower",
            "spotify/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_spotifyfollowers_post",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Followers via MPP on Tempo",
        "description": "New followers for a Spotify artist profile.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.02 per follower. Amount range 10 to 50000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.02,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the artist profile.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/artist/6eUKZXaKkcviH0Ku9w2n3V"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 50000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 50000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 50000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifyfollowers",
          "platform": "spotify",
          "unit": "follower",
          "aliases": [
            "spotify/follower",
            "spotify/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/spotifylisteners": {
      "get": {
        "operationId": "mpp_spotifylisteners",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Monthly Listeners via MPP on Tempo",
        "description": "Monthly listeners for a Spotify artist profile.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.01 per listener. Amount range 100 to 100000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.01,
            "unit": "listener",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the artist profile.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/artist/6eUKZXaKkcviH0Ku9w2n3V"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 100000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 100000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 100000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifylisteners",
          "platform": "spotify",
          "unit": "listener",
          "aliases": [
            "spotify/listener",
            "spotify/listeners",
            "spotify/monthly-listener",
            "spotify/monthly-listeners"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_spotifylisteners_post",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Monthly Listeners via MPP on Tempo",
        "description": "Monthly listeners for a Spotify artist profile.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.01 per listener. Amount range 100 to 100000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.01,
            "unit": "listener",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the artist profile.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/artist/6eUKZXaKkcviH0Ku9w2n3V"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 100000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 100000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 100000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifylisteners",
          "platform": "spotify",
          "unit": "listener",
          "aliases": [
            "spotify/listener",
            "spotify/listeners",
            "spotify/monthly-listener",
            "spotify/monthly-listeners"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/fblikes": {
      "get": {
        "operationId": "mpp_fblikes",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Likes via MPP on Tempo",
        "description": "Likes on a single Facebook post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fblikes",
          "platform": "facebook",
          "unit": "like",
          "aliases": [
            "facebook/like",
            "facebook/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_fblikes_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Likes via MPP on Tempo",
        "description": "Likes on a single Facebook post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fblikes",
          "platform": "facebook",
          "unit": "like",
          "aliases": [
            "facebook/like",
            "facebook/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/fbcomments": {
      "get": {
        "operationId": "mpp_fbcomments",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Comments via MPP on Tempo",
        "description": "Comments written under a single Facebook post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbcomments",
          "platform": "facebook",
          "unit": "comment",
          "aliases": [
            "facebook/comment",
            "facebook/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_fbcomments_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Comments via MPP on Tempo",
        "description": "Comments written under a single Facebook post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbcomments",
          "platform": "facebook",
          "unit": "comment",
          "aliases": [
            "facebook/comment",
            "facebook/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/fbviews": {
      "get": {
        "operationId": "mpp_fbviews",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Views via MPP on Tempo",
        "description": "Views on a single Facebook video or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/videos/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbviews",
          "platform": "facebook",
          "unit": "view",
          "aliases": [
            "facebook/view",
            "facebook/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_fbviews_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Views via MPP on Tempo",
        "description": "Views on a single Facebook video or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/videos/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbviews",
          "platform": "facebook",
          "unit": "view",
          "aliases": [
            "facebook/view",
            "facebook/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/fbshares": {
      "get": {
        "operationId": "mpp_fbshares",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Shares via MPP on Tempo",
        "description": "Shares of a single Facebook post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per share. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "share",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbshares",
          "platform": "facebook",
          "unit": "share",
          "aliases": [
            "facebook/share",
            "facebook/shares"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_fbshares_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Shares via MPP on Tempo",
        "description": "Shares of a single Facebook post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per share. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "share",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbshares",
          "platform": "facebook",
          "unit": "share",
          "aliases": [
            "facebook/share",
            "facebook/shares"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/fbsaves": {
      "get": {
        "operationId": "mpp_fbsaves",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Post Saves via MPP on Tempo",
        "description": "Saves on a single Facebook post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbsaves",
          "platform": "facebook",
          "unit": "save",
          "aliases": [
            "facebook/save",
            "facebook/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_fbsaves_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Post Saves via MPP on Tempo",
        "description": "Saves on a single Facebook post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbsaves",
          "platform": "facebook",
          "unit": "save",
          "aliases": [
            "facebook/save",
            "facebook/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/fbfollowers": {
      "get": {
        "operationId": "mpp_fbfollowers",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Followers via MPP on Tempo",
        "description": "New followers for a Facebook page or profile.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbfollowers",
          "platform": "facebook",
          "unit": "follower",
          "aliases": [
            "facebook/follower",
            "facebook/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_fbfollowers_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Followers via MPP on Tempo",
        "description": "New followers for a Facebook page or profile.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbfollowers",
          "platform": "facebook",
          "unit": "follower",
          "aliases": [
            "facebook/follower",
            "facebook/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp/fbgroupmembers": {
      "get": {
        "operationId": "mpp_fbgroupmembers",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Group Members via MPP on Tempo",
        "description": "New members for a Facebook group.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.035 per member. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "member",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the Facebook group.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/groups/grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbgroupmembers",
          "platform": "facebook",
          "unit": "member",
          "aliases": [
            "facebook/group-member",
            "facebook/group-members"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_fbgroupmembers_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Group Members via MPP on Tempo",
        "description": "New members for a Facebook group.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.035 per member. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "tempo",
                "intent": "pay-per-request",
                "currency": "0x20C000000000000000000000b9537d11c60E8b50"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "member",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the Facebook group.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/groups/grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbgroupmembers",
          "platform": "facebook",
          "unit": "member",
          "aliases": [
            "facebook/group-member",
            "facebook/group-members"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/xlikes": {
      "get": {
        "operationId": "mpp_solana_xlikes",
        "tags": [
          "X"
        ],
        "summary": "X Likes via MPP on Solana",
        "description": "Likes on a single X post. People open the post and like it.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xlikes",
          "platform": "x",
          "unit": "like",
          "aliases": [
            "twitter/like",
            "twitter/likes",
            "x/like",
            "x/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_xlikes_post",
        "tags": [
          "X"
        ],
        "summary": "X Likes via MPP on Solana",
        "description": "Likes on a single X post. People open the post and like it.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xlikes",
          "platform": "x",
          "unit": "like",
          "aliases": [
            "twitter/like",
            "twitter/likes",
            "x/like",
            "x/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/xreposts": {
      "get": {
        "operationId": "mpp_solana_xreposts",
        "tags": [
          "X"
        ],
        "summary": "X Reposts via MPP on Solana",
        "description": "Reposts of a single X post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per repost. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "repost",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xreposts",
          "platform": "x",
          "unit": "repost",
          "aliases": [
            "twitter/repost",
            "twitter/reposts",
            "x/repost",
            "x/reposts"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_xreposts_post",
        "tags": [
          "X"
        ],
        "summary": "X Reposts via MPP on Solana",
        "description": "Reposts of a single X post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per repost. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "repost",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xreposts",
          "platform": "x",
          "unit": "repost",
          "aliases": [
            "twitter/repost",
            "twitter/reposts",
            "x/repost",
            "x/reposts"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/xcomments": {
      "get": {
        "operationId": "mpp_solana_xcomments",
        "tags": [
          "X"
        ],
        "summary": "X Comments via MPP on Solana",
        "description": "Replies written under a single X post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xcomments",
          "platform": "x",
          "unit": "comment",
          "aliases": [
            "twitter/comment",
            "twitter/comments",
            "x/comment",
            "x/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_xcomments_post",
        "tags": [
          "X"
        ],
        "summary": "X Comments via MPP on Solana",
        "description": "Replies written under a single X post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xcomments",
          "platform": "x",
          "unit": "comment",
          "aliases": [
            "twitter/comment",
            "twitter/comments",
            "x/comment",
            "x/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/xviews": {
      "get": {
        "operationId": "mpp_solana_xviews",
        "tags": [
          "X"
        ],
        "summary": "X Views via MPP on Solana",
        "description": "Views on a single X post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xviews",
          "platform": "x",
          "unit": "view",
          "aliases": [
            "twitter/view",
            "twitter/views",
            "x/view",
            "x/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_xviews_post",
        "tags": [
          "X"
        ],
        "summary": "X Views via MPP on Solana",
        "description": "Views on a single X post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on x.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://x.com/grov/status/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xviews",
          "platform": "x",
          "unit": "view",
          "aliases": [
            "twitter/view",
            "twitter/views",
            "x/view",
            "x/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/xfollowers": {
      "get": {
        "operationId": "mpp_solana_xfollowers",
        "tags": [
          "X"
        ],
        "summary": "X Followers via MPP on Solana",
        "description": "New followers for an X account.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xfollowers",
          "platform": "x",
          "unit": "follower",
          "aliases": [
            "twitter/follower",
            "twitter/followers",
            "x/follower",
            "x/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_xfollowers_post",
        "tags": [
          "X"
        ],
        "summary": "X Followers via MPP on Solana",
        "description": "New followers for an X account.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "xfollowers",
          "platform": "x",
          "unit": "follower",
          "aliases": [
            "twitter/follower",
            "twitter/followers",
            "x/follower",
            "x/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/instalikes": {
      "get": {
        "operationId": "mpp_solana_instalikes",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Likes via MPP on Solana",
        "description": "Likes on a single Instagram post or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instalikes",
          "platform": "instagram",
          "unit": "like",
          "aliases": [
            "instagram/like",
            "instagram/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_instalikes_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Likes via MPP on Solana",
        "description": "Likes on a single Instagram post or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instalikes",
          "platform": "instagram",
          "unit": "like",
          "aliases": [
            "instagram/like",
            "instagram/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/instacomments": {
      "get": {
        "operationId": "mpp_solana_instacomments",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Comments via MPP on Solana",
        "description": "Comments written under a single Instagram post or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instacomments",
          "platform": "instagram",
          "unit": "comment",
          "aliases": [
            "instagram/comment",
            "instagram/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_instacomments_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Comments via MPP on Solana",
        "description": "Comments written under a single Instagram post or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instacomments",
          "platform": "instagram",
          "unit": "comment",
          "aliases": [
            "instagram/comment",
            "instagram/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/instaviews": {
      "get": {
        "operationId": "mpp_solana_instaviews",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Views via MPP on Solana",
        "description": "Views on a single Instagram reel or video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/reel/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instaviews",
          "platform": "instagram",
          "unit": "view",
          "aliases": [
            "instagram/view",
            "instagram/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_instaviews_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Views via MPP on Solana",
        "description": "Views on a single Instagram reel or video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/reel/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instaviews",
          "platform": "instagram",
          "unit": "view",
          "aliases": [
            "instagram/view",
            "instagram/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/instareposts": {
      "get": {
        "operationId": "mpp_solana_instareposts",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Reposts via MPP on Solana",
        "description": "Reposts of a single Instagram post or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per repost. Amount range 10 to 5000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "repost",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 5000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 5000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 5000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instareposts",
          "platform": "instagram",
          "unit": "repost",
          "aliases": [
            "instagram/repost",
            "instagram/reposts"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_instareposts_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Reposts via MPP on Solana",
        "description": "Reposts of a single Instagram post or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per repost. Amount range 10 to 5000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "repost",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 5000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 5000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 5000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instareposts",
          "platform": "instagram",
          "unit": "repost",
          "aliases": [
            "instagram/repost",
            "instagram/reposts"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/instasaves": {
      "get": {
        "operationId": "mpp_solana_instasaves",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Post Saves via MPP on Solana",
        "description": "Saves on a single Instagram post or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instasaves",
          "platform": "instagram",
          "unit": "save",
          "aliases": [
            "instagram/save",
            "instagram/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_instasaves_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Post Saves via MPP on Solana",
        "description": "Saves on a single Instagram post or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on instagram.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.instagram.com/p/Cxxxxxxxxxx/"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instasaves",
          "platform": "instagram",
          "unit": "save",
          "aliases": [
            "instagram/save",
            "instagram/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/instafollowers": {
      "get": {
        "operationId": "mpp_solana_instafollowers",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Followers via MPP on Solana",
        "description": "New followers for an Instagram account.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instafollowers",
          "platform": "instagram",
          "unit": "follower",
          "aliases": [
            "instagram/follower",
            "instagram/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_instafollowers_post",
        "tags": [
          "Instagram"
        ],
        "summary": "Instagram Followers via MPP on Solana",
        "description": "New followers for an Instagram account.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "instafollowers",
          "platform": "instagram",
          "unit": "follower",
          "aliases": [
            "instagram/follower",
            "instagram/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/tiktoklikes": {
      "get": {
        "operationId": "mpp_solana_tiktoklikes",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Likes via MPP on Solana",
        "description": "Likes on a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktoklikes",
          "platform": "tiktok",
          "unit": "like",
          "aliases": [
            "tiktok/like",
            "tiktok/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_tiktoklikes_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Likes via MPP on Solana",
        "description": "Likes on a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktoklikes",
          "platform": "tiktok",
          "unit": "like",
          "aliases": [
            "tiktok/like",
            "tiktok/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/tiktokcomments": {
      "get": {
        "operationId": "mpp_solana_tiktokcomments",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Comments via MPP on Solana",
        "description": "Comments written under a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokcomments",
          "platform": "tiktok",
          "unit": "comment",
          "aliases": [
            "tiktok/comment",
            "tiktok/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_tiktokcomments_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Comments via MPP on Solana",
        "description": "Comments written under a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokcomments",
          "platform": "tiktok",
          "unit": "comment",
          "aliases": [
            "tiktok/comment",
            "tiktok/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/tiktokviews": {
      "get": {
        "operationId": "mpp_solana_tiktokviews",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Views via MPP on Solana",
        "description": "Views on a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.002 per view. Amount range 100 to 1000000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.002,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 1000000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 1000000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 1000000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokviews",
          "platform": "tiktok",
          "unit": "view",
          "aliases": [
            "tiktok/view",
            "tiktok/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_tiktokviews_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Views via MPP on Solana",
        "description": "Views on a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.002 per view. Amount range 100 to 1000000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.002,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 1000000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 1000000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 1000000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokviews",
          "platform": "tiktok",
          "unit": "view",
          "aliases": [
            "tiktok/view",
            "tiktok/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/tiktokshares": {
      "get": {
        "operationId": "mpp_solana_tiktokshares",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Shares via MPP on Solana",
        "description": "Shares of a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per share. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "share",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokshares",
          "platform": "tiktok",
          "unit": "share",
          "aliases": [
            "tiktok/share",
            "tiktok/shares"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_tiktokshares_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Shares via MPP on Solana",
        "description": "Shares of a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per share. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "share",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokshares",
          "platform": "tiktok",
          "unit": "share",
          "aliases": [
            "tiktok/share",
            "tiktok/shares"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/tiktoksaves": {
      "get": {
        "operationId": "mpp_solana_tiktoksaves",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Post Saves via MPP on Solana",
        "description": "Saves on a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktoksaves",
          "platform": "tiktok",
          "unit": "save",
          "aliases": [
            "tiktok/save",
            "tiktok/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_tiktoksaves_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Post Saves via MPP on Solana",
        "description": "Saves on a single TikTok video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on tiktok.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.tiktok.com/@grov/video/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktoksaves",
          "platform": "tiktok",
          "unit": "save",
          "aliases": [
            "tiktok/save",
            "tiktok/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/tiktokfollowers": {
      "get": {
        "operationId": "mpp_solana_tiktokfollowers",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Followers via MPP on Solana",
        "description": "New followers for a TikTok account.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokfollowers",
          "platform": "tiktok",
          "unit": "follower",
          "aliases": [
            "tiktok/follower",
            "tiktok/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_tiktokfollowers_post",
        "tags": [
          "TikTok"
        ],
        "summary": "TikTok Followers via MPP on Solana",
        "description": "New followers for a TikTok account.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tiktokfollowers",
          "platform": "tiktok",
          "unit": "follower",
          "aliases": [
            "tiktok/follower",
            "tiktok/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/ytlikes": {
      "get": {
        "operationId": "mpp_solana_ytlikes",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Likes via MPP on Solana",
        "description": "Likes on a single YouTube video or short.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytlikes",
          "platform": "youtube",
          "unit": "like",
          "aliases": [
            "youtube/like",
            "youtube/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_ytlikes_post",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Likes via MPP on Solana",
        "description": "Likes on a single YouTube video or short.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytlikes",
          "platform": "youtube",
          "unit": "like",
          "aliases": [
            "youtube/like",
            "youtube/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/ytcomments": {
      "get": {
        "operationId": "mpp_solana_ytcomments",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Comments via MPP on Solana",
        "description": "Comments written under a single YouTube video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.035 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytcomments",
          "platform": "youtube",
          "unit": "comment",
          "aliases": [
            "youtube/comment",
            "youtube/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_ytcomments_post",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Comments via MPP on Solana",
        "description": "Comments written under a single YouTube video.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.035 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytcomments",
          "platform": "youtube",
          "unit": "comment",
          "aliases": [
            "youtube/comment",
            "youtube/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/ytviews": {
      "get": {
        "operationId": "mpp_solana_ytviews",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Views via MPP on Solana",
        "description": "Views on a single YouTube video or short.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.004 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.004,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytviews",
          "platform": "youtube",
          "unit": "view",
          "aliases": [
            "youtube/view",
            "youtube/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_ytviews_post",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Views via MPP on Solana",
        "description": "Views on a single YouTube video or short.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.004 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.004,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on youtube.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytviews",
          "platform": "youtube",
          "unit": "view",
          "aliases": [
            "youtube/view",
            "youtube/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/ytsubscribers": {
      "get": {
        "operationId": "mpp_solana_ytsubscribers",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Subscribers via MPP on Solana",
        "description": "New subscribers for a YouTube channel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.035 per subscriber. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "subscriber",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/@grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytsubscribers",
          "platform": "youtube",
          "unit": "subscriber",
          "aliases": [
            "youtube/subscriber",
            "youtube/subscribers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_ytsubscribers_post",
        "tags": [
          "YouTube"
        ],
        "summary": "YouTube Subscribers via MPP on Solana",
        "description": "New subscribers for a YouTube channel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.035 per subscriber. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "subscriber",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.youtube.com/@grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "ytsubscribers",
          "platform": "youtube",
          "unit": "subscriber",
          "aliases": [
            "youtube/subscriber",
            "youtube/subscribers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/tgmembers": {
      "get": {
        "operationId": "mpp_solana_tgmembers",
        "tags": [
          "Telegram"
        ],
        "summary": "Telegram Channel Members via MPP on Solana",
        "description": "New members for a Telegram channel or group.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per member. Amount range 10 to 50000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "member",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "join",
            "in": "query",
            "required": true,
            "description": "Public t.me link for the channel or group.",
            "schema": {
              "type": "string",
              "examples": [
                "https://t.me/grovfun"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 50000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 50000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "join": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 50000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tgmembers",
          "platform": "telegram",
          "unit": "member",
          "aliases": [
            "telegram/member",
            "telegram/members"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_tgmembers_post",
        "tags": [
          "Telegram"
        ],
        "summary": "Telegram Channel Members via MPP on Solana",
        "description": "New members for a Telegram channel or group.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per member. Amount range 10 to 50000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "member",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "join",
            "in": "query",
            "required": true,
            "description": "Public t.me link for the channel or group.",
            "schema": {
              "type": "string",
              "examples": [
                "https://t.me/grovfun"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 50000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 50000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "join": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 50000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "tgmembers",
          "platform": "telegram",
          "unit": "member",
          "aliases": [
            "telegram/member",
            "telegram/members"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/spotifyplays": {
      "get": {
        "operationId": "mpp_solana_spotifyplays",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Plays via MPP on Solana",
        "description": "Plays on a single Spotify track.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.004 per play. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.004,
            "unit": "play",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the track or album.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifyplays",
          "platform": "spotify",
          "unit": "play",
          "aliases": [
            "spotify/play",
            "spotify/plays"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_spotifyplays_post",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Plays via MPP on Solana",
        "description": "Plays on a single Spotify track.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.004 per play. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.004,
            "unit": "play",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the track or album.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifyplays",
          "platform": "spotify",
          "unit": "play",
          "aliases": [
            "spotify/play",
            "spotify/plays"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/spotifysaves": {
      "get": {
        "operationId": "mpp_solana_spotifysaves",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Saves via MPP on Solana",
        "description": "Saves on a single Spotify track or album.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.02 per save. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.02,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the track or album.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifysaves",
          "platform": "spotify",
          "unit": "save",
          "aliases": [
            "spotify/save",
            "spotify/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_spotifysaves_post",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Saves via MPP on Solana",
        "description": "Saves on a single Spotify track or album.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.02 per save. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.02,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the track or album.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifysaves",
          "platform": "spotify",
          "unit": "save",
          "aliases": [
            "spotify/save",
            "spotify/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/spotifyfollowers": {
      "get": {
        "operationId": "mpp_solana_spotifyfollowers",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Followers via MPP on Solana",
        "description": "New followers for a Spotify artist profile.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.02 per follower. Amount range 10 to 50000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.02,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the artist profile.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/artist/6eUKZXaKkcviH0Ku9w2n3V"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 50000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 50000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 50000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifyfollowers",
          "platform": "spotify",
          "unit": "follower",
          "aliases": [
            "spotify/follower",
            "spotify/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_spotifyfollowers_post",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Followers via MPP on Solana",
        "description": "New followers for a Spotify artist profile.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.02 per follower. Amount range 10 to 50000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.02,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the artist profile.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/artist/6eUKZXaKkcviH0Ku9w2n3V"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 50000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 50000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 50000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifyfollowers",
          "platform": "spotify",
          "unit": "follower",
          "aliases": [
            "spotify/follower",
            "spotify/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/spotifylisteners": {
      "get": {
        "operationId": "mpp_solana_spotifylisteners",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Monthly Listeners via MPP on Solana",
        "description": "Monthly listeners for a Spotify artist profile.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.01 per listener. Amount range 100 to 100000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.01,
            "unit": "listener",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the artist profile.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/artist/6eUKZXaKkcviH0Ku9w2n3V"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 100000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 100000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 100000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifylisteners",
          "platform": "spotify",
          "unit": "listener",
          "aliases": [
            "spotify/listener",
            "spotify/listeners",
            "spotify/monthly-listener",
            "spotify/monthly-listeners"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_spotifylisteners_post",
        "tags": [
          "Spotify"
        ],
        "summary": "Spotify Monthly Listeners via MPP on Solana",
        "description": "Monthly listeners for a Spotify artist profile.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.01 per listener. Amount range 100 to 100000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.01,
            "unit": "listener",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "open.spotify.com link to the artist profile.",
            "schema": {
              "type": "string",
              "examples": [
                "https://open.spotify.com/artist/6eUKZXaKkcviH0Ku9w2n3V"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 100000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 100000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 100000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "spotifylisteners",
          "platform": "spotify",
          "unit": "listener",
          "aliases": [
            "spotify/listener",
            "spotify/listeners",
            "spotify/monthly-listener",
            "spotify/monthly-listeners"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/fblikes": {
      "get": {
        "operationId": "mpp_solana_fblikes",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Likes via MPP on Solana",
        "description": "Likes on a single Facebook post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fblikes",
          "platform": "facebook",
          "unit": "like",
          "aliases": [
            "facebook/like",
            "facebook/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_fblikes_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Likes via MPP on Solana",
        "description": "Likes on a single Facebook post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per like. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "like",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fblikes",
          "platform": "facebook",
          "unit": "like",
          "aliases": [
            "facebook/like",
            "facebook/likes"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/fbcomments": {
      "get": {
        "operationId": "mpp_solana_fbcomments",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Comments via MPP on Solana",
        "description": "Comments written under a single Facebook post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbcomments",
          "platform": "facebook",
          "unit": "comment",
          "aliases": [
            "facebook/comment",
            "facebook/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_fbcomments_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Comments via MPP on Solana",
        "description": "Comments written under a single Facebook post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per comment. Amount range 5 to 1000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "comment",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 5 and 1000.",
            "schema": {
              "type": "integer",
              "minimum": 5,
              "maximum": 1000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 5,
                    "maximum": 1000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbcomments",
          "platform": "facebook",
          "unit": "comment",
          "aliases": [
            "facebook/comment",
            "facebook/comments"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/fbviews": {
      "get": {
        "operationId": "mpp_solana_fbviews",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Views via MPP on Solana",
        "description": "Views on a single Facebook video or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/videos/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbviews",
          "platform": "facebook",
          "unit": "view",
          "aliases": [
            "facebook/view",
            "facebook/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_fbviews_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Views via MPP on Solana",
        "description": "Views on a single Facebook video or reel.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.003 per view. Amount range 100 to 500000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.003,
            "unit": "view",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/videos/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 100 and 500000.",
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 500000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 100,
                    "maximum": 500000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbviews",
          "platform": "facebook",
          "unit": "view",
          "aliases": [
            "facebook/view",
            "facebook/views"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/fbshares": {
      "get": {
        "operationId": "mpp_solana_fbshares",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Shares via MPP on Solana",
        "description": "Shares of a single Facebook post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per share. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "share",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbshares",
          "platform": "facebook",
          "unit": "share",
          "aliases": [
            "facebook/share",
            "facebook/shares"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_fbshares_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Shares via MPP on Solana",
        "description": "Shares of a single Facebook post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per share. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "share",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbshares",
          "platform": "facebook",
          "unit": "share",
          "aliases": [
            "facebook/share",
            "facebook/shares"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/fbsaves": {
      "get": {
        "operationId": "mpp_solana_fbsaves",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Post Saves via MPP on Solana",
        "description": "Saves on a single Facebook post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbsaves",
          "platform": "facebook",
          "unit": "save",
          "aliases": [
            "facebook/save",
            "facebook/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_fbsaves_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Post Saves via MPP on Solana",
        "description": "Saves on a single Facebook post.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.025 per save. Amount range 10 to 10000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.025,
            "unit": "save",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the post on facebook.com.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/grov/posts/1234567890"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 10000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 10000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 10000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbsaves",
          "platform": "facebook",
          "unit": "save",
          "aliases": [
            "facebook/save",
            "facebook/saves"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/fbfollowers": {
      "get": {
        "operationId": "mpp_solana_fbfollowers",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Followers via MPP on Solana",
        "description": "New followers for a Facebook page or profile.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbfollowers",
          "platform": "facebook",
          "unit": "follower",
          "aliases": [
            "facebook/follower",
            "facebook/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_fbfollowers_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Followers via MPP on Solana",
        "description": "New followers for a Facebook page or profile.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.03 per follower. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.03,
            "unit": "follower",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "description": "Account handle, with or without the leading @, or the full profile link.",
            "schema": {
              "type": "string",
              "examples": [
                "grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbfollowers",
          "platform": "facebook",
          "unit": "follower",
          "aliases": [
            "facebook/follower",
            "facebook/followers"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    },
    "/api/mpp-solana/fbgroupmembers": {
      "get": {
        "operationId": "mpp_solana_fbgroupmembers",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Group Members via MPP on Solana",
        "description": "New members for a Facebook group.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.035 per member. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "member",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the Facebook group.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/groups/grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbgroupmembers",
          "platform": "facebook",
          "unit": "member",
          "aliases": [
            "facebook/group-member",
            "facebook/group-members"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      },
      "post": {
        "operationId": "mpp_solana_fbgroupmembers_post",
        "tags": [
          "Facebook"
        ],
        "summary": "Facebook Group Members via MPP on Solana",
        "description": "New members for a Facebook group.\n\nPayment flow:\n1. Call without `Authorization` to receive `402 Payment Required`.\n2. Read the challenge from the `WWW-Authenticate: Payment` header.\n3. Build a credential and call the same URL again with `Authorization: Payment ...`.\n4. The success response carries a `Payment-Receipt` header.\n\nPrice: $0.035 per member. Amount range 10 to 20000.\n\nThe live challenge is the source of truth for the exact amount.",
        "x-payment-info": {
          "protocols": [
            "mpp",
            {
              "mpp": {
                "method": "solana",
                "intent": "pay-per-request",
                "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            }
          ],
          "price": {
            "mode": "dynamic",
            "currency": "USD",
            "perUnit": 0.035,
            "unit": "member",
            "description": "The live 402 challenge is authoritative for the exact amount."
          },
          "pricingMode": "quote",
          "challengeSource": "runtime",
          "paymentHeader": "Authorization: Payment"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationPayment"
          },
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Direct link to the Facebook group.",
            "schema": {
              "type": "string",
              "examples": [
                "https://www.facebook.com/groups/grov"
              ]
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "Units to buy. Between 10 and 20000.",
            "schema": {
              "type": "integer",
              "minimum": 10,
              "maximum": 20000
            }
          },
          {
            "$ref": "#/components/parameters/Action"
          },
          {
            "$ref": "#/components/parameters/Secret"
          }
        ],
        "requestBody": {
          "required": false,
          "description": "Optional JSON mirror of the query parameters. Query values win on conflict.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 20000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OrderCreated"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "402": {
            "$ref": "#/components/responses/MppPaymentRequired"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          },
          "503": {
            "$ref": "#/components/responses/Unavailable"
          }
        },
        "x-catalog": {
          "service": "fbgroupmembers",
          "platform": "facebook",
          "unit": "member",
          "aliases": [
            "facebook/group-member",
            "facebook/group-members"
          ],
          "networks": [
            "base",
            "solana",
            "mpp",
            "mpp-solana"
          ]
        }
      }
    }
  },
  "components": {
    "parameters": {
      "PaymentSignature": {
        "name": "PAYMENT-SIGNATURE",
        "in": "header",
        "required": false,
        "description": "Signed x402 payment. Omit on the first call to receive the challenge.",
        "schema": {
          "type": "string"
        }
      },
      "AuthorizationPayment": {
        "name": "Authorization",
        "in": "header",
        "required": false,
        "description": "MPP credential, in the form `Payment <credential>`. Omit on the first call.",
        "schema": {
          "type": "string"
        }
      },
      "Action": {
        "name": "action",
        "in": "query",
        "required": false,
        "description": "`view` reads an existing order and requires no payment. Delivery figures are read live at the moment of the call.",
        "schema": {
          "type": "string",
          "enum": [
            "view"
          ]
        }
      },
      "Secret": {
        "name": "secret",
        "in": "query",
        "required": false,
        "description": "Bearer token returned when the order was created. Used with `action=view`.",
        "schema": {
          "type": "string"
        }
      }
    },
    "responses": {
      "OrderCreated": {
        "description": "Order accepted. Save the secret, it is the only way to read this order.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Order"
            }
          }
        }
      },
      "PaymentRequired": {
        "description": "Sign the requirement and call the same URL again with `PAYMENT-SIGNATURE`.",
        "headers": {
          "Payment-Required": {
            "description": "Base64 encoded payment requirement.",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PaymentRequired"
            }
          }
        }
      },
      "MppPaymentRequired": {
        "description": "Build a credential from the challenge and call the same URL again.",
        "headers": {
          "WWW-Authenticate": {
            "description": "Payment challenge.",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            }
          }
        }
      },
      "BadRequest": {
        "description": "The request could not be priced. The body explains what to change.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "NotFound": {
        "description": "No such service or network.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "TooManyRequests": {
        "description": "Too many free status reads.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "ServerError": {
        "description": "Unexpected failure. No payment was taken.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Unavailable": {
        "description": "That network or service is not accepting requests right now.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      }
    },
    "schemas": {
      "Order": {
        "type": "object",
        "required": [
          "ok",
          "paid",
          "orderId",
          "secret",
          "statusUrl"
        ],
        "properties": {
          "ok": {
            "type": "boolean",
            "const": true
          },
          "paid": {
            "type": "boolean",
            "const": true
          },
          "rail": {
            "type": "string"
          },
          "orderId": {
            "type": "string"
          },
          "jobId": {
            "type": "string",
            "description": "Alias of orderId."
          },
          "secret": {
            "type": "string",
            "description": "Bearer token. Save it."
          },
          "statusUrl": {
            "type": "string",
            "format": "uri"
          },
          "service": {
            "type": "string"
          },
          "platform": {
            "type": "string"
          },
          "amount": {
            "type": "integer"
          },
          "unit": {
            "type": "string"
          },
          "target": {
            "type": "string"
          },
          "chargedUsd": {
            "type": "number"
          },
          "status": {
            "type": "string",
            "enum": [
              "queued",
              "in_progress",
              "partial",
              "completed",
              "canceled",
              "failed"
            ]
          },
          "note": {
            "type": "string"
          }
        }
      },
      "OrderStatus": {
        "type": "object",
        "properties": {
          "ok": {
            "type": "boolean",
            "const": true
          },
          "orderId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "amount": {
            "type": "integer"
          },
          "delivered": {
            "type": [
              "integer",
              "null"
            ]
          },
          "remaining": {
            "type": [
              "integer",
              "null"
            ]
          },
          "startCount": {
            "type": [
              "integer",
              "null"
            ]
          },
          "completedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        }
      },
      "PaymentRequired": {
        "type": "object",
        "required": [
          "x402Version",
          "accepts"
        ],
        "properties": {
          "x402Version": {
            "type": "integer",
            "examples": [
              2
            ]
          },
          "accepts": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "object",
              "properties": {
                "scheme": {
                  "type": "string"
                },
                "network": {
                  "type": "string"
                },
                "maxAmountRequired": {
                  "type": "string"
                },
                "payTo": {
                  "type": "string"
                },
                "asset": {
                  "type": "string"
                },
                "maxTimeoutSeconds": {
                  "type": "integer"
                }
              }
            }
          },
          "resource": {
            "type": [
              "string",
              "object"
            ]
          }
        }
      },
      "Problem": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "integer",
            "examples": [
              402
            ]
          },
          "detail": {
            "type": "string"
          }
        }
      },
      "Error": {
        "type": "object",
        "required": [
          "ok",
          "message",
          "errorCode"
        ],
        "properties": {
          "ok": {
            "type": "boolean",
            "const": false
          },
          "message": {
            "type": "string"
          },
          "errorCode": {
            "type": "string"
          },
          "details": {
            "type": "object",
            "additionalProperties": true
          }
        }
      }
    }
  },
  "externalDocs": {
    "description": "Docs",
    "url": "https://grov.fun/docs"
  }
}