{
  "service": "goody",
  "displayName": "Goody",
  "categories": [
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "goody_...",
      "description": "Goody API key sent in the Authorization Bearer header. Create and manage keys from Goody developer mode and API settings: https://developer.ongoody.com/introduction/developer-mode",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://www.ongoody.com",
  "actions": [
    {
      "id": "goody.get_current_user",
      "service": "goody",
      "name": "get_current_user",
      "description": "Retrieve the current Goody API user.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required to retrieve the current Goody API user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "email": {
            "anyOf": [
              {
                "type": "string",
                "description": "The current user's email address.",
                "format": "email"
              },
              {
                "type": "null"
              }
            ]
          },
          "public_app_id": {
            "anyOf": [
              {
                "type": "string",
                "description": "The public app ID for the current API key."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Goody API object with official response fields."
          }
        },
        "additionalProperties": false,
        "required": [
          "raw"
        ],
        "description": "The current Goody API user."
      }
    },
    {
      "id": "goody.get_order",
      "service": "goody",
      "name": "get_order",
      "description": "Retrieve a Goody order by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Goody order ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for retrieving a Goody order."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A Goody API object with official response fields."
      }
    },
    {
      "id": "goody.get_product",
      "service": "goody",
      "name": "get_product",
      "description": "Retrieve a Goody product by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Goody product ID."
          },
          "use_custom_catalog": {
            "type": "boolean",
            "description": "Whether to limit lookup to the custom catalog for approved API partners."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input parameters for retrieving a Goody product."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A Goody API object with official response fields."
      }
    },
    {
      "id": "goody.list_orders",
      "service": "goody",
      "name": "list_orders",
      "description": "List Goody orders, optionally filtered by creation timestamp.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page for pagination, starting at 1."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Items per page for pagination."
          },
          "created_at_after": {
            "type": "string",
            "description": "Only return orders created at or after this timestamp.",
            "format": "date-time"
          },
          "created_at_before": {
            "type": "string",
            "description": "Only return orders created at or before this timestamp.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Goody orders."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Goody order."
            },
            "description": "The Goody objects returned for this page."
          },
          "list_meta": {
            "type": "object",
            "properties": {
              "total_count": {
                "type": "integer",
                "description": "The total number of items in this Goody list."
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned by Goody."
          }
        },
        "additionalProperties": false,
        "description": "Goody orders for this page."
      }
    },
    {
      "id": "goody.list_payment_methods",
      "service": "goody",
      "name": "list_payment_methods",
      "description": "List Goody payment methods available to the current account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required to list Goody payment methods."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Goody payment method."
            },
            "description": "The Goody objects returned for this page."
          },
          "list_meta": {
            "type": "object",
            "properties": {
              "total_count": {
                "type": "integer",
                "description": "The total number of items in this Goody list."
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned by Goody."
          }
        },
        "additionalProperties": false,
        "description": "Goody payment methods for the current account."
      }
    },
    {
      "id": "goody.list_products",
      "service": "goody",
      "name": "list_products",
      "description": "List active products in the Goody catalog.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page for pagination, starting at 1."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Items per page for pagination."
          },
          "use_custom_catalog": {
            "type": "boolean",
            "description": "Whether to limit results to the custom catalog for approved API partners."
          },
          "country_code": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "A shipping country code to filter products by, such as US."
          },
          "custom_catalog_show_inactive": {
            "type": "boolean",
            "description": "Whether to show inactive products in the custom catalog for approved Commerce API customers."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing active Goody products."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Goody product."
            },
            "description": "The Goody objects returned for this page."
          },
          "list_meta": {
            "type": "object",
            "properties": {
              "total_count": {
                "type": "integer",
                "description": "The total number of items in this Goody list."
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned by Goody."
          }
        },
        "additionalProperties": false,
        "description": "Active Goody products for this page."
      }
    },
    {
      "id": "goody.list_workspaces",
      "service": "goody",
      "name": "list_workspaces",
      "description": "List Goody workspaces available to the current account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required to list Goody workspaces."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Goody workspace."
            },
            "description": "The Goody objects returned for this page."
          },
          "list_meta": {
            "type": "object",
            "properties": {
              "total_count": {
                "type": "integer",
                "description": "The total number of items in this Goody list."
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned by Goody."
          }
        },
        "additionalProperties": false,
        "description": "Goody workspaces for the current account."
      }
    }
  ]
}
