# Get a DM Object Retrieves the object's (Data Feed, Data Source, Datamart) row level data. A filter can be applied. If you want to achieve better performance when fetching large data sets and if you do not need the total number of items in the table – use the /datamart.fetchnocount/{typedId} endpoint instead. You can choose fields to be returned in the response by employing the resultFields or valueFields filter: resultFields: returns key-value pairs as objects. This is the more friendly response compared to valueFields but the server fetches all fields from the database in the backend which might result in a slower performance. See the List Product's listProductsResponseExample_resultFields response example. valueFields: returns just an array of values. Use this option if a better performance is required. See the List Product's listProductsResponseExample_valueFields response example. >When distinctResults is set to true, it applies only to the first column specified in the valueFields array. For example, if "valueFields": ["ConditionType", "TableNumber"] is used, only distinct values for ConditionType are returned. >Please note: >When paging is applied, use a deterministic sort (for example, "sortBy":["InvoiceLineID"]). If no sorting is defined when paging, you may get duplicates in the response. Endpoint: POST /datamart.fetch/{objectId} Security: basic, X-PriceFx-jwt ## Path parameters: - `objectId` (string, required) Use one of the following object identifiers: - typedUniquename – Format: "\.\" (e.g., DMDS.SalesTransactions) - typedId – Format: "\.\" (e.g., 123456.DMDS)' - "*" (asterisk) – Asterisk can be used when you are providing a source$query in data within the request body Example: "123456.DMDS || DMDS.Transactions || DM.TxDM || *" ## Query parameters: - `timeout` (string) Set this parameter to override the default timeout (60 seconds) of the query. The maximum allowed timeout is 300 seconds. The default timeout value and the maximum timeout value can be configured in the backend. Setting higher timeout can be useful, for example, when a query takes long time (e.g., when processing large tables). Example: "20" ## Request fields (application/json): - `endRow` (number) - `oldValues` (any) - `operationType` (string) - `startRow` (number) - `textMatchStyle` (string) - `data` (object) - `data._constructor` (string) - `data.operator` (string) - `data.criteria` (array) - `data.criteria.fieldName` (string) - `data.criteria.value` (string) - `sortBy` (array) - `resultFields` (array) The list of fields you want to return. - `valueFields` (array) - `distinctResults` (boolean) set to true to return only unique values. ## Response 200 fields (application/json): - `response` (object) - `response.node` (string) - `response.startRow` (number) - `response.data` (array) - `response.endRow` (number) - `response.totalRows` (number) - `response.status` (number)