<?xml version="1.0"?>
<documentation>
  <resource name="product" comments="Handles all actions concerning the reading and manipulation of products.">
    <action name="create" comments="Creates a new product definition based on the given merchandise id. This product definition may be saved as a new product after adding desired designs.">
      <parameter name="merchandiseId" comments="The numeric id of a particular merchandise." />
    </action>
    <action name="listByStore" comments="Returns all products of the given store id in the top-level store (i.e. storeSectionId=0) The specified store must belong to the current user if it is private or not visible">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
    </action>
    <action name="listByStore" comments="Returns products of the given store id in the top-level store (i.e. storeSectionId=0) limited by the comma-separated list of merchandise ids. The specified store must belong to the current user if it is private or not visible">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
      <parameter name="merchandiseIds" comments="Ids of merchandise. Use a comma-separated list of ids or one 'merchandiseIds' parameter per id. You may exclude merchandise by listing negative ids. If any negative ids are found the inverse set of those negatives will be returned (positive ids will be igored if negatives occur.)" />
      <parameter name="page" comments="A Zero-based index into the list of designs." />
      <parameter name="pageSize" comments="The number of products per page." />
    </action>
    <action name="listByStoreSection" comments="Returns products of the given store and section id limited by the comma-separated list of merchandise ids. The specified store section must belong to a store of the current user if it is not visible. Secion id 0 is the root section.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
      <parameter name="sectionId" comments="The numeric id of a section of a store. Section ids are unique except for section id 0, which represents the top-level contents of a store." />
      <parameter name="merchandiseIds" comments="Ids of merchandise. Use a comma-separated list of ids or one 'merchandiseIds' parameter per id. You may exclude merchandise by listing negative ids. If any negative ids are found the inverse set of those negatives will be returned (positive ids will be igored if negatives occur.)" />
      <parameter name="page" comments="A Zero-based index into the list of designs." />
      <parameter name="pageSize" comments="The number of products per page." />
    </action>
    <action name="listByStoreSection" comments="Returns all products of the given store and section id. The specified store section must belong to a store of the current user if it is not visible. Secion id 0 is the root section.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
      <parameter name="sectionId" comments="The numeric id of a section of a store. Section ids are unique except for section id 0, which represents the top-level contents of a store." />
      <parameter name="page" comments="A Zero-based index into the list of designs." />
      <parameter name="pageSize" comments="The number of products per page." />
    </action>
    <action name="search" comments="Search for products matching the given query string. Search data results has different fields than other API calls.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="query" comments="A query string to match to searchable products of all users." />
    </action>
    <action name="listAnonymousProducts" comments="Retuns all products created by the current anonymous user. Anonymous users have no stores thus this is the only access to their products. The current user must be anonymous.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
    </action>
    <action name="listDeepByStore" comments="Returns all products of the given store id and all products in sections and subsections.The results are paged with a maximum of 256 results per page. The specified store must belong to the current user (the matching the user token, if provided) if it is not visible. Hidden sections and their subsections will be skipped unless the current user owns the store.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
      <parameter name="page" comments="A Zero-based index into the list of designs." />
      <parameter name="pageSize" comments="The number of products per page." />
    </action>
    <action name="countByStore" comments="Counts products of the given store id in the top-level store (i.e. storeSectionId=0) limited by the comma-separated list of merchandise ids. The specified store must belong to the current user if it is private or not visible">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
      <parameter name="merchandiseIds" comments="Ids of merchandise. Use a comma-separated list of ids or one 'merchandiseIds' parameter per id. You may exclude merchandise by listing negative ids. If any negative ids are found the inverse set of those negatives will be returned (positive ids will be igored if negatives occur.)" />
    </action>
    <action type="POST" name="save" comments="Creates or updates the given product. Existing products have a non-zero id. The product must belong to the current user. If product definition's user id, if omitted, will default to the current user. The product definition's store id, if omitted, will default to the unspecified store id for registered users. The product definition's store section id, if omitted, will cause the product to save to the base store location.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="value" comments="A product definition. Use product.getExample.cp or product.create.cp for an example product definition." />
    </action>
    <action name="listByStore" comments="Returns products of the given store id in the top-level store (i.e. storeSectionId=0) limited by the comma-separated list of merchandise ids. The specified store must belong to the current user if it is private or not visible">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
      <parameter name="merchandiseIds" comments="Ids of merchandise. Use a comma-separated list of ids or one 'merchandiseIds' parameter per id. You may exclude merchandise by listing negative ids. If any negative ids are found the inverse set of those negatives will be returned (positive ids will be igored if negatives occur.)" />
    </action>
    <action name="search" comments="Search for products among all merchandise types matching the given criteria">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="query" comments="A query string to match to searchable products of all users." />
      <parameter name="pageNumber" comments="The desired page number of results (the first page is page 1)." />
      <parameter name="resultsPerPage" comments="The number of search results to return per page." />
      <parameter name="maxProductsPerDesign" comments="The maximum number of products to return per unique design." />
      <parameter name="sort" comments="The sort order of the search results. The possible values are by_score_desc and by_date_desc." />
    </action>
    <action name="listByStoreSection" comments="Returns all products of the given store and section id. The specified store section must belong to a store of the current user if it is not visible. Secion id 0 is the root section.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
      <parameter name="sectionId" comments="The numeric id of a section of a store. Section ids are unique except for section id 0, which represents the top-level contents of a store." />
    </action>
    <action name="getExample" comments="Returns an example product definition" />
    <action name="advancedSearch" comments="DEPRECATED: use the corresponding 'search' resource with page-based result requesting.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="query" comments="A query string to match to searchable products of all users." />
      <parameter name="merchandiseIds" comments="Ids of merchandise. Use a comma-separated list of ids or one 'merchandiseIds' parameter per id. You may exclude merchandise by listing negative ids. If any negative ids are found the inverse set of those negatives will be returned (positive ids will be igored if negatives occur.)" />
      <parameter name="startResults" comments="Zero-based index of the first search result to return." />
      <parameter name="maxResults" comments="The maximum number of search results to return." />
      <parameter name="maxProductsPerDesign" comments="The maximum number of products to return per unique design." />
      <parameter name="sort" comments="The sort order of the search results. The possible values are by_score_desc and by_date_desc." />
    </action>
    <action name="searchForProductsOfStore" comments="Fetch product search data for the given store id and merchandise ids. Search data results have different fields than other API calls.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
      <parameter name="merchandiseIds" comments="Ids of merchandise. Use a comma-separated list of ids or one 'merchandiseIds' parameter per id. You may exclude merchandise by listing negative ids. If any negative ids are found the inverse set of those negatives will be returned (positive ids will be igored if negatives occur.)" />
    </action>
    <action name="listByStoreSection" comments="Returns products of the given store and section id limited by the comma-separated list of merchandise ids. The specified store section must belong to a store of the current user if it is not visible. Secion id 0 is the root section.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
      <parameter name="sectionId" comments="The numeric id of a section of a store. Section ids are unique except for section id 0, which represents the top-level contents of a store." />
      <parameter name="merchandiseIds" comments="Ids of merchandise. Use a comma-separated list of ids or one 'merchandiseIds' parameter per id. You may exclude merchandise by listing negative ids. If any negative ids are found the inverse set of those negatives will be returned (positive ids will be igored if negatives occur.)" />
    </action>
    <action type="POST" name="saveAll" comments="Creates or updates the given products. Existing products have a non-zero id. The products must belong to the current user. Each product definition's user id, if omitted, will default to the current user. Each product definition's store id, if omitted, will default to the unspecified store id for registered users. Each product definition's store section id, if omitted, will cause the product to save to the base store location.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="values" comments="A list of product definitions. Use product.getExample.cp or product.create.cp for an example product definition. Products should be listed &lt;products&gt;&lt;product&gt;...&lt;/product&gt;...&lt;/products&gt;" />
    </action>
    <action name="searchForProduct" comments="Fetch product search data for the given product id. Search data results has different fields than other API calls. Results are limited to 256 results.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="productId" comments="The numeric id of a particular product." />
    </action>
    <action name="countByStoreSection" comments="Counts all products of the given store and section id. The specified store section must belong to a store of the current user if it is not visible. Secion id 0 is the root section.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
      <parameter name="sectionId" comments="The numeric id of a section of a store. Section ids are unique except for section id 0, which represents the top-level contents of a store." />
    </action>
    <action name="searchForProductsOfStore" comments="Fetch product search data for the given store id and merchandise ids. Search data results have different fields than other API calls.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
      <parameter name="merchandiseIds" comments="Ids of merchandise. Use a comma-separated list of ids or one 'merchandiseIds' parameter per id. You may exclude merchandise by listing negative ids. If any negative ids are found the inverse set of those negatives will be returned (positive ids will be igored if negatives occur.)" />
      <parameter name="page" comments="A Zero-based index into the list of designs." />
      <parameter name="pageSize" comments="The number of products per page." />
    </action>
    <action name="advancedSearch" comments="DEPRECATED: use the corresponding 'search' resource with page-based result requesting.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="query" comments="A query string to match to searchable products of all users." />
      <parameter name="startResults" comments="Zero-based index of the first search result to return." />
      <parameter name="maxResults" comments="The maximum number of search results to return." />
      <parameter name="maxProductsPerDesign" comments="The maximum number of products to return per unique design." />
      <parameter name="sort" comments="The sort order of the search results. The possible values are by_score_desc and by_date_desc." />
    </action>
    <action name="search" comments="Search for products of certain merchandise ids matching the given criteria">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="query" comments="A query string to match to searchable products of all users." />
      <parameter name="merchandiseIds" comments="Ids of merchandise. Use a comma-separated list of ids or one 'merchandiseIds' parameter per id. You may exclude merchandise by listing negative ids. If any negative ids are found the inverse set of those negatives will be returned (positive ids will be igored if negatives occur.)" />
      <parameter name="pageNumber" comments="The desired page number of results (the first page is page 1)." />
      <parameter name="resultsPerPage" comments="The number of search results to return per page." />
      <parameter name="maxProductsPerDesign" comments="The maximum number of products to return per unique design." />
      <parameter name="sort" comments="The sort order of the search results. The possible values are by_score_desc and by_date_desc." />
    </action>
    <action name="find" comments="Returns the product with the given id.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="id" comments="The numeric id of a particular product." />
    </action>
    <action name="listByStore" comments="Returns all products of the given store id in the top-level store (i.e. storeSectionId=0) The specified store must belong to the current user if it is private or not visible">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
      <parameter name="page" comments="A Zero-based index into the list of designs." />
      <parameter name="pageSize" comments="The number of products per page." />
    </action>
    <action name="findByDesignId" comments="Returns the all sellable products with the given designId. Incomplete products are excluded.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="designId" comments="The numeric design id of a particular design" />
    </action>
    <action name="countDeepByStore" comments="Returns a count of all products of the given store id and all products in sections and subsections. The specified store must belong to the current user (the matching the user token, if provided) if it is not visible. Hidden sections and their subsections will be skipped unless the current user owns the store.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
    </action>
    <action name="countByStoreSection" comments="Counts products of the given store and section id limited by the comma-separated list of merchandise ids. The specified store section must belong to a store of the current user if it is not visible. Secion id 0 is the root section.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
      <parameter name="sectionId" comments="The numeric id of a section of a store. Section ids are unique except for section id 0, which represents the top-level contents of a store." />
      <parameter name="merchandiseIds" comments="Ids of merchandise. Use a comma-separated list of ids or one 'merchandiseIds' parameter per id. You may exclude merchandise by listing negative ids. If any negative ids are found the inverse set of those negatives will be returned (positive ids will be igored if negatives occur.)" />
    </action>
    <action name="countByStore" comments="Counts all products of the given store id in the top-level store (i.e. storeSectionId=0) The specified store must belong to the current user if it is private or not visible">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
    </action>
  </resource>
  <resource name="image" comments="Methods to upload image files. You must make these calls with the host upload.cafepress.com rather than api.cafepress.com.">
    <action name="upload" comments="Upload one or more image files to the given folder. You may upload files in multi-part posts with file parameters named cpfile1, cpfile2, etc.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="folder" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
      <parameter name="cpFile1...cpFile5" comments="" />
    </action>
  </resource>
  <resource name="design" comments="Handles all actions concerning loading and saving of designs.">
    <action name="moveDesigns" comments="Moves designs of the given ids to the specified folder. Design ids may represent uploaded raster images or saved SVG designs.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="designIds" comments="Design ids of designs created by uploading raster images or by saving SVG. Use a comma-separated list of ids or one 'designIds' parameter per id" />
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
    </action>
    <action name="list" comments="Returns all designs in the current user's base image folder.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
    </action>
    <action name="moveAndTagDesigns" comments="Moves designs of the given ids to the specified folder, tags them with the given tags, and categorizes them with the given category. Design ids may represent uploaded raster images or saved SVG designs.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="designIds" comments="Design ids of designs created by uploading raster images or by saving SVG. Use a comma-separated list of ids or one 'designIds' parameter per id" />
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
      <parameter name="tags" comments="Labels to associate with a design to aid in categorizing and searching for designs accross all users." />
      <parameter name="category" comments="Broad categorizer of a design. See cp.listCategories.cp" />
    </action>
    <action name="listFolders" comments="List all subsfolders of the base image folder, returning the name of each folder.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
    </action>
    <action name="list" comments="Returns up to the first 256 images in the given subfolder of the base image folder. Returns an empty list if either the folder does not exist.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
    </action>
    <action name="findFolderByName" comments="Find the folder with the given name.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="name" comments="" />
    </action>
    <action name="getExampleSvg" comments="Returns an example design." />
    <action name="moveAndTagDesigns" comments="Moves designs of the given ids to the specified folder and tags them with the given tags. Design ids may represent uploaded raster images or saved SVG designs.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="designIds" comments="Design ids of designs created by uploading raster images or by saving SVG. Use a comma-separated list of ids or one 'designIds' parameter per id" />
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
      <parameter name="tags" comments="Labels to associate with a design to aid in categorizing and searching for designs accross all users." />
    </action>
    <action type="POST" name="update" comments="Updates the given design without updating its SVG XML. Existing designs have a non-zero id. If the design does not specify a parent folder, it is moved to the base image folder. The design must belong to the current user.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="value" comments="A design definition, which may or may not include its SVG XML." />
    </action>
    <action name="count" comments="Returns the number of designs in the given subfolder of the base image folder. Returns 0 if either the folder does not exist or there are no designs in the folder">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
    </action>
    <action name="listPage" comments="Retrieves a subset of designs in the given subfolder of the base image folder with the given creator string. Returns an empty list if either the folder does not exist or no files with the given creator string exist. Uses a page index and images per page to limit which images are returned.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
      <parameter name="creator" comments="A string which identifies a design as being modified by a certain application. This string may be associated with design when creating or updating it." />
      <parameter name="page" comments="A Zero-based index into the list of designs." />
      <parameter name="pageSize" comments="The number of designs to return per page." />
    </action>
    <action type="POST" name="save" comments="Saves a new design with the given SVG XML specified outside of the design definition. If the design does not specify a parent folder, it is stored or moved to the base image folder. Note that you can no longer update the SVG XML of an existing design. If you call this method with an existing design, a new design will be created with the given design, SVG, and folder properties.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="value" comments="A design definition, which may or may not include its SVG XML." />
      <parameter name="svg" comments="An SVG XML string" />
    </action>
    <action name="countDesignsInStore" comments="">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
    </action>
    <action name="tagDesigns" comments="Tags design of the given ids with the given tags. Design ids may represent uploaded raster images or saved SVG designs.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="designIds" comments="Design ids of designs created by uploading raster images or by saving SVG. Use a comma-separated list of ids or one 'designIds' parameter per id" />
      <parameter name="tags" comments="Labels to associate with a design to aid in categorizing and searching for designs accross all users." />
      <parameter name="category" comments="Broad categorizer of a design. See cp.listCategories.cp" />
    </action>
    <action name="makeFolder" comments="Creates a subfolder of the base image folder with the given name. If the folder already exists no folder is created. In either case folder name is  returned.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
    </action>
    <action name="tagDesigns" comments="Tags designs of the given ids with the given. Design ids may represent uploaded raster images or saved SVG designs.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="designIds" comments="Design ids of designs created by uploading raster images or by saving SVG. Use a comma-separated list of ids or one 'designIds' parameter per id" />
      <parameter name="tags" comments="Labels to associate with a design to aid in categorizing and searching for designs accross all users." />
    </action>
    <action name="svg" comments="Decremented, use findSvg.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="id" comments="The numeric design id of a particular design" />
    </action>
    <action name="getLast" comments="Returns the last design added to the base image folder.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
    </action>
    <action name="list" comments="Retrieves the top 256 images in the base image folder which contain the given creator string. The creator string is used by applications to identify the designs which the application has created.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="creator" comments="A string which identifies a design as being modified by a certain application. This string may be associated with design when creating or updating it." />
    </action>
    <action name="count" comments="Returns the number images in the base image folder which contain the given creator string. The creator string is used by applications to identify the designs which the application has created.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="creator" comments="A string which identifies a design as being modified by a certain application. This string may be associated with design when creating or updating it." />
    </action>
    <action name="listCategories" comments="Lists the design categories under which a design may be categorized. The results return pairs, the key to pass to other API methods, and the text that can be displayed to the user." />
    <action name="getExample" comments="Returns an example design." />
    <action name="listPage" comments="Retrieves a subset of designs in the base image folder. Returns an empty list if either the folder does not exist or no files with the given creator string exist. Uses a page index and images per page to limit which images are returned.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="page" comments="A Zero-based index into the list of designs." />
      <parameter name="pageSize" comments="The number of designs to return per page." />
    </action>
    <action name="findFolder" comments="Find the folder with the given id.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="id" comments="The numeric id of the folder in the user's image folder. Note that the user's top-level image folder also has a unique id. Methods that do not require a folder id assume the top-level image folder." />
    </action>
    <action type="POST" name="save" comments="Saves a the new design with the given SVG XML specified outside of the design definition. The design is created in the given subfolder of the base image folder. Note that you can no longer update the SVG XML of an existing design. If you call this method with an existing design, a new design will be created with the given design, SVG, and folder properties.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="value" comments="A design definition, which may or may not include its SVG XML." />
      <parameter name="svg" comments="An SVG XML string" />
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
    </action>
    <action name="getLast" comments="Returns the last design added to the given image folder.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
    </action>
    <action name="count" comments="Returns the number of images in the given subfolder of the base image folder which contain the given creator string. Returns 0 if either the folder does not exist or no files with the given creator string exist. The creator string is used by applications to identify the designs which the application has created.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
      <parameter name="creator" comments="A string which identifies a design as being modified by a certain application. This string may be associated with design when creating or updating it." />
    </action>
    <action name="find" comments="Returns the design specified by the given design id.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="id" comments="The numeric design id of a particular design" />
    </action>
    <action name="count" comments="Returns the number of designs in the current user's base image folder.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
    </action>
    <action name="list" comments="Retrieves the top 256 images in the given subfolder of the base image folder which contain the given creator string. Returns an empty list if either the folder does not exist or no files with the given creator string exist. The creator string is used by applications to identify the designs which the application has created.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
      <parameter name="creator" comments="A string which identifies a design as being modified by a certain application. This string may be associated with design when creating or updating it." />
    </action>
    <action name="moveAndCategorizeDesigns" comments="Moves designs of the given ids to the specified folder and categorizes them with the given category. Design ids may represent uploaded raster images or saved SVG designs.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="designIds" comments="Design ids of designs created by uploading raster images or by saving SVG. Use a comma-separated list of ids or one 'designIds' parameter per id" />
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
      <parameter name="category" comments="Broad categorizer of a design. See cp.listCategories.cp" />
    </action>
    <action name="findSvg" comments="Returns the SVG XML of the given design id. You may only access the SVG of designs owned by the user indicated by the user token">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="id" comments="The numeric design id of a particular design" />
    </action>
    <action name="listPage" comments="Retrieves a subset of designs in the given subfolder of the base image folder. Returns an empty list if either the folder does not exist or no files with the given creator string exist. Uses a zero-based page index and images per page to limit which images are returned.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
      <parameter name="page" comments="A Zero-based index into the list of designs." />
      <parameter name="pageSize" comments="The number of designs to return per page." />
    </action>
  </resource>
  <resource name="merchandise" comments="Supplies all actions concerning merchandise.">
    <action name="find" comments="Find merchandise by its Id and Sales Channel Id, returning the full merchandise definition.">
      <parameter name="id" comments="The numeric id of a particular merchandise." />
    </action>
    <action name="findByName" comments="Find merchandise by its name.">
      <parameter name="name" comments="The name of a particular merchandise." />
    </action>
    <action name="listIds" comments="Returns a list of all merchandise ids" />
    <action name="list" comments="Returns a list of full merchandise definitions for all merchandise" />
    <action name="getExample" comments="Returns an example " />
  </resource>
  <resource name="authentication" comments="All actions concerning application and user authentication">
    <action name="resolveUser" comments="Resolve the userId from the given token">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="token" comments="" />
    </action>
    <action name="getUserToken" comments="A login procedure to retrieve a user token for a registered user without user login at cafepress.com">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="email" comments="The email address of a registered cafepress user." />
      <parameter name="password" comments="The user's password." />
    </action>
    <action name="transferAnonymousUser" comments="Merge an anonymous user's products and designs into a registered user. All media, folders, products of the anonymous user are moved to the registered user, and the anonymous user is disabled. Returns, for convenience, all products transfered with an updated user id in each product definition.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="anonymousUserToken" comments="The user token for a known anonymous user." />
    </action>
    <action name="getLoginToken" comments="A Login Token is required by the interactive login process">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
    </action>
    <action name="getAnonymousUserToken" comments="Returns a user token representing a new anonymous user who may create media and products. Use transferAnonymousUser to transfer this user's assets to a registered user.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
    </action>
    <action name="isValid" comments="Validate that a userToken are valid. Useful for checking for expired user tokens. Nonexistent tokens return an error">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="testUserToken" comments="The user token to test." />
    </action>
  </resource>
  <resource name="error" comments="Provides information about the errors returned by the API.">
    <action name="list" comments="Lists all error messages returned by the API" />
  </resource>
  <resource name="documentation" comments="Provides documentation of all API methods.">
    <action name="list" comments="Lists all available API methods and their arguments.">
      <parameter name="comments" comments="Set false to suppress comments." />
    </action>
    <action name="list" comments="Lists all available API methods and their arguments." />
    <action name="list" comments="Lists all available API methods for a particular resource type.">
      <parameter name="resource" comments="The name of the resource to document (e.g. product.)" />
    </action>
    <action name="list" comments="Lists all available API methods for the action of a particular resource type.">
      <parameter name="resource" comments="The name of the resource to document (e.g. product.)" />
      <parameter name="action" comments="The name of the action to document (e.g. save.)" />
    </action>
  </resource>
  <resource name="template" comments="">
    <action name="getLast" comments="Returns the last template added to the given image folder.">
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
    </action>
    <action name="listPage" comments="Retrieves a subset of design templates in the base image folder. Returns an empty list if either the folder does not exist or no files with the given creator string exist. Uses a page index and images per page to limit which images are returned.">
      <parameter name="page" comments="A Zero-based index into the list of designs." />
      <parameter name="pageSize" comments="The number of designs to return per page." />
    </action>
    <action name="list" comments="Returns up to the first 256 template designs in the given subfolder of the base image folder. Returns an empty list if either the folder does not exist.">
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
    </action>
    <action name="list" comments="Retrieves the top 256 template designs in the base image folder which contain the given creator string. The creator string is used by applications to identify the designs which the application has created.">
      <parameter name="creator" comments="A string which identifies a design as being modified by a certain application. This string may be associated with design when creating or updating it." />
    </action>
    <action name="find" comments="Returns the template design specified by the given design id. The design must belong to the current user.">
      <parameter name="id" comments="The numeric design id of a particular design" />
    </action>
    <action name="listFolders" comments="List all subsfolders of the base image folder, returning the name of each folder." />
    <action name="findFolder" comments="Find the folder with the given id.">
      <parameter name="id" comments="The numeric id of the folder in the user's image folder. Note that the user's top-level image folder also has a unique id. Methods that do not require a folder id assume the top-level image folder." />
    </action>
    <action name="countDesignsInStore" comments="Counts all template designs in a store">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
    </action>
    <action name="listPage" comments="Retrieves a subset of template designs in the given subfolder of the base image folder. Returns an empty list if either the folder does not exist or no files with the given creator string exist. Uses a page index and images per page to limit which images are returned.">
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
      <parameter name="page" comments="A Zero-based index into the list of designs." />
      <parameter name="pageSize" comments="The number of designs to return per page." />
    </action>
    <action name="getExample" comments="Returns an example template design." />
    <action name="list" comments="Returns all template designs in the current user's base image folder." />
    <action name="getExampleSvg" comments="Returns an example template design." />
    <action name="listPage" comments="Retrieves a subset of template designs in the given subfolder of the base image folder with the given creator string. Returns an empty list if either the folder does not exist or no files with the given creator string exist. Uses a page index and images per page to limit which images are returned.">
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
      <parameter name="creator" comments="A string which identifies a design as being modified by a certain application. This string may be associated with design when creating or updating it." />
      <parameter name="page" comments="A Zero-based index into the list of designs." />
      <parameter name="pageSize" comments="The number of designs to return per page." />
    </action>
    <action name="svg" comments="Decremented,se findSvg.">
      <parameter name="id" comments="The numeric design id of a particular design" />
    </action>
    <action name="list" comments="Retrieves the top 256 template designs in the given subfolder of the base image folder which contain the given creator string. Returns an empty list if either the folder does not exist or no files with the given creator string exist. The creator string is used by applications to identify the designs which the application has created.">
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
      <parameter name="creator" comments="A string which identifies a design as being modified by a certain application. This string may be associated with design when creating or updating it." />
    </action>
    <action name="findSvg" comments="Returns the SVG XML of the given design template id The given design id must belong to the current user">
      <parameter name="id" comments="The numeric design id of a particular design" />
    </action>
    <action name="getLast" comments="Returns the last template added to the base image folder." />
    <action name="count" comments="Returns the number of template designs in the base image folder which contain the given creator string. The creator string is used by applications to identify the designs which the application has created.">
      <parameter name="creator" comments="A string which identifies a design as being modified by a certain application. This string may be associated with design when creating or updating it." />
    </action>
    <action name="count" comments="Returns the number of template designs in the current user's base image folder." />
    <action name="count" comments="Returns the number of template designs in the given subfolder of the base image folder. Returns 0 if either the folder does not exist or there are no designs in the folder">
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
    </action>
    <action name="count" comments="Returns the number of template designs in the given subfolder of the base image folder which contain the given creator string. Returns 0 if either the folder does not exist or no files with the given creator string exist. The creator string is used by applications to identify the designs which the application has created.">
      <parameter name="folderName" comments="The name of a sub folder in the user's image folder. The special name Images refers to the user's top-level folder" />
      <parameter name="creator" comments="A string which identifies a design as being modified by a certain application. This string may be associated with design when creating or updating it." />
    </action>
  </resource>
  <resource name="store" comments="">
    <action name="findByStoreId" comments="Returns the store with the given id.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
    </action>
    <action type="POST" name="saveStoreSection" comments="Creates or updates the given store section. Identify a store section with the numeric id, or use 0 to indicate a new section. You cannot update the base section of a store (which is identified in find methods by id=0.) When updating an existing section, it must belong to the current user.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="value" comments="A store section definition. Use store.getExampleStoreSection.cp for an example store section definition." />
    </action>
    <action name="find" comments="Deprecated, Use findByStoreId">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="id" comments="The alpha-numeric id of a particular store." />
    </action>
    <action name="listStoreSubSections" comments="Lists the store sections of the given store and store section">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
      <parameter name="storeSectionid" comments="The numeric id of a section of a store. Section ids are unique except for section id 0, which represents the top-level contents of a store." />
    </action>
    <action name="findByProductId" comments="Returns the store in which the product resides. The product may belong to any user.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="productId" comments="The numeric id of a particular product." />
    </action>
    <action name="isStoreIdTaken" comments="Checks to see if the given storeId is already taken by any user">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
    </action>
    <action name="getExampleStoreSection" comments="Returns an example store section that may be used as a template." />
    <action name="countStoreSubSections" comments="Counts the store sections of the given store and store section">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
      <parameter name="storeSectionId" comments="The numeric id of a section of a store. Section ids are unique except for section id 0, which represents the top-level contents of a store." />
    </action>
    <action name="listStoreSections" comments="Lists the top-level sections of the given store.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
    </action>
    <action name="findByStoreId" comments="Returns the store with the given id allowing the user to look up a disabled store. The specified store must belong to the current user.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
      <parameter name="disabled" comments="Indicates whether to search for disabled stores or active stores. Use false for disabled, true for enabled" />
    </action>
    <action name="listStores" comments="Lists all the stores of the current user.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
    </action>
    <action type="POST" name="saveStore" comments="Creates or updates the given store. Identify a store with the string id which is the URL path of the store. Use IsStoreIdTaken() to verify a store id is available before creating a new store. When updating an existing store, it must belong to the current user.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="userToken" comments="The unique key giving an API application permission to access the data of a certain user." />
      <parameter name="value" comments="A store definition. Use store.getExampleStore.cp for an example store definition. Note that if isPremiumStore is set to false, most properties of the definition concerning customization of the store will be ignored. See cafepress.com for the capabilities of Premium Shops versus Basic Shops." />
    </action>
    <action name="countStoreSections" comments="Counts the top-level sections of the given store">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
    </action>
    <action name="list" comments="Deprecated, use listStores.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
    </action>
    <action name="getExampleStore" comments="Returns an example store that may be used as a template." />
    <action name="findByStoreSectionId" comments="Returns the store section with the given store and section id. The specified store must belong to the current user.">
      <parameter name="appKey" comments="The unique key identifying an API application. Required to authenticate a user." />
      <parameter name="storeId" comments="The alpha-numeric id of a particular store." />
      <parameter name="storeSectionId" comments="The numeric id of a section of a store. Section ids are unique except for section id 0, which represents the top-level contents of a store." />
    </action>
  </resource>
</documentation>