{
  "service": "shopify",
  "displayName": "Shopify REST Admin",
  "categories": [
    "Marketing",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "Admin API access token",
      "placeholder": "shpat_...",
      "description": "Shopify Admin API access token sent with the X-Shopify-Access-Token header. Create or install a custom app and copy its Admin API access token.",
      "extraFields": [
        {
          "key": "shopDomain",
          "label": "Shop domain",
          "inputType": "text",
          "required": true,
          "secret": false,
          "placeholder": "acme.myshopify.com",
          "description": "The store's myshopify.com domain, such as acme.myshopify.com. A Shopify admin URL for the same shop is also accepted."
        }
      ]
    }
  ],
  "homepageUrl": "https://www.shopify.com",
  "actions": [
    {
      "id": "shopify.count_articles",
      "service": "shopify",
      "name": "count_articles",
      "description": "Count Shopify REST articles in a blog with optional filters.",
      "requiredScopes": [
        "content"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "blog_id": {
            "type": "integer",
            "minimum": 1,
            "description": "The Shopify blog ID."
          },
          "published_status": {
            "type": "string",
            "enum": [
              "published",
              "unpublished",
              "any"
            ],
            "description": "The Shopify publication status filter."
          },
          "created_at_min": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "created_at_max": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "updated_at_min": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "updated_at_max": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "published_at_min": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "published_at_max": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          }
        },
        "additionalProperties": false,
        "required": [
          "blog_id"
        ],
        "description": "The input payload for counting Shopify REST articles."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "minimum": 0,
            "description": "The count returned by Shopify REST Admin."
          }
        },
        "additionalProperties": false,
        "description": "The Shopify REST article count response."
      }
    },
    {
      "id": "shopify.count_blogs",
      "service": "shopify",
      "name": "count_blogs",
      "description": "Count Shopify REST blogs in the connected shop.",
      "requiredScopes": [
        "content"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required to count Shopify REST blogs."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "minimum": 0,
            "description": "The count returned by Shopify REST Admin."
          }
        },
        "additionalProperties": false,
        "description": "The Shopify REST blog count response."
      }
    },
    {
      "id": "shopify.count_pages",
      "service": "shopify",
      "name": "count_pages",
      "description": "Count Shopify REST pages with optional filters.",
      "requiredScopes": [
        "content"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "Count pages with this exact Shopify page title."
          },
          "handle": {
            "type": "string",
            "minLength": 1,
            "description": "Count pages with this Shopify page handle."
          },
          "published_status": {
            "type": "string",
            "enum": [
              "published",
              "unpublished",
              "any"
            ],
            "description": "The Shopify publication status filter."
          },
          "since_id": {
            "type": "integer",
            "minimum": 1,
            "description": "Return records with Shopify numeric IDs greater than this value."
          },
          "created_at_min": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "created_at_max": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "updated_at_min": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "updated_at_max": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "published_at_min": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "published_at_max": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for counting Shopify REST pages."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "minimum": 0,
            "description": "The count returned by Shopify REST Admin."
          }
        },
        "additionalProperties": false,
        "description": "The Shopify REST page count response."
      }
    },
    {
      "id": "shopify.get_article",
      "service": "shopify",
      "name": "get_article",
      "description": "Retrieve one Shopify REST article by blog ID and article ID.",
      "requiredScopes": [
        "content"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "blog_id": {
            "type": "integer",
            "minimum": 1,
            "description": "The Shopify blog ID."
          },
          "article_id": {
            "type": "integer",
            "minimum": 1,
            "description": "The Shopify article ID."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for retrieving one Shopify REST article."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "article": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "minimum": 1,
                "description": "The Shopify article ID."
              },
              "blog_id": {
                "type": "integer",
                "minimum": 1,
                "description": "The Shopify blog ID that owns the article."
              },
              "title": {
                "type": "string",
                "description": "The article title."
              },
              "handle": {
                "type": "string",
                "description": "The article handle."
              },
              "body_html": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The article body HTML returned by Shopify."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "summary_html": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The article summary HTML returned by Shopify."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "author": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The article author returned by Shopify."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "tags": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The comma-separated article tags returned by Shopify."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "published_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The article publication timestamp, or null when hidden."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "template_suffix": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Liquid template suffix used by the article."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "created_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The article creation timestamp returned by Shopify."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "updated_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The article update timestamp returned by Shopify."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "image": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "The article image object returned by Shopify."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "admin_graphql_api_id": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Shopify Admin GraphQL ID for the article."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "required": [
              "id",
              "blog_id",
              "title",
              "handle",
              "body_html",
              "summary_html",
              "author",
              "tags",
              "published_at",
              "template_suffix",
              "created_at",
              "updated_at",
              "admin_graphql_api_id"
            ],
            "description": "A Shopify REST article object."
          }
        },
        "additionalProperties": false,
        "description": "The Shopify REST article response."
      }
    },
    {
      "id": "shopify.get_blog",
      "service": "shopify",
      "name": "get_blog",
      "description": "Retrieve one Shopify REST blog by numeric ID.",
      "requiredScopes": [
        "content"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "blog_id": {
            "type": "integer",
            "minimum": 1,
            "description": "The Shopify blog ID."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for retrieving one Shopify REST blog."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "blog": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "minimum": 1,
                "description": "The Shopify blog ID."
              },
              "title": {
                "type": "string",
                "description": "The blog title."
              },
              "handle": {
                "type": "string",
                "description": "The blog handle."
              },
              "commentable": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The blog comment policy returned by Shopify."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "tags": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The comma-separated tags from the 200 most recent articles."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "template_suffix": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Liquid template suffix used by the blog."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "feedburner": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The FeedBurner identifier when configured."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "feedburner_location": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The FeedBurner URL when configured."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "created_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The blog creation timestamp returned by Shopify."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "updated_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The blog update timestamp returned by Shopify."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "admin_graphql_api_id": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Shopify Admin GraphQL ID for the blog."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A Shopify REST blog object."
          }
        },
        "additionalProperties": false,
        "description": "The Shopify REST blog response."
      }
    },
    {
      "id": "shopify.get_page",
      "service": "shopify",
      "name": "get_page",
      "description": "Retrieve one Shopify REST page by numeric ID.",
      "requiredScopes": [
        "content"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page_id": {
            "type": "integer",
            "minimum": 1,
            "description": "The Shopify page ID."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for retrieving one Shopify REST page."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "minimum": 1,
                "description": "The Shopify page ID."
              },
              "title": {
                "type": "string",
                "description": "The page title."
              },
              "handle": {
                "type": "string",
                "description": "The page handle."
              },
              "body_html": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The page body HTML returned by Shopify."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "author": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The page author returned by Shopify."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "published_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The page publication timestamp, or null when hidden."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "template_suffix": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Liquid template suffix used by the page."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "created_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The page creation timestamp returned by Shopify."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "updated_at": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The page update timestamp returned by Shopify."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "admin_graphql_api_id": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Shopify Admin GraphQL ID for the page."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A Shopify REST page object."
          }
        },
        "additionalProperties": false,
        "description": "The Shopify REST page response."
      }
    },
    {
      "id": "shopify.get_shop",
      "service": "shopify",
      "name": "get_shop",
      "description": "Retrieve the connected Shopify REST Admin shop configuration.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required to retrieve the Shopify shop."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "shop": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "minimum": 1,
                "description": "The Shopify shop ID."
              },
              "name": {
                "type": "string",
                "description": "The shop display name."
              },
              "myshopify_domain": {
                "type": "string",
                "description": "The canonical myshopify.com domain for the shop."
              }
            },
            "additionalProperties": true,
            "description": "A Shopify REST shop object."
          }
        },
        "additionalProperties": false,
        "description": "The Shopify REST shop response."
      }
    },
    {
      "id": "shopify.list_article_tags",
      "service": "shopify",
      "name": "list_article_tags",
      "description": "List Shopify REST article tags across all articles in the connected shop.",
      "requiredScopes": [
        "content"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 250,
            "description": "The maximum number of records to return. Shopify REST supports values from 1 to 250."
          },
          "popular": {
            "type": "boolean",
            "description": "Whether Shopify should order tags by popularity."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Shopify REST article tags."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "One article tag."
            },
            "description": "Article tags returned by Shopify."
          }
        },
        "additionalProperties": false,
        "description": "The Shopify REST article tags response."
      }
    },
    {
      "id": "shopify.list_articles",
      "service": "shopify",
      "name": "list_articles",
      "description": "List Shopify REST articles in a blog with optional filters and pagination.",
      "requiredScopes": [
        "content"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "blog_id": {
            "type": "integer",
            "minimum": 1,
            "description": "The Shopify blog ID."
          },
          "author": {
            "type": "string",
            "minLength": 1,
            "description": "Filter articles by author."
          },
          "handle": {
            "type": "string",
            "minLength": 1,
            "description": "Retrieve an article with this Shopify article handle."
          },
          "tag": {
            "type": "string",
            "minLength": 1,
            "description": "Filter articles by tag."
          },
          "published_status": {
            "type": "string",
            "enum": [
              "published",
              "unpublished",
              "any"
            ],
            "description": "The Shopify publication status filter."
          },
          "since_id": {
            "type": "integer",
            "minimum": 1,
            "description": "Return records with Shopify numeric IDs greater than this value."
          },
          "created_at_min": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "created_at_max": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "updated_at_min": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "updated_at_max": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "published_at_min": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "published_at_max": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 250,
            "description": "The maximum number of records to return. Shopify REST supports values from 1 to 250."
          },
          "page_info": {
            "type": "string",
            "minLength": 1,
            "description": "The opaque Shopify REST page_info cursor from a previous response pagination value."
          }
        },
        "additionalProperties": false,
        "required": [
          "blog_id"
        ],
        "description": "The input payload for listing Shopify REST articles."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "articles": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "The Shopify article ID."
                },
                "blog_id": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "The Shopify blog ID that owns the article."
                },
                "title": {
                  "type": "string",
                  "description": "The article title."
                },
                "handle": {
                  "type": "string",
                  "description": "The article handle."
                },
                "body_html": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The article body HTML returned by Shopify."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "summary_html": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The article summary HTML returned by Shopify."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "author": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The article author returned by Shopify."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "tags": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The comma-separated article tags returned by Shopify."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "published_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The article publication timestamp, or null when hidden."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "template_suffix": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The Liquid template suffix used by the article."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "created_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The article creation timestamp returned by Shopify."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "updated_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The article update timestamp returned by Shopify."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "image": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {},
                      "additionalProperties": true,
                      "description": "The article image object returned by Shopify."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "admin_graphql_api_id": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The Shopify Admin GraphQL ID for the article."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": true,
              "required": [
                "id",
                "blog_id",
                "title",
                "handle",
                "body_html",
                "summary_html",
                "author",
                "tags",
                "published_at",
                "template_suffix",
                "created_at",
                "updated_at",
                "admin_graphql_api_id"
              ],
              "description": "A Shopify REST article object."
            },
            "description": "Articles returned by Shopify."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "nextPageInfo": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The page_info cursor for the next page when Shopify returned one."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "previousPageInfo": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The page_info cursor for the previous page when Shopify returned one."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Shopify REST Link-header pagination cursors."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Shopify REST Admin."
          }
        },
        "additionalProperties": false,
        "description": "The Shopify REST article list response."
      }
    },
    {
      "id": "shopify.list_blogs",
      "service": "shopify",
      "name": "list_blogs",
      "description": "List Shopify REST blogs with optional handle filtering and pagination.",
      "requiredScopes": [
        "content"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "handle": {
            "type": "string",
            "minLength": 1,
            "description": "Filter blogs by Shopify blog handle."
          },
          "since_id": {
            "type": "integer",
            "minimum": 1,
            "description": "Return records with Shopify numeric IDs greater than this value."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 250,
            "description": "The maximum number of records to return. Shopify REST supports values from 1 to 250."
          },
          "page_info": {
            "type": "string",
            "minLength": 1,
            "description": "The opaque Shopify REST page_info cursor from a previous response pagination value."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Shopify REST blogs."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "blogs": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "The Shopify blog ID."
                },
                "title": {
                  "type": "string",
                  "description": "The blog title."
                },
                "handle": {
                  "type": "string",
                  "description": "The blog handle."
                },
                "commentable": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The blog comment policy returned by Shopify."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "tags": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The comma-separated tags from the 200 most recent articles."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "template_suffix": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The Liquid template suffix used by the blog."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "feedburner": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The FeedBurner identifier when configured."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "feedburner_location": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The FeedBurner URL when configured."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "created_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The blog creation timestamp returned by Shopify."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "updated_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The blog update timestamp returned by Shopify."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "admin_graphql_api_id": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The Shopify Admin GraphQL ID for the blog."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": true,
              "description": "A Shopify REST blog object."
            },
            "description": "Blogs returned by Shopify."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "nextPageInfo": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The page_info cursor for the next page when Shopify returned one."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "previousPageInfo": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The page_info cursor for the previous page when Shopify returned one."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Shopify REST Link-header pagination cursors."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Shopify REST Admin."
          }
        },
        "additionalProperties": false,
        "description": "The Shopify REST blog list response."
      }
    },
    {
      "id": "shopify.list_pages",
      "service": "shopify",
      "name": "list_pages",
      "description": "List Shopify REST pages with optional filters and pagination.",
      "requiredScopes": [
        "content"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "Retrieve pages with this exact Shopify page title."
          },
          "handle": {
            "type": "string",
            "minLength": 1,
            "description": "Retrieve pages with this Shopify page handle."
          },
          "published_status": {
            "type": "string",
            "enum": [
              "published",
              "unpublished",
              "any"
            ],
            "description": "The Shopify publication status filter."
          },
          "since_id": {
            "type": "integer",
            "minimum": 1,
            "description": "Return records with Shopify numeric IDs greater than this value."
          },
          "created_at_min": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "created_at_max": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "updated_at_min": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "updated_at_max": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "published_at_min": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "published_at_max": {
            "type": "string",
            "minLength": 1,
            "description": "An ISO 8601 date-time filter accepted by Shopify REST Admin."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 250,
            "description": "The maximum number of records to return. Shopify REST supports values from 1 to 250."
          },
          "page_info": {
            "type": "string",
            "minLength": 1,
            "description": "The opaque Shopify REST page_info cursor from a previous response pagination value."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Shopify REST pages."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "pages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "The Shopify page ID."
                },
                "title": {
                  "type": "string",
                  "description": "The page title."
                },
                "handle": {
                  "type": "string",
                  "description": "The page handle."
                },
                "body_html": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The page body HTML returned by Shopify."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "author": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The page author returned by Shopify."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "published_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The page publication timestamp, or null when hidden."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "template_suffix": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The Liquid template suffix used by the page."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "created_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The page creation timestamp returned by Shopify."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "updated_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The page update timestamp returned by Shopify."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "admin_graphql_api_id": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The Shopify Admin GraphQL ID for the page."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": true,
              "description": "A Shopify REST page object."
            },
            "description": "Pages returned by Shopify."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "nextPageInfo": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The page_info cursor for the next page when Shopify returned one."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "previousPageInfo": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The page_info cursor for the previous page when Shopify returned one."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Shopify REST Link-header pagination cursors."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Shopify REST Admin."
          }
        },
        "additionalProperties": false,
        "description": "The Shopify REST page list response."
      }
    }
  ]
}
