# List specs visible to this user

Only available to Buyer Users.

Endpoint: GET /me/products/{productID}/specs
Version: 1.0.450.36533
Security: OAuth2

## Path parameters:

  - `productID` (string, required)
    ID of the product.

## Query parameters:

  - `catalogID` (string)
    ID of the catalog.

  - `search` (string)
    Word or phrase to search for.

  - `searchOn` (array)
    Comma-delimited list of fields to search on.
    Enum: "Name", "ID"

  - `sortBy` (array)
    Comma-delimited list of fields to sort by.
    Enum: "ListOrder", "Name", "ID", "!ListOrder", "!Name", "!ID"

  - `page` (integer)
    Page of results to return. When paginating through many items (> page 30), we recommend the "Last ID" method, as outlined in the Advanced Querying documentation.

  - `pageSize` (integer)
    Number of results to return per page.

  - `filters` (object)
    An object or dictionary representing key/value pairs to apply as filters. Valid keys are top-level properties of the returned model or 'xp.???'

## Response 200 fields (application/json):

  - `Items` (array)
    Example: [{"OwnerID":"","ID":"","ListOrder":1,"Name":"","DefaultValue":"","Required":false,"AllowOpenText":false,"DefaultOptionID":"","DefinesVariant":false,"xp":{},"OptionCount":0,"Options":[{"ID":"","Value":"","ListOrder":1,"IsOpenText":false,"PriceMarkupType":"NoMarkup","PriceMarkup":0,"xp":{}}]}]

  - `Items.OwnerID` (string)
    ID of the organization that owns the spec. Only the marketplace owner can override the OwnerID on create.

  - `Items.ID` (string)

  - `Items.ListOrder` (integer)
    Example: 1

  - `Items.Name` (string)

  - `Items.DefaultValue` (string)
    If no value is passed in the line item spec, this value will be used.

  - `Items.Required` (boolean)

  - `Items.AllowOpenText` (boolean)
    For spec options that are not pre-defined, such as FirstName for a business card.

  - `Items.DefaultOptionID` (string)
    This property can only be written to after both the spec and options have been created. If no Spec.OptionID is passed in the line item spec, this option will be used.

  - `Items.DefinesVariant` (boolean)
    If true, each unique combinations of this spec's options should map to a unique product variant.

  - `Items.xp` (object)
    Example: {}

  - `Items.OptionCount` (integer)

  - `Items.Options` (array)
    Example: [{"ID":"","Value":"","ListOrder":1,"IsOpenText":false,"PriceMarkupType":"NoMarkup","PriceMarkup":0,"xp":{}}]

  - `Items.Options.ID` (string)

  - `Items.Options.Value` (string)

  - `Items.Options.ListOrder` (integer)
    Example: 1

  - `Items.Options.IsOpenText` (boolean)

  - `Items.Options.PriceMarkupType` (string)
    Enum: "NoMarkup", "AmountPerQuantity", "AmountTotal", "Percentage"

  - `Items.Options.PriceMarkup` (number)

  - `Items.Options.xp` (object)
    Example: {}

  - `Meta` (object)

  - `Meta.Page` (integer)

  - `Meta.PageSize` (integer)

  - `Meta.TotalCount` (integer)

  - `Meta.TotalPages` (integer)

  - `Meta.ItemRange` (array)

  - `Meta.NextPageKey` (string)

## Response 4XX fields (application/json):

  - `StatusCode` (integer)
    Example: "404"

  - `ErrorCode` (string)
    Example: "NotFoundError"

  - `Message` (string)
    Example: "Object not found"

  - `Data` (object)
    Example: {"ObjectType":"","ObjectID":""}


