Square · Schema

BatchUpsertCatalogObjectsResponse

BookingLocationSquareRestaurantCatalogCheckoutCustomersDisputesE-CommerceFinancial TechnologyGift CardsInventoryInvoicingLaborLoyaltyMerchantsOrderPaymentsPoint-of-SaleRefundsRetailSubscriptionTeamWebhookPayment ProcessingPayment Terminals

Properties

Name Type Description
errors array Any errors that occurred during the request.
objects array The created successfully created CatalogObjects.
updated_at string The database [timestamp](https://developer.squareup.com/docs/build-basics/working-with-dates) of this update in RFC 3339 format, e.g., "2016-09-04T23:59:33.123Z".
id_mappings array The mapping between client and server IDs for this upsert.
View JSON Schema on GitHub

JSON Schema

square-batch-upsert-catalog-objects-response-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/square/main/json-schema/square-batch-upsert-catalog-objects-response-schema.json",
  "title": "BatchUpsertCatalogObjectsResponse",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/square-catalog-api-openapi.yml#/components/schemas/BatchUpsertCatalogObjectsResponse",
  "type": "object",
  "x-release-status": "PUBLIC",
  "properties": {
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Error"
      },
      "description": "Any errors that occurred during the request."
    },
    "objects": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/CatalogObject"
      },
      "description": "The created successfully created CatalogObjects."
    },
    "updated_at": {
      "type": "string",
      "description": "The database [timestamp](https://developer.squareup.com/docs/build-basics/working-with-dates) of this update in RFC 3339 format, e.g., \"2016-09-04T23:59:33.123Z\"."
    },
    "id_mappings": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/CatalogIdMapping"
      },
      "description": "The mapping between client and server IDs for this upsert."
    }
  },
  "x-sq-sdk-sample-code": {
    "csharp": "/sdk_samples/Catalog/BatchUpsertCatalogObjects/BatchUpsertCatalogObjectsResponse.csharp",
    "java": "/sdk_samples/Catalog/BatchUpsertCatalogObjects/BatchUpsertCatalogObjectsResponse.java",
    "javascript": "/sdk_samples/Catalog/BatchUpsertCatalogObjects/BatchUpsertCatalogObjectsResponse.javascript",
    "php": "/sdk_samples/Catalog/BatchUpsertCatalogObjects/BatchUpsertCatalogObjectsResponse.php",
    "python": "/sdk_samples/Catalog/BatchUpsertCatalogObjects/BatchUpsertCatalogObjectsResponse.python",
    "ruby": "/sdk_samples/Catalog/BatchUpsertCatalogObjects/BatchUpsertCatalogObjectsResponse.ruby"
  },
  "$defs": {
    "CatalogAvailabilityPeriod": {
      "type": "object",
      "description": "Represents a time period of availability.",
      "x-release-status": "BETA",
      "properties": {
        "start_local_time": {
          "type": [
            "string",
            "null"
          ],
          "description": "The start time of an availability period, specified in local time using partial-time\nRFC 3339 format. For example, `8:30:00` for a period starting at 8:30 in the morning.\nNote that the seconds value is always :00, but it is appended for conformance to the RFC."
        },
        "end_local_time": {
          "type": [
            "string",
            "null"
          ],
          "description": "The end time of an availability period, specified in local time using partial-time\nRFC 3339 format. For example, `21:00:00` for a period ending at 9:00 in the evening.\nNote that the seconds value is always :00, but it is appended for conformance to the RFC."
        },
        "day_of_week": {
          "$ref": "#/$defs/DayOfWeek",
          "description": "The day of the week for this availability period.\nSee [DayOfWeek](#type-dayofweek) for possible values"
        }
      }
    },
    "CatalogCategory": {
      "type": "object",
      "description": "A category to which a `CatalogItem` instance belongs.",
      "x-release-status": "PUBLIC",
      "properties": {
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "The category name. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points.",
          "maxLength": 255
        },
        "image_ids": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          },
          "description": "The IDs of images associated with this `CatalogCategory` instance.\nCurrently these images are not displayed by Square, but are free to be displayed in 3rd party applications."
        },
        "category_type": {
          "$ref": "#/$defs/CatalogCategoryType",
          "description": "The type of the category.\nSee [CatalogCategoryType](#type-catalogcategorytype) for possible values"
        },
        "parent_category": {
          "$ref": "#/$defs/CatalogObjectCategory",
          "description": "The ID of the parent category of this category instance."
        },
        "is_top_level": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether a category is a top level category, which does not have any parent_category."
        },
        "channels": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          },
          "description": "A list of IDs representing channels, such as a Square Online site, where the category can be made visible."
        },
        "availability_period_ids": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          },
          "description": "The IDs of the `CatalogAvailabilityPeriod` objects associated with the category."
        },
        "online_visibility": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether the category is visible (`true`) or hidden (`false`) on all of the seller's Square Online sites."
        },
        "root_category": {
          "type": "string",
          "description": "The top-level category in a category hierarchy.",
          "readOnly": true
        },
        "ecom_seo_data": {
          "$ref": "#/$defs/CatalogEcomSeoData",
          "description": "The SEO data for a seller's Square Online store."
        },
        "path_to_root": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/CategoryPathToRootNode"
          },
          "description": "The path from the category to its root category. The first node of the path is the parent of the category\nand the last is the root category. The path is empty if the category is a root category."
        }
      }
    },
    "CatalogCategoryType": {
      "type": "string",
      "enum": [
        "REGULAR_CATEGORY",
        "MENU_CATEGORY",
        "KITCHEN_CATEGORY"
      ],
      "x-enum-elements": [
        {
          "name": "REGULAR_CATEGORY",
          "description": "The regular category."
        },
        {
          "name": "MENU_CATEGORY",
          "description": "The menu category."
        },
        {
          "name": "KITCHEN_CATEGORY",
          "description": "Kitchen categories are used by KDS (Kitchen Display System) to route items to specific clients"
        }
      ],
      "description": "Indicates the type of a category.",
      "x-release-status": "PUBLIC"
    },
    "CatalogCustomAttributeDefinition": {
      "type": "object",
      "description": "Contains information defining a custom attribute. Custom attributes are\nintended to store additional information about a catalog object or to associate a\ncatalog object with an entity in another system. Do not use custom attributes\nto store any sensitive information (personally identifiable information, card details, etc.).\n[Read more about custom attributes](https://developer.squareup.com/docs/catalog-api/add-custom-attributes)",
      "x-release-status": "PUBLIC",
      "required": [
        "type",
        "name",
        "allowed_object_types"
      ],
      "properties": {
        "type": {
          "$ref": "#/$defs/CatalogCustomAttributeDefinitionType",
          "description": "The type of this custom attribute. Cannot be modified after creation.\nRequired.\nSee [CatalogCustomAttributeDefinitionType](#type-catalogcustomattributedefinitiontype) for possible values"
        },
        "name": {
          "type": "string",
          "description": " The name of this definition for API and seller-facing UI purposes.\nThe name must be unique within the (merchant, application) pair. Required.\nMay not be empty and may not exceed 255 characters. Can be modified after creation.",
          "minLength": 1,
          "maxLength": 255
        },
        "description": {
          "type": [
            "string",
            "null"
          ],
          "description": "Seller-oriented description of the meaning of this Custom Attribute,\nany constraints that the seller should observe, etc. May be displayed as a tooltip in Square UIs.",
          "maxLength": 255
        },
        "source_application": {
          "$ref": "#/$defs/SourceApplication",
          "description": "__Read only.__ Contains information about the application that\ncreated this custom attribute definition."
        },
        "allowed_object_types": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/CatalogObjectType"
          },
          "description": "The set of `CatalogObject` types that this custom atttribute may be applied to.\nCurrently, only `ITEM`, `ITEM_VARIATION`, `MODIFIER`, `MODIFIER_LIST`, and `CATEGORY` are allowed. At least one type must be included.\nSee [CatalogObjectType](#type-catalogobjecttype) for possible values"
        },
        "seller_visibility": {
          "$ref": "#/$defs/CatalogCustomAttributeDefinitionSellerVisibility",
          "description": "The visibility of a custom attribute in seller-facing UIs (including Square Point\nof Sale applications and Square Dashboard). May be modified.\nSee [CatalogCustomAttributeDefinitionSellerVisibility](#type-catalogcustomattributedefinitionsellervisibility) for possible values"
        },
        "app_visibility": {
          "$ref": "#/$defs/CatalogCustomAttributeDefinitionAppVisibility",
          "description": "The visibility of a custom attribute to applications other than the application\nthat created the attribute.\nSee [CatalogCustomAttributeDefinitionAppVisibility](#type-catalogcustomattributedefinitionappvisibility) for possible values"
        },
        "string_config": {
          "$ref": "#/$defs/CatalogCustomAttributeDefinitionStringConfig",
          "description": "Optionally, populated when `type` = `STRING`, unset otherwise."
        },
        "number_config": {
          "$ref": "#/$defs/CatalogCustomAttributeDefinitionNumberConfig",
          "description": "Optionally, populated when `type` = `NUMBER`, unset otherwise."
        },
        "selection_config": {
          "$ref": "#/$defs/CatalogCustomAttributeDefinitionSelectionConfig",
          "description": "Populated when `type` is set to `SELECTION`, unset otherwise."
        },
        "custom_attribute_usage_count": {
          "type": "integer",
          "description": "The number of custom attributes that reference this\ncustom attribute definition. Set by the server in response to a ListCatalog\nrequest with `include_counts` set to `true`.  If the actual count is greater\nthan 100, `custom_attribute_usage_count` will be set to `100`.",
          "readOnly": true
        },
        "key": {
          "type": [
            "string",
            "null"
          ],
          "description": "The name of the desired custom attribute key that can be used to access\nthe custom attribute value on catalog objects. Cannot be modified after the\ncustom attribute definition has been created.\nMust be between 1 and 60 characters, and may only contain the characters `[a-zA-Z0-9_-]`.",
          "minLength": 1,
          "maxLength": 60,
          "pattern": "^[a-zA-Z0-9_-]*$"
        }
      }
    },
    "CatalogCustomAttributeDefinitionAppVisibility": {
      "type": "string",
      "enum": [
        "APP_VISIBILITY_HIDDEN",
        "APP_VISIBILITY_READ_ONLY",
        "APP_VISIBILITY_READ_WRITE_VALUES"
      ],
      "x-enum-elements": [
        {
          "name": "APP_VISIBILITY_HIDDEN",
          "description": "Other applications cannot read this custom attribute."
        },
        {
          "name": "APP_VISIBILITY_READ_ONLY",
          "description": "Other applications can read this custom attribute definition and\nvalues."
        },
        {
          "name": "APP_VISIBILITY_READ_WRITE_VALUES",
          "description": "Other applications can read and write custom attribute values on objects.\nThey can read but cannot edit the custom attribute definition."
        }
      ],
      "description": "Defines the visibility of a custom attribute to applications other than their\ncreating application.",
      "x-release-status": "PUBLIC"
    },
    "CatalogCustomAttributeDefinitionNumberConfig": {
      "type": "object",
      "x-release-status": "PUBLIC",
      "properties": {
        "precision": {
          "type": [
            "integer",
            "null"
          ],
          "description": "An integer between 0 and 5 that represents the maximum number of\npositions allowed after the decimal in number custom attribute values\nFor example:\n\n- if the precision is 0, the quantity can be 1, 2, 3, etc.\n- if the precision is 1, the quantity can be 0.1, 0.2, etc.\n- if the precision is 2, the quantity can be 0.01, 0.12, etc.\n\nDefault: 5",
          "maximum": 5
        }
      }
    },
    "CatalogCustomAttributeDefinitionSelectionConfig": {
      "type": "object",
      "description": "Configuration associated with `SELECTION`-type custom attribute definitions.",
      "x-release-status": "PUBLIC",
      "properties": {
        "max_allowed_selections": {
          "type": [
            "integer",
            "null"
          ],
          "description": "The maximum number of selections that can be set. The maximum value for this\nattribute is 100. The default value is 1. The value can be modified, but changing the value will not\naffect existing custom attribute values on objects. Clients need to\nhandle custom attributes with more selected values than allowed by this limit.",
          "maximum": 100
        },
        "allowed_selections": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/CatalogCustomAttributeDefinitionSelectionConfigCustomAttributeSelection"
          },
          "description": "The set of valid `CatalogCustomAttributeSelections`. Up to a maximum of 100\nselections can be defined. Can be modified."
        }
      }
    },
    "CatalogCustomAttributeDefinitionSelectionConfigCustomAttributeSelection": {
      "type": "object",
      "description": "A named selection for this `SELECTION`-type custom attribute definition.",
      "x-release-status": "PUBLIC",
      "required": [
        "name"
      ],
      "properties": {
        "uid": {
          "type": [
            "string",
            "null"
          ],
          "description": "Unique ID set by Square."
        },
        "name": {
          "type": "string",
          "description": "Selection name, unique within `allowed_selections`.",
          "minLength": 1,
          "maxLength": 255
        }
      }
    },
    "CatalogCustomAttributeDefinitionSellerVisibility": {
      "type": "string",
      "enum": [
        "SELLER_VISIBILITY_HIDDEN",
        "SELLER_VISIBILITY_READ_WRITE_VALUES"
      ],
      "x-enum-elements": [
        {
          "name": "SELLER_VISIBILITY_HIDDEN",
          "description": "Sellers cannot read this custom attribute in Square client\napplications or Square APIs."
        },
        {
          "name": "SELLER_VISIBILITY_READ_WRITE_VALUES",
          "description": "Sellers can read and write this custom attribute value in catalog objects,\nbut cannot edit the custom attribute definition."
        }
      ],
      "description": "Defines the visibility of a custom attribute to sellers in Square\nclient applications, Square APIs or in Square UIs (including Square Point\nof Sale applications and Square Dashboard).",
      "x-release-status": "PUBLIC"
    },
    "CatalogCustomAttributeDefinitionStringConfig": {
      "type": "object",
      "description": "Configuration associated with Custom Attribute Definitions of type `STRING`.",
      "x-release-status": "PUBLIC",
      "properties": {
        "enforce_uniqueness": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "If true, each Custom Attribute instance associated with this Custom Attribute\nDefinition must have a unique value within the seller's catalog. For\nexample, this may be used for a value like a SKU that should not be\nduplicated within a seller's catalog. May not be modified after the\ndefinition has been created."
        }
      }
    },
    "CatalogCustomAttributeDefinitionType": {
      "type": "string",
      "enum": [
        "STRING",
        "BOOLEAN",
        "NUMBER",
        "SELECTION"
      ],
      "x-enum-elements": [
        {
          "name": "STRING",
          "description": "A free-form string containing up to 255 characters."
        },
        {
          "name": "BOOLEAN",
          "description": "A `true` or `false` value."
        },
        {
          "name": "NUMBER",
          "description": "A decimal string representation of a number. Can support up to 5 digits after the decimal point."
        },
        {
          "name": "SELECTION",
          "description": "One or more choices from `allowed_selections`."
        }
      ],
      "description": "Defines the possible types for a custom attribute.",
      "x-release-status": "PUBLIC"
    },
    "CatalogCustomAttributeValue": {
      "type": "object",
      "description": "An instance of a custom attribute. Custom attributes can be defined and\nadded to `ITEM` and `ITEM_VARIATION` type catalog objects.\n[Read more about custom attributes](https://developer.squareup.com/docs/catalog-api/add-custom-attributes).",
      "x-release-status": "PUBLIC",
      "properties": {
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "The name of the custom attribute."
        },
        "string_value": {
          "type": [
            "string",
            "null"
          ],
          "description": "The string value of the custom attribute.  Populated if `type` = `STRING`."
        },
        "custom_attribute_definition_id": {
          "type": "string",
          "description": "The id of the [CatalogCustomAttributeDefinition](entity:CatalogCustomAttributeDefinition) this value belongs to.",
          "readOnly": true
        },
        "type": {
          "$ref": "#/$defs/CatalogCustomAttributeDefinitionType",
          "description": "A copy of type from the associated `CatalogCustomAttributeDefinition`.\nSee [CatalogCustomAttributeDefinitionType](#type-catalogcustomattributedefinitiontype) for possible values",
          "readOnly": true
        },
        "number_value": {
          "type": [
            "string",
            "null"
          ],
          "description": "Populated if `type` = `NUMBER`. Contains a string\nrepresentation of a decimal number, using a `.` as the decimal separator."
        },
        "boolean_value": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "A `true` or `false` value. Populated if `type` = `BOOLEAN`."
        },
        "selection_uid_values": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          },
          "description": "One or more choices from `allowed_selections`. Populated if `type` = `SELECTION`."
        },
        "key": {
          "type": "string",
          "description": "If the associated `CatalogCustomAttributeDefinition` object is defined by another application, this key is prefixed by the defining application ID.\nFor example, if the CatalogCustomAttributeDefinition has a key attribute of \"cocoa_brand\" and the defining application ID is \"abcd1234\", this key is \"abcd1234:cocoa_brand\"\nwhen the application making the request is different from the application defining the custom attribute definition. Otherwise, the key is simply \"cocoa_brand\".",
          "readOnly": true
        }
      }
    },
    "CatalogDiscount": {
      "type": "object",
      "description": "A discount applicable to items.",
      "x-release-status": "PUBLIC",
      "properties": {
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "The discount name. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points.",
          "maxLength": 255
        },
        "discount_type": {
          "$ref": "#/$defs/CatalogDiscountType",
          "description": "Indicates whether the discount is a fixed amount or percentage, or entered at the time of sale.\nSee [CatalogDiscountType](#type-catalogdiscounttype) for possible values"
        },
        "percentage": {
          "type": [
            "string",
            "null"
          ],
          "description": "The percentage of the discount as a string representation of a decimal number, using a `.` as the decimal\nseparator and without a `%` sign. A value of `7.5` corresponds to `7.5%`. Specify a percentage of `0` if `discount_type`\nis `VARIABLE_PERCENTAGE`.\n\nDo not use this field for amount-based or variable discounts."
        },
        "amount_money": {
          "$ref": "#/$defs/Money",
          "description": "The amount of the discount. Specify an amount of `0` if `discount_type` is `VARIABLE_AMOUNT`.\n\nDo not use this field for percentage-based or variable discounts."
        },
        "pin_required": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether a mobile staff member needs to enter their PIN to apply the\ndiscount to a payment in the Square Point of Sale app."
        },
        "label_color": {
          "type": [
            "string",
            "null"
          ],
          "description": "The color of the discount display label in the Square Point of Sale app. This must be a valid hex color code."
        },
        "modify_tax_basis": {
          "$ref": "#/$defs/CatalogDiscountModifyTaxBasis",
          "description": "Indicates whether this discount should reduce the price used to calculate tax.\n\nMost discounts should use `MODIFY_TAX_BASIS`. However, in some circumstances taxes must\nbe calculated based on an item's price, ignoring a particular discount. For example,\nin many US jurisdictions, a manufacturer coupon or instant rebate reduces the price a\ncustomer pays but does not reduce the sale price used to calculate how much sales tax is\ndue. In this case, the discount representing that manufacturer coupon should have\n`DO_NOT_MODIFY_TAX_BASIS` for this field.\n\nIf you are unsure whether you need to use this field, consult your tax professional.\nSee [CatalogDiscountModifyTaxBasis](#type-catalogdiscountmodifytaxbasis) for possible values"
        },
        "maximum_amount_money": {
          "$ref": "#/$defs/Money",
          "description": "For a percentage discount, the maximum absolute value of the discount. For example, if a\n50% discount has a `maximum_amount_money` of $20, a $100 purchase will yield a $20 discount,\nnot a $50 discount."
        }
      }
    },
    "CatalogDiscountModifyTaxBasis": {
      "type": "string",
      "enum": [
        "MODIFY_TAX_BASIS",
        "DO_NOT_MODIFY_TAX_BASIS"
      ],
      "x-enum-elements": [
        {
          "name": "MODIFY_TAX_BASIS",
          "description": "Application of the discount will modify the tax basis."
        },
        {
          "name": "DO_NOT_MODIFY_TAX_BASIS",
          "description": "Application of the discount will not modify the tax basis."
        }
      ],
      "x-release-status": "PUBLIC"
    },
    "CatalogDiscountType": {
      "type": "string",
      "enum": [
        "FIXED_PERCENTAGE",
        "FIXED_AMOUNT",
        "VARIABLE_PERCENTAGE",
        "VARIABLE_AMOUNT"
      ],
      "x-enum-elements": [
        {
          "name": "FIXED_PERCENTAGE",
          "description": "Apply the discount as a fixed percentage (e.g., 5%) off the item price."
        },
        {
          "name": "FIXED_AMOUNT",
          "description": "Apply the discount as a fixed amount (e.g., $1.00) off the item price."
        },
        {
          "name": "VARIABLE_PERCENTAGE",
          "description": "Apply the discount as a variable percentage off the item price. The percentage will be specified at the time of sale."
        },
        {
          "name": "VARIABLE_AMOUNT",
          "description": "Apply the discount as a variable amount off the item price. The amount will be specified at the time of sale."
        }
      ],
      "description": "How to apply a CatalogDiscount to a CatalogItem.",
      "x-release-status": "PUBLIC"
    },
    "CatalogEcomSeoData": {
      "type": "object",
      "description": "SEO data for for a seller's Square Online store.",
      "x-release-status": "PUBLIC",
      "properties": {
        "page_title": {
          "type": [
            "string",
            "null"
          ],
          "description": "The SEO title used for the Square Online store."
        },
        "page_description": {
          "type": [
            "string",
            "null"
          ],
          "description": "The SEO description used for the Square Online store."
        },
        "permalink": {
          "type": [
            "string",
            "null"
          ],
          "description": "The SEO permalink used for the Square Online store."
        }
      }
    },
    "CatalogIdMapping": {
      "type": "object",
      "description": "A mapping between a temporary client-supplied ID and a permanent server-generated ID.\n\nWhen calling [UpsertCatalogObject](api-endpoint:Catalog-UpsertCatalogObject) or\n[BatchUpsertCatalogObjects](api-endpoint:Catalog-BatchUpsertCatalogObjects) to\ncreate a [CatalogObject](entity:CatalogObject) instance, you can supply\na temporary ID for the to-be-created object, especially when the object is to be referenced\nelsewhere in the same request body. This temporary ID can be any string unique within\nthe call, but must be prefixed by \"#\".\n\nAfter the request is submitted and the object created, a permanent server-generated ID is assigned\nto the new object. The permanent ID is unique across the Square catalog.",
      "x-release-status": "PUBLIC",
      "properties": {
        "client_object_id": {
          "type": [
            "string",
            "null"
          ],
          "description": "The client-supplied temporary `#`-prefixed ID for a new `CatalogObject`."
        },
        "object_id": {
          "type": [
            "string",
            "null"
          ],
          "description": "The permanent ID for the CatalogObject created by the server."
        }
      }
    },
    "CatalogImage": {
      "type": "object",
      "description": "An image file to use in Square catalogs. It can be associated with\n`CatalogItem`, `CatalogItemVariation`, `CatalogCategory`, and `CatalogModifierList` objects.\nOnly the images on items and item variations are exposed in Dashboard.\nOnly the first image on an item is displayed in Square Point of Sale (SPOS).\nImages on items and variations are displayed through Square Online Store.\nImages on other object types are for use by 3rd party application developers.",
      "x-release-status": "PUBLIC",
      "properties": {
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "The internal name to identify this image in calls to the Square API.\nThis is a searchable attribute for use in applicable query filters\nusing the [SearchCatalogObjects](api-endpoint:Catalog-SearchCatalogObjects).\nIt is not unique and should not be shown in a buyer facing context."
        },
        "url": {
          "type": [
            "string",
            "null"
          ],
          "description": "The URL of this image, generated by Square after an image is uploaded\nusing the [CreateCatalogImage](api-endpoint:Catalog-CreateCatalogImage) endpoint.\nTo modify the image, use the UpdateCatalogImage endpoint. Do not change the URL field."
        },
        "caption": {
          "type": [
            "string",
            "null"
          ],
          "description": "A caption that describes what is shown in the image. Displayed in the\nSquare Online Store. This is a searchable attribute for use in applicable query filters\nusing the [SearchCatalogObjects](api-endpoint:Catalog-SearchCatalogObjects)."
        },
        "photo_studio_order_id": {
          "type": [
            "string",
            "null"
          ],
          "description": "The immutable order ID for this image object created by the Photo Studio service in Square Online Store."
        }
      }
    },
    "CatalogItem": {
      "type": "object",
      "description": "A [CatalogObject](entity:CatalogObject) instance of the `ITEM` type, also referred to as an item, in the catalog.",
      "x-release-status": "PUBLIC",
      "properties": {
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.",
          "maxLength": 512
        },
        "description": {
          "type": [
            "string",
            "null"
          ],
          "description": "The item's description. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points.\n\nDeprecated at 2022-07-20, this field is planned to retire in 6 months. You should migrate to use `description_html` to set the description\nof the [CatalogItem](entity:CatalogItem) instance.  The `description` and `description_html` field values are kept in sync. If you try to\nset the both fields, the `description_html` text value overwrites the `description` value. Updates in one field are also reflected in the other,\nexcept for when you use an early version before Square API 2022-07-20 and `description_html` is set to blank, setting the `description` value to null\ndoes not nullify `description_html`.",
          "maxLength": 4096,
          "x-release-status": "DEPRECATED"
        },
        "abbreviation": {
          "type": [
            "string",
            "null"
          ],
          "description": "The text of the item's display label in the Square Point of Sale app. Only up to the first five characters of the string are used.\nThis attribute is searchable, and its value length is of Unicode code points.",
          "maxLength": 24
        },
        "label_color": {
          "type": [
            "string",
            "null"
          ],
          "description": "The color of the item's display label in the Square Point of Sale app. This must be a valid hex color code."
        },
        "is_taxable": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether the item is taxable (`true`) or non-taxable (`false`). Default is `true`."
        },
        "category_id": {
          "type": [
            "string",
            "null"
          ],
          "description": "The ID of the item's category, if any. Deprecated since 2023-12-13. Use `CatalogItem.categories`, instead.",
          "x-release-status": "DEPRECATED"
        },
        "tax_ids": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          },
          "description": "A set of IDs indicating the taxes enabled for\nthis item. When updating an item, any taxes listed here will be added to the item.\nTaxes may also be added to or deleted from an item using `UpdateItemTaxes`."
        },
        "modifier_list_info": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/$defs/CatalogItemModifierListInfo"
          },
          "description": "A set of `CatalogItemModifierListInfo` objects\nrepresenting the modifier lists that apply to this item, along with the overrides and min\nand max limits that are specific to this item. Modifier lists\nmay also be added to or deleted from an item using `UpdateItemModifierLists`."
        },
        "variations": {
          "type": [
            "array",
            "n

# --- truncated at 32 KB (197 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/square/refs/heads/main/json-schema/square-batch-upsert-catalog-objects-response-schema.json

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/square-batch-upsert-catalog-objects-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.