{
  "service": "shortpixel",
  "displayName": "ShortPixel",
  "categories": [
    "Media",
    "Developer Tools"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "SHORTPIXEL_API_KEY",
      "description": "ShortPixel API key used in documented query-string and path-based endpoints. You can find your API key in the ShortPixel dashboard or signup email: https://shortpixel.com/knowledge-base/article/can-i-use-shortpixel-on-a-different-site-and-how-do-i-get-more-credits/."
    }
  ],
  "homepageUrl": "https://shortpixel.com",
  "actions": [
    {
      "id": "shortpixel.add_domain",
      "service": "shortpixel",
      "name": "add_domain",
      "description": "Add and associate a domain with the current ShortPixel account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "minLength": 1,
            "description": "The domain name managed in ShortPixel CDN endpoints.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for adding a ShortPixel domain."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "description": "The status code returned by ShortPixel."
              },
              "message": {
                "type": "string",
                "description": "The human-readable status message returned by ShortPixel."
              }
            },
            "additionalProperties": false,
            "description": "The status object returned by ShortPixel."
          },
          "domain": {
            "anyOf": [
              {
                "type": "string",
                "description": "The domain echoed by ShortPixel when present."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw ShortPixel payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "status",
          "raw"
        ],
        "description": "The normalized response returned by ShortPixel domain management actions."
      }
    },
    {
      "id": "shortpixel.get_domain_cdn_usage",
      "service": "shortpixel",
      "name": "get_domain_cdn_usage",
      "description": "Read CDN usage and quota details for one ShortPixel-associated domain.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "minLength": 1,
            "description": "The domain name managed in ShortPixel CDN endpoints.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for reading ShortPixel domain CDN usage."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "email": {
            "anyOf": [
              {
                "type": "string",
                "description": "The account email returned by ShortPixel when present."
              },
              {
                "type": "null"
              }
            ]
          },
          "apiQuota": {
            "anyOf": [
              {
                "type": "number",
                "description": "The monthly API quota reported by ShortPixel."
              },
              {
                "type": "null"
              }
            ]
          },
          "apiQuotaOneTime": {
            "anyOf": [
              {
                "type": "number",
                "description": "The one-time API quota reported by ShortPixel."
              },
              {
                "type": "null"
              }
            ]
          },
          "daysToReset": {
            "anyOf": [
              {
                "type": "number",
                "description": "The number of days until quota reset."
              },
              {
                "type": "null"
              }
            ]
          },
          "isSubaccount": {
            "anyOf": [
              {
                "type": "boolean",
                "description": "Whether the account is a subaccount."
              },
              {
                "type": "null"
              }
            ]
          },
          "isAlias": {
            "anyOf": [
              {
                "type": "boolean",
                "description": "Whether the account is an alias account."
              },
              {
                "type": "null"
              }
            ]
          },
          "remainingCdnTraffic": {
            "anyOf": [
              {
                "type": "number",
                "description": "The remaining CDN traffic quota for the domain."
              },
              {
                "type": "null"
              }
            ]
          },
          "usedCdnTraffic": {
            "anyOf": [
              {
                "type": "number",
                "description": "The used CDN traffic quota for the domain."
              },
              {
                "type": "null"
              }
            ]
          },
          "freeApiCalls": {
            "anyOf": [
              {
                "type": "number",
                "description": "The free API calls reported by ShortPixel."
              },
              {
                "type": "null"
              }
            ]
          },
          "paidApiCalls": {
            "anyOf": [
              {
                "type": "number",
                "description": "The paid API calls reported by ShortPixel."
              },
              {
                "type": "null"
              }
            ]
          },
          "paidApiCallsOneTime": {
            "anyOf": [
              {
                "type": "number",
                "description": "The paid one-time API calls reported by ShortPixel."
              },
              {
                "type": "null"
              }
            ]
          },
          "cdnQuota": {
            "anyOf": [
              {
                "type": "number",
                "description": "The total CDN quota reported by ShortPixel."
              },
              {
                "type": "null"
              }
            ]
          },
          "unlimited": {
            "anyOf": [
              {
                "type": "boolean",
                "description": "Whether the account has unlimited usage enabled."
              },
              {
                "type": "null"
              }
            ]
          },
          "usedCdn": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "traffic": {
                  "anyOf": [
                    {
                      "type": "number",
                      "description": "The traffic value reported for the day."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw daily CDN usage object returned by ShortPixel."
                }
              },
              "additionalProperties": false,
              "description": "One normalized ShortPixel CDN traffic usage entry."
            },
            "description": "The normalized per-day CDN traffic usage returned by ShortPixel."
          },
          "usedCredits": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "paid": {
                  "anyOf": [
                    {
                      "type": "number",
                      "description": "The paid credits used for the day."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "free": {
                  "anyOf": [
                    {
                      "type": "number",
                      "description": "The free credits used for the day."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "originalBytes": {
                  "anyOf": [
                    {
                      "type": "number",
                      "description": "The original byte total reported for the day."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "optimizedBytes": {
                  "anyOf": [
                    {
                      "type": "number",
                      "description": "The optimized byte total reported for the day."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw daily credit usage object returned by ShortPixel."
                }
              },
              "additionalProperties": false,
              "description": "One normalized ShortPixel credit usage entry."
            },
            "description": "The normalized per-day credit usage returned by ShortPixel."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw ShortPixel payload."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when reading ShortPixel domain CDN usage."
      }
    },
    {
      "id": "shortpixel.purge_domain_cache",
      "service": "shortpixel",
      "name": "purge_domain_cache",
      "description": "Purge the ShortPixel CDN cache for one associated domain.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "minLength": 1,
            "description": "The domain name managed in ShortPixel CDN endpoints.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for purging the ShortPixel domain cache."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "description": "The status code returned by ShortPixel."
              },
              "message": {
                "type": "string",
                "description": "The human-readable status message returned by ShortPixel."
              }
            },
            "additionalProperties": false,
            "description": "The status object returned by ShortPixel."
          },
          "domain": {
            "anyOf": [
              {
                "type": "string",
                "description": "The domain echoed by ShortPixel when present."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw ShortPixel payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "status",
          "raw"
        ],
        "description": "The normalized response returned by ShortPixel domain management actions."
      }
    },
    {
      "id": "shortpixel.purge_domain_storage",
      "service": "shortpixel",
      "name": "purge_domain_storage",
      "description": "Purge ShortPixel stored optimized variants for one associated domain.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "minLength": 1,
            "description": "The domain name managed in ShortPixel CDN endpoints.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for purging ShortPixel domain storage."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "description": "The status code returned by ShortPixel."
              },
              "message": {
                "type": "string",
                "description": "The human-readable status message returned by ShortPixel."
              }
            },
            "additionalProperties": false,
            "description": "The status object returned by ShortPixel."
          },
          "domain": {
            "anyOf": [
              {
                "type": "string",
                "description": "The domain echoed by ShortPixel when present."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw ShortPixel payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "status",
          "raw"
        ],
        "description": "The normalized response returned by ShortPixel domain management actions."
      }
    },
    {
      "id": "shortpixel.revoke_domain",
      "service": "shortpixel",
      "name": "revoke_domain",
      "description": "Remove the current ShortPixel account association from a domain.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "minLength": 1,
            "description": "The domain name managed in ShortPixel CDN endpoints.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for revoking a ShortPixel domain."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "description": "The status code returned by ShortPixel."
              },
              "message": {
                "type": "string",
                "description": "The human-readable status message returned by ShortPixel."
              }
            },
            "additionalProperties": false,
            "description": "The status object returned by ShortPixel."
          },
          "domain": {
            "anyOf": [
              {
                "type": "string",
                "description": "The domain echoed by ShortPixel when present."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw ShortPixel payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "status",
          "raw"
        ],
        "description": "The normalized response returned by ShortPixel domain management actions."
      }
    },
    {
      "id": "shortpixel.set_domain",
      "service": "shortpixel",
      "name": "set_domain",
      "description": "Associate an existing domain with the current ShortPixel account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "minLength": 1,
            "description": "The domain name managed in ShortPixel CDN endpoints.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for associating a ShortPixel domain."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "description": "The status code returned by ShortPixel."
              },
              "message": {
                "type": "string",
                "description": "The human-readable status message returned by ShortPixel."
              }
            },
            "additionalProperties": false,
            "description": "The status object returned by ShortPixel."
          },
          "domain": {
            "anyOf": [
              {
                "type": "string",
                "description": "The domain echoed by ShortPixel when present."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw ShortPixel payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "status",
          "raw"
        ],
        "description": "The normalized response returned by ShortPixel domain management actions."
      }
    }
  ]
}
