{
  "service": "shipengine",
  "displayName": "ShipEngine",
  "categories": [
    "Productivity",
    "Location"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "SHIPENGINE_API_KEY",
      "description": "ShipEngine API key used as the API-Key header. Create or manage keys from ShipEngine account settings: https://www.shipengine.com/docs/auth/",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://www.shipengine.com/",
  "actions": [
    {
      "id": "shipengine.calculate_rates",
      "service": "shipengine",
      "name": "calculate_rates",
      "description": "Calculate shipping rates for a shipment request using connected ShipEngine carriers.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "rateOptions": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The rate_options object passed to ShipEngine."
          },
          "shipment": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The shipment object passed to ShipEngine."
          }
        },
        "additionalProperties": true,
        "description": "The ShipEngine calculate rates request body."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "rateResponse": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by ShipEngine."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when calculating ShipEngine rates."
      }
    },
    {
      "id": "shipengine.estimate_rates",
      "service": "shipengine",
      "name": "estimate_rates",
      "description": "Estimate shipping rates with basic address and package information.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "carrierIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "The ShipEngine resource identifier.",
              "pattern": "\\S"
            },
            "description": "The ShipEngine carrier IDs to use for the estimate.",
            "minItems": 1
          },
          "fromCountryCode": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "The ISO 3166-1 alpha-2 country code for the address."
          },
          "fromPostalCode": {
            "type": "string",
            "minLength": 1,
            "description": "The origin postal code for the estimate."
          },
          "toCountryCode": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "The ISO 3166-1 alpha-2 country code for the address."
          },
          "toPostalCode": {
            "type": "string",
            "minLength": 1,
            "description": "The destination postal code for the estimate."
          },
          "weight": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The package weight object passed to ShipEngine."
          }
        },
        "additionalProperties": true,
        "description": "The ShipEngine estimate rates request body."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "rates": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw object returned by ShipEngine."
            },
            "description": "The estimated rates returned by ShipEngine."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when estimating ShipEngine rates."
      }
    },
    {
      "id": "shipengine.get_rate",
      "service": "shipengine",
      "name": "get_rate",
      "description": "Retrieve a previously queried ShipEngine rate by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "rateId": {
            "type": "string",
            "minLength": 1,
            "description": "The ShipEngine resource identifier.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for retrieving a ShipEngine rate."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "rate": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by ShipEngine."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when retrieving a ShipEngine rate."
      }
    },
    {
      "id": "shipengine.list_carriers",
      "service": "shipengine",
      "name": "list_carriers",
      "description": "List carrier accounts connected to the ShipEngine account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for listing ShipEngine carriers."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "carriers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw object returned by ShipEngine."
            },
            "description": "The carrier accounts returned by ShipEngine."
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw object returned by ShipEngine."
            },
            "description": "Partial-success errors returned by ShipEngine when present."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing ShipEngine carriers."
      }
    },
    {
      "id": "shipengine.parse_address",
      "service": "shipengine",
      "name": "parse_address",
      "description": "Parse unstructured text into a structured ShipEngine address.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "minLength": 1,
            "description": "The unstructured text that contains address information."
          },
          "address": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "description": "The known recipient or contact name for the address."
              },
              "phone": {
                "type": "string",
                "minLength": 1,
                "description": "The known phone number associated with the address."
              },
              "companyName": {
                "type": "string",
                "minLength": 1,
                "description": "The known company name associated with the address."
              },
              "addressLine1": {
                "type": "string",
                "minLength": 1,
                "description": "The known first address line."
              },
              "addressLine2": {
                "type": "string",
                "minLength": 1,
                "description": "The known second address line."
              },
              "addressLine3": {
                "type": "string",
                "minLength": 1,
                "description": "The known third address line."
              },
              "cityLocality": {
                "type": "string",
                "minLength": 1,
                "description": "The known city or locality for the address."
              },
              "stateProvince": {
                "type": "string",
                "minLength": 1,
                "description": "The known state, province, or region for the address."
              },
              "postalCode": {
                "type": "string",
                "minLength": 1,
                "description": "The known postal or ZIP code for the address."
              },
              "countryCode": {
                "type": "string",
                "minLength": 2,
                "maxLength": 2,
                "description": "The ISO 3166-1 alpha-2 country code for the address."
              },
              "addressResidentialIndicator": {
                "type": "string",
                "enum": [
                  "unknown",
                  "yes",
                  "no"
                ],
                "description": "Whether ShipEngine should treat the address as residential."
              }
            },
            "additionalProperties": false,
            "description": "Optional known ShipEngine address fields to help parse unstructured text."
          }
        },
        "additionalProperties": false,
        "required": [
          "text"
        ],
        "description": "The input payload for parsing a ShipEngine address."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "parsedAddress": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by ShipEngine."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when parsing a ShipEngine address."
      }
    },
    {
      "id": "shipengine.validate_addresses",
      "service": "shipengine",
      "name": "validate_addresses",
      "description": "Validate one or more mailing addresses with ShipEngine and return deliverability details.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "addresses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The recipient or contact name for the address."
                },
                "phone": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The phone number associated with the address."
                },
                "companyName": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The company name associated with the address."
                },
                "addressLine1": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The first address line."
                },
                "addressLine2": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The second address line."
                },
                "addressLine3": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The third address line."
                },
                "cityLocality": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The city or locality for the address."
                },
                "stateProvince": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The state, province, or region for the address."
                },
                "postalCode": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The postal or ZIP code for the address."
                },
                "countryCode": {
                  "type": "string",
                  "minLength": 2,
                  "maxLength": 2,
                  "description": "The ISO 3166-1 alpha-2 country code for the address."
                },
                "addressResidentialIndicator": {
                  "type": "string",
                  "enum": [
                    "unknown",
                    "yes",
                    "no"
                  ],
                  "description": "Whether ShipEngine should treat the address as residential."
                }
              },
              "additionalProperties": false,
              "required": [
                "addressLine1",
                "cityLocality",
                "stateProvince",
                "postalCode",
                "countryCode"
              ],
              "description": "A ShipEngine address object."
            },
            "description": "The addresses to validate.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "The input payload for validating ShipEngine addresses."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "addresses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw object returned by ShipEngine."
            },
            "description": "The validated address results returned by ShipEngine."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when validating ShipEngine addresses."
      }
    }
  ]
}
