{
  "service": "ship_bob",
  "displayName": "ShipBob",
  "categories": [
    "Productivity",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "Personal Access Token",
      "placeholder": "SHIPBOB_PERSONAL_ACCESS_TOKEN",
      "description": "ShipBob Personal Access Token sent with the Authorization: Bearer header. Generate one in the ShipBob dashboard under Integrations > API Tokens: https://web.shipbob.com/app/merchant/#/Integrations/token-management."
    }
  ],
  "homepageUrl": "https://www.shipbob.com/",
  "actions": [
    {
      "id": "ship_bob.get_inventory_level",
      "service": "ship_bob",
      "name": "get_inventory_level",
      "description": "Get aggregated ShipBob inventory levels for one inventory item.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "inventoryId": {
            "type": "integer",
            "minimum": 1,
            "description": "The ShipBob inventory item id to retrieve."
          }
        },
        "additionalProperties": false,
        "required": [
          "inventoryId"
        ],
        "description": "The input payload for getting one ShipBob inventory level record."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "item": {
            "type": "object",
            "properties": {
              "inventoryId": {
                "type": "integer",
                "description": "The ShipBob inventory item id."
              },
              "name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The inventory item name returned by ShipBob."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "sku": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The stock keeping unit returned by ShipBob."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalAwaitingQuantity": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total quantity expected to arrive."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalBackorderedQuantity": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total quantity on backorder."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalCommittedQuantity": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total quantity reserved for orders."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalExceptionQuantity": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total quantity in exception status."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalFulfillableQuantity": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total quantity available to fulfill."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalInternalTransferQuantity": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total quantity currently in internal transfer."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalOnHandQuantity": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total quantity physically on hand."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalSellableQuantity": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total quantity available for sale."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw inventory quantity object returned by ShipBob."
              }
            },
            "additionalProperties": false,
            "description": "A normalized ShipBob inventory quantity record."
          }
        },
        "additionalProperties": false,
        "required": [
          "item"
        ],
        "description": "The response returned when getting one ShipBob inventory level record."
      }
    },
    {
      "id": "ship_bob.list_channels",
      "service": "ship_bob",
      "name": "list_channels",
      "description": "List ShipBob channels available to the authenticated Personal Access Token.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for listing ShipBob channels."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "channels": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The ShipBob channel id."
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The ShipBob channel name."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "applicationName": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The ShipBob application name for the channel."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "scopes": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "One ShipBob scope."
                  },
                  "description": "The scopes granted to this ShipBob channel."
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw channel object returned by ShipBob."
                }
              },
              "additionalProperties": false,
              "description": "A normalized ShipBob channel."
            },
            "description": "The ShipBob channels returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "channels"
        ],
        "description": "The response returned when listing ShipBob channels."
      }
    },
    {
      "id": "ship_bob.list_inventory_levels",
      "service": "ship_bob",
      "name": "list_inventory_levels",
      "description": "List ShipBob inventory levels with optional item and product filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchBy": {
            "type": "string",
            "minLength": 1,
            "description": "Search by inventory id, inventory name, or SKU."
          },
          "inventoryIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One ShipBob inventory item id."
            },
            "description": "Specific ShipBob inventory item ids to retrieve.",
            "minItems": 1
          },
          "isActive": {
            "type": "boolean",
            "description": "Whether to return only active or inactive inventory items."
          },
          "isDigital": {
            "type": "boolean",
            "description": "Whether to return only digital or physical inventory items."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of ShipBob records to return."
          },
          "sortBy": {
            "type": "string",
            "minLength": 1,
            "description": "The ShipBob field expression used to sort results, such as Name or -total_on_hand_quantity."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing ShipBob inventory levels."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "first": {
            "anyOf": [
              {
                "type": "string",
                "description": "The URL to retrieve the first page when ShipBob returned one."
              },
              {
                "type": "null"
              }
            ]
          },
          "last": {
            "anyOf": [
              {
                "type": "string",
                "description": "The URL to retrieve the last page when ShipBob returned one."
              },
              {
                "type": "null"
              }
            ]
          },
          "next": {
            "anyOf": [
              {
                "type": "string",
                "description": "The URL to retrieve the next page when ShipBob returned one."
              },
              {
                "type": "null"
              }
            ]
          },
          "prev": {
            "anyOf": [
              {
                "type": "string",
                "description": "The URL to retrieve the previous page when ShipBob returned one."
              },
              {
                "type": "null"
              }
            ]
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "inventoryId": {
                  "type": "integer",
                  "description": "The ShipBob inventory item id."
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The inventory item name returned by ShipBob."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "sku": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The stock keeping unit returned by ShipBob."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "totalAwaitingQuantity": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The total quantity expected to arrive."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "totalBackorderedQuantity": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The total quantity on backorder."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "totalCommittedQuantity": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The total quantity reserved for orders."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "totalExceptionQuantity": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The total quantity in exception status."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "totalFulfillableQuantity": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The total quantity available to fulfill."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "totalInternalTransferQuantity": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The total quantity currently in internal transfer."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "totalOnHandQuantity": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The total quantity physically on hand."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "totalSellableQuantity": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The total quantity available for sale."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw inventory quantity object returned by ShipBob."
                }
              },
              "additionalProperties": false,
              "description": "A normalized ShipBob inventory quantity record."
            },
            "description": "The ShipBob inventory quantity records returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "first",
          "last",
          "next",
          "prev",
          "items"
        ],
        "description": "The response returned when listing ShipBob inventory levels."
      }
    },
    {
      "id": "ship_bob.list_locations",
      "service": "ship_bob",
      "name": "list_locations",
      "description": "List ShipBob fulfillment network locations.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "includeInactive": {
            "type": "boolean",
            "description": "Whether inactive ShipBob locations should be included."
          },
          "receivingEnabled": {
            "type": "boolean",
            "description": "Whether to return only receiving-enabled locations."
          },
          "accessGranted": {
            "type": "boolean",
            "description": "Whether to return only locations granted to this merchant."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing ShipBob locations."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "locations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The ShipBob location id."
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The ShipBob location name."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "abbreviation": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The ShipBob location abbreviation."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "isActive": {
                  "anyOf": [
                    {
                      "type": "boolean",
                      "description": "Whether this location is active."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "accessGranted": {
                  "anyOf": [
                    {
                      "type": "boolean",
                      "description": "Whether the authenticated merchant can access it."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "isReceivingEnabled": {
                  "anyOf": [
                    {
                      "type": "boolean",
                      "description": "Whether the location can receive inventory."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "isShippingEnabled": {
                  "anyOf": [
                    {
                      "type": "boolean",
                      "description": "Whether the location can ship inventory."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw location object returned by ShipBob."
                }
              },
              "additionalProperties": false,
              "description": "A normalized ShipBob location."
            },
            "description": "The ShipBob locations returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "locations"
        ],
        "description": "The response returned when listing ShipBob locations."
      }
    },
    {
      "id": "ship_bob.list_products",
      "service": "ship_bob",
      "name": "list_products",
      "description": "List ShipBob products with optional catalog filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "search": {
            "type": "string",
            "minLength": 1,
            "description": "Search products by name, SKU, inventory id, or product id."
          },
          "barcode": {
            "type": "string",
            "minLength": 1,
            "description": "A barcode associated with a product variant."
          },
          "barcodes": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One barcode."
            },
            "description": "Barcodes associated with product variants.",
            "minItems": 1
          },
          "categoryIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One ShipBob category id."
            },
            "description": "ShipBob category ids associated with products.",
            "minItems": 1
          },
          "channelIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One ShipBob channel id."
            },
            "description": "ShipBob channel ids associated with product variants.",
            "minItems": 1
          },
          "hasDigitalVariants": {
            "type": "boolean",
            "description": "Whether products have digital variants."
          },
          "hasVariants": {
            "type": "boolean",
            "description": "Whether products have variants."
          },
          "inventoryId": {
            "type": "integer",
            "minimum": 1,
            "description": "A ShipBob inventory id associated with a product variant."
          },
          "isInventorySyncEnabled": {
            "type": "boolean",
            "description": "Whether inventory sync is enabled for variants."
          },
          "lastUpdatedTimestamp": {
            "type": "string",
            "description": "Return products updated since this timestamp.",
            "format": "date-time"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Search products or variants by name."
          },
          "onHand": {
            "type": "boolean",
            "description": "Whether products have inventory on hand."
          },
          "productId": {
            "type": "integer",
            "minimum": 1,
            "description": "A ShipBob product id to filter by."
          },
          "productType": {
            "type": "string",
            "minLength": 1,
            "description": "A ShipBob product type to filter by."
          },
          "sellerSku": {
            "type": "string",
            "minLength": 1,
            "description": "A seller SKU query."
          },
          "sku": {
            "type": "string",
            "minLength": 1,
            "description": "A ShipBob SKU query."
          },
          "variantId": {
            "type": "integer",
            "minimum": 1,
            "description": "A ShipBob variant id to filter by."
          },
          "variantStatus": {
            "type": "string",
            "minLength": 1,
            "description": "A ShipBob variant status to filter by."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of ShipBob records to return."
          },
          "sortBy": {
            "type": "string",
            "minLength": 1,
            "description": "The ShipBob product field used to sort results."
          },
          "sortOrder": {
            "type": "string",
            "enum": [
              "ASC",
              "DESC"
            ],
            "description": "The ShipBob product sort order."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing ShipBob products."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "first": {
            "anyOf": [
              {
                "type": "string",
                "description": "The URL to retrieve the first page when ShipBob returned one."
              },
              {
                "type": "null"
              }
            ]
          },
          "last": {
            "anyOf": [
              {
                "type": "string",
                "description": "The URL to retrieve the last page when ShipBob returned one."
              },
              {
                "type": "null"
              }
            ]
          },
          "next": {
            "anyOf": [
              {
                "type": "string",
                "description": "The URL to retrieve the next page when ShipBob returned one."
              },
              {
                "type": "null"
              }
            ]
          },
          "prev": {
            "anyOf": [
              {
                "type": "string",
                "description": "The URL to retrieve the previous page when ShipBob returned one."
              },
              {
                "type": "null"
              }
            ]
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A ShipBob product object returned by the Products API."
            },
            "description": "The ShipBob products returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "first",
          "last",
          "next",
          "prev",
          "items"
        ],
        "description": "The response returned when listing ShipBob products."
      }
    }
  ]
}
