{
  "service": "firstbase",
  "displayName": "Firstbase",
  "categories": [
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "FIRSTBASE_API_KEY",
      "description": "Firstbase API key sent in the Authorization header as ApiKey. Create or view API credentials from the Firstbase API setup guide: https://support.firstbase.com/hc/en-us/articles/34906537518487-Getting-Started-with-the-Firstbase-API.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://www.firstbase.com",
  "actions": [
    {
      "id": "firstbase.get_catalog_sku",
      "service": "firstbase",
      "name": "get_catalog_sku",
      "description": "Get one catalog SKU by Firstbase SKU ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "skuId": {
            "type": "string",
            "description": "The Firstbase SKU ID to retrieve.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for retrieving one catalog SKU."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "sku": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Firstbase internal SKU ID.",
                "format": "uuid"
              },
              "imageUrl": {
                "type": "string",
                "description": "Presigned URL for the product image."
              },
              "title": {
                "type": "string",
                "description": "SKU title."
              },
              "vendorSku": {
                "type": "string",
                "description": "Vendor SKU value."
              },
              "vendorCode": {
                "type": "string",
                "description": "Vendor code."
              },
              "partNumber": {
                "type": "string",
                "description": "SKU part number."
              },
              "isStandardCatalog": {
                "type": "boolean",
                "description": "Whether the SKU is part of the organization's standard catalog."
              },
              "metadata": {
                "type": "object",
                "additionalProperties": {
                  "description": "A metadata value."
                },
                "description": "Structured SKU metadata returned by Firstbase."
              },
              "pricing": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "A Firstbase SKU pricing record."
                },
                "description": "Pricing details for the SKU."
              },
              "stock": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "A Firstbase SKU stock record."
                },
                "description": "Regions where this SKU is available."
              },
              "categoryCode": {
                "type": "string",
                "description": "Category code for the SKU."
              },
              "categoryNameOfSku": {
                "type": "string",
                "description": "Category name for the SKU."
              }
            },
            "additionalProperties": true,
            "description": "A Firstbase catalog SKU with stable key fields and remaining upstream fields preserved."
          }
        },
        "additionalProperties": false,
        "description": "A Firstbase catalog SKU response."
      }
    },
    {
      "id": "firstbase.get_inventory",
      "service": "firstbase",
      "name": "get_inventory",
      "description": "Get one inventory item by Firstbase inventory ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "inventoryId": {
            "type": "string",
            "description": "The Firstbase inventory ID to retrieve.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for retrieving one inventory item."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "inventory": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for this inventory item.",
                "format": "uuid"
              },
              "skuId": {
                "type": "string",
                "description": "The SKU ID this inventory item is associated with.",
                "format": "uuid"
              },
              "serialNumber": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Hardware serial number of the device."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "imei": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "An IMEI value."
                },
                "description": "IMEI values associated with the inventory item."
              },
              "deployStatus": {
                "type": "string",
                "description": "Current lifecycle state of the inventory item."
              },
              "deployReason": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Reason code for the current deploy status."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "condition": {
                "type": "string",
                "description": "Physical condition of the inventory item."
              },
              "categoryCode": {
                "type": "string",
                "description": "Category code of the inventory item's SKU."
              },
              "categoryNameOfSku": {
                "type": "string",
                "description": "Human-readable category name for the SKU."
              },
              "skuTitle": {
                "type": "string",
                "description": "Display title of the SKU."
              },
              "vendorCode": {
                "type": "string",
                "description": "Vendor or brand code for the SKU."
              },
              "vendorSku": {
                "type": "string",
                "description": "Vendor-specific SKU or model identifier."
              },
              "createdAt": {
                "type": "string",
                "description": "Timestamp when this inventory item was created in Firstbase."
              },
              "updatedAt": {
                "type": "string",
                "description": "Timestamp when this inventory item was last updated."
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "A Firstbase inventory tag."
                },
                "description": "Key-value tags attached to this inventory item."
              }
            },
            "additionalProperties": true,
            "description": "A Firstbase inventory item with stable key fields and remaining upstream fields preserved."
          }
        },
        "additionalProperties": false,
        "description": "A Firstbase inventory item response."
      }
    },
    {
      "id": "firstbase.list_brands",
      "service": "firstbase",
      "name": "list_brands",
      "description": "List brands available for Firstbase asset creation.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The 1-based page number to request."
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of results to return in a page, from 1 to 100."
          },
          "code": {
            "type": "string",
            "minLength": 1,
            "description": "Filter by an exact Firstbase code."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Filter by a case-insensitive partial name match."
          },
          "active": {
            "type": "boolean",
            "description": "Whether to return active metadata records."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Firstbase metadata records."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "brands": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier returned by Firstbase."
                },
                "code": {
                  "type": "string",
                  "description": "Code returned by Firstbase."
                },
                "name": {
                  "type": "string",
                  "description": "Human-readable name returned by Firstbase."
                },
                "active": {
                  "type": "boolean",
                  "description": "Whether Firstbase reports the record as active."
                }
              },
              "additionalProperties": true,
              "description": "A Firstbase metadata record."
            },
            "description": "Brands returned by Firstbase."
          },
          "pageNumber": {
            "type": "integer",
            "description": "Current 1-based page number returned by Firstbase."
          },
          "size": {
            "type": "integer",
            "description": "Maximum number of items per page returned by Firstbase."
          },
          "totalElements": {
            "type": "integer",
            "description": "Total number of items matching the query across all pages."
          },
          "totalPages": {
            "type": "integer",
            "description": "Total number of pages returned by Firstbase."
          }
        },
        "additionalProperties": false,
        "description": "A normalized Firstbase brands page."
      }
    },
    {
      "id": "firstbase.list_catalog_skus",
      "service": "firstbase",
      "name": "list_catalog_skus",
      "description": "List catalog SKUs available to the authenticated Firstbase organization.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The 1-based page number to request."
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "description": "The number of results to return in a page."
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A Firstbase category code."
            },
            "description": "Category codes to filter by.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Firstbase catalog SKUs."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "skus": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Firstbase internal SKU ID.",
                  "format": "uuid"
                },
                "imageUrl": {
                  "type": "string",
                  "description": "Presigned URL for the product image."
                },
                "title": {
                  "type": "string",
                  "description": "SKU title."
                },
                "vendorSku": {
                  "type": "string",
                  "description": "Vendor SKU value."
                },
                "vendorCode": {
                  "type": "string",
                  "description": "Vendor code."
                },
                "partNumber": {
                  "type": "string",
                  "description": "SKU part number."
                },
                "isStandardCatalog": {
                  "type": "boolean",
                  "description": "Whether the SKU is part of the organization's standard catalog."
                },
                "metadata": {
                  "type": "object",
                  "additionalProperties": {
                    "description": "A metadata value."
                  },
                  "description": "Structured SKU metadata returned by Firstbase."
                },
                "pricing": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "A Firstbase SKU pricing record."
                  },
                  "description": "Pricing details for the SKU."
                },
                "stock": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "A Firstbase SKU stock record."
                  },
                  "description": "Regions where this SKU is available."
                },
                "categoryCode": {
                  "type": "string",
                  "description": "Category code for the SKU."
                },
                "categoryNameOfSku": {
                  "type": "string",
                  "description": "Category name for the SKU."
                }
              },
              "additionalProperties": true,
              "description": "A Firstbase catalog SKU with stable key fields and remaining upstream fields preserved."
            },
            "description": "Catalog SKUs returned by Firstbase."
          }
        },
        "additionalProperties": false,
        "description": "A Firstbase catalog SKU list response."
      }
    },
    {
      "id": "firstbase.list_categories",
      "service": "firstbase",
      "name": "list_categories",
      "description": "List product categories available for Firstbase asset creation.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The 1-based page number to request."
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of results to return in a page, from 1 to 100."
          },
          "code": {
            "type": "string",
            "minLength": 1,
            "description": "Filter by an exact Firstbase code."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Filter by a case-insensitive partial name match."
          },
          "active": {
            "type": "boolean",
            "description": "Whether to return active metadata records."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Firstbase metadata records."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "categories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier returned by Firstbase."
                },
                "code": {
                  "type": "string",
                  "description": "Code returned by Firstbase."
                },
                "name": {
                  "type": "string",
                  "description": "Human-readable name returned by Firstbase."
                },
                "active": {
                  "type": "boolean",
                  "description": "Whether Firstbase reports the record as active."
                }
              },
              "additionalProperties": true,
              "description": "A Firstbase metadata record."
            },
            "description": "Categories returned by Firstbase."
          },
          "pageNumber": {
            "type": "integer",
            "description": "Current 1-based page number returned by Firstbase."
          },
          "size": {
            "type": "integer",
            "description": "Maximum number of items per page returned by Firstbase."
          },
          "totalElements": {
            "type": "integer",
            "description": "Total number of items matching the query across all pages."
          },
          "totalPages": {
            "type": "integer",
            "description": "Total number of pages returned by Firstbase."
          }
        },
        "additionalProperties": false,
        "description": "A normalized Firstbase categories page."
      }
    },
    {
      "id": "firstbase.list_inventory",
      "service": "firstbase",
      "name": "list_inventory",
      "description": "List inventory items owned by the authenticated Firstbase organization.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The 1-based page number to request."
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "description": "The number of results to return in a page."
          },
          "personId": {
            "type": "string",
            "minLength": 1,
            "description": "ID of the person to which inventory is assigned."
          },
          "warehouseId": {
            "type": "string",
            "minLength": 1,
            "description": "ID of the warehouse to which inventory is assigned."
          },
          "officeId": {
            "type": "string",
            "minLength": 1,
            "description": "ID of the office to which inventory is assigned."
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A Firstbase category code."
            },
            "description": "Category codes to filter by.",
            "minItems": 1
          },
          "deployStatuses": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "ARCHIVED",
                "AVAILABLE",
                "AWAITING_ARRIVAL",
                "DEPLOYED",
                "ON_HOLD",
                "UNAVAILABLE",
                "VOIDED"
              ],
              "description": "A supported Firstbase inventory deployment status."
            },
            "description": "Deployment statuses to filter by. Deprecated statuses rejected by Firstbase are not accepted.",
            "minItems": 1
          },
          "skuIds": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "A Firstbase SKU ID.",
              "format": "uuid"
            },
            "description": "SKU IDs to filter by.",
            "minItems": 1
          },
          "searchString": {
            "type": "string",
            "minLength": 1,
            "description": "Keyword that searches description, manufacturer, category, title, and serial number."
          },
          "updatedAtFrom": {
            "type": "string",
            "minLength": 1,
            "description": "UTC date-time in Firstbase's documented ISO 8601-compatible format."
          },
          "updatedAtTo": {
            "type": "string",
            "minLength": 1,
            "description": "UTC date-time in Firstbase's documented ISO 8601-compatible format."
          },
          "assignedEmail": {
            "type": "string",
            "description": "Email address of the person to which inventory is assigned.",
            "format": "email"
          },
          "serialNumber": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A Firstbase inventory serial number."
            },
            "description": "Inventory serial numbers to filter by.",
            "minItems": 1
          },
          "vendorSku": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A vendor SKU."
            },
            "description": "Vendor SKUs to filter by.",
            "minItems": 1
          },
          "sortBy": {
            "type": "string",
            "enum": [
              "product",
              "skuId",
              "createdAt",
              "updatedAt",
              "serialNumber",
              "deployStatus",
              "deployReason",
              "assignee",
              "condition",
              "renewalDate",
              "category",
              "suppliedBy"
            ],
            "description": "Field to sort inventory by."
          },
          "sortDirection": {
            "type": "string",
            "enum": [
              "ASC",
              "DESC"
            ],
            "description": "Direction for inventory sorting."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Firstbase inventory.",
        "not": {
          "required": [
            "personId",
            "assignedEmail"
          ]
        }
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "inventory": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier for this inventory item.",
                  "format": "uuid"
                },
                "skuId": {
                  "type": "string",
                  "description": "The SKU ID this inventory item is associated with.",
                  "format": "uuid"
                },
                "serialNumber": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Hardware serial number of the device."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "imei": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "An IMEI value."
                  },
                  "description": "IMEI values associated with the inventory item."
                },
                "deployStatus": {
                  "type": "string",
                  "description": "Current lifecycle state of the inventory item."
                },
                "deployReason": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Reason code for the current deploy status."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "condition": {
                  "type": "string",
                  "description": "Physical condition of the inventory item."
                },
                "categoryCode": {
                  "type": "string",
                  "description": "Category code of the inventory item's SKU."
                },
                "categoryNameOfSku": {
                  "type": "string",
                  "description": "Human-readable category name for the SKU."
                },
                "skuTitle": {
                  "type": "string",
                  "description": "Display title of the SKU."
                },
                "vendorCode": {
                  "type": "string",
                  "description": "Vendor or brand code for the SKU."
                },
                "vendorSku": {
                  "type": "string",
                  "description": "Vendor-specific SKU or model identifier."
                },
                "createdAt": {
                  "type": "string",
                  "description": "Timestamp when this inventory item was created in Firstbase."
                },
                "updatedAt": {
                  "type": "string",
                  "description": "Timestamp when this inventory item was last updated."
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "A Firstbase inventory tag."
                  },
                  "description": "Key-value tags attached to this inventory item."
                }
              },
              "additionalProperties": true,
              "description": "A Firstbase inventory item with stable key fields and remaining upstream fields preserved."
            },
            "description": "Inventory items returned by Firstbase."
          }
        },
        "additionalProperties": false,
        "description": "A Firstbase inventory list response."
      }
    }
  ]
}
