Skip to main content
Fitment lets you define compatibility targets (e.g., vehicles) and associate them with products. When configured, Remark’s AI assistant can help customers narrow down to their specific vehicle and automatically filter search results to compatible parts.

Facets

Define the dimensions of fitment for your catalog (e.g., Year, Make, Model).

Targets

Create specific fitment targets representing individual configurations.

Product Linking

Associate fitment targets with products during import.

AI Assistant

How Remark’s assistant uses fitment data to help customers.

Before You Begin

All fitment operations require an integration API key with the FITMENT_MANAGE permission.
All fitment mutations and queries are served at https://api.remark.ai/graphql and authenticate via the X-Vendor-Api-Key header. You can also send the key as Authorization: Bearer rmrk_.... Dashboard user tokens aren’t accepted for these operations.

Facets

Facets define the dimensions used to describe a fitment target. For vehicles, typical facets are Year, Make, and Model — but you can define whatever dimensions fit your catalog. Facets are ordered by position. This ordering determines the cascading selection flow in the AI assistant (e.g., Year first, then Make, then Model).

Create a Facet

List Facets

Returns all facets for the authenticated vendor, ordered by position.

Update a Facet

All input fields (name, slug, position) are optional — only include what you want to change.

Delete a Facet

Deleting a facet cascades — all associated facet values on targets are removed.

Targets

A fitment target represents a specific configuration (e.g., “2024 Honda CRF450R”). Each target has an externalId you control and a set of facet values keyed by facet slug. Inputs take facetValues as a JSON object keyed by facet slug. Responses return facetValues as a list of { slug, name, value, position }, ordered by facet position.

Create a Target

Partial Targets

A target can leave out facets that don’t affect fit. For example, a part that fits every model of a 2024 Honda can use {"year": "2024", "make": "Honda"}. When a customer’s selections match several targets, the assistant uses the one that defines the most facets. A partial target is ignored when another target has the same values plus at least one more facet.

Bulk Upsert Targets

For loading large sets of targets (up to 5,000 per request), use bulkUpsertFitmentTargets. Targets are matched by externalId — existing targets are updated, new ones are created. Each entry replaces the matching target’s facet values. Omitting label regenerates it from the facet values, replacing any label set earlier. A request with duplicate externalId values is rejected.
Response:

List Targets

Supports cursor-based pagination and filtering by facet values:

Update a Target

All input fields (externalId, label, facetValues) are optional. Passing facetValues replaces the target’s full set of facet values.
  • Omit label to leave it unchanged (it auto-regenerates if facetValues is updated).
  • Pass label: null to clear it.
  • Pass label: "..." to override with a specific value.

Delete a Target

Deleting a target removes all product and variant associations.

Linking Products

Associate fitment targets with products by including fitmentTargetExternalIds in your product import payload. This works with both SFTP and direct API imports.
Fitment can be set at the product level, variant level, or both:
  • Product-level: Variants without their own list inherit the product’s targets.
  • Variant-level: A variant with its own list fits only those targets, whatever the product-level list says. In the example above, bp-001-organic fits only 2024-honda-crf450r.
Each list replaces the existing associations. Pass [] to clear them, or omit the field to leave them unchanged.
External IDs that don’t match existing fitment targets are ignored without an error. They won’t cause the import to fail. Create your fitment targets before importing products.

AI Assistant Behavior

Once you create at least one fitment facet, the Find fitment action becomes available in the dashboard. Add it to the Actions section of each intent where the assistant should identify the customer’s vehicle.

How it works

  1. Freeform matching: The assistant passes whatever the customer has shared (“my 24 Chevy Silverado 1500”) to the fitment tool in a single call. The tool resolves each freeform value to the catalog’s canonical value, handling aliases and formatting differences.
  2. Targeted disambiguation: If a value is ambiguous or missing, the tool returns the relevant facet and a short list of candidates for the assistant to clarify with the customer — one round-trip at a time.
  3. Target resolution: Once all facets match, the tool returns the resolved fitment target, which is remembered for the rest of the conversation.
  4. Filtered search: Product searches return only compatible products, and only the variants of each product that fit. The assistant mentions the active vehicle filter in results.

Example conversation

Customer: I need brake pads for my 2024 Honda CRF450R Assistant: Got it — I’ll filter results for your 2024 Honda CRF450R. Here are the brake pads that fit your bike: …
Disambiguation only happens when needed:
Customer: brake pads for a 2024 Honda Assistant: Which model? Common options: CRF450R, CRF450RX, CRF250R. Customer: CRF450R Assistant: Filtering for your 2024 Honda CRF450R: …

Setup Checklist

1

Create facets

Define your fitment dimensions (e.g., Year, Make, Model) with the correct ordering.
2

Load targets

Bulk upsert your fitment targets with facet values. For large catalogs, batch into requests of up to 5,000 targets each.
3

Link products

Include fitmentTargetExternalIds in your product import payloads.
4

Add the action to an intent

Add Find fitment to the intents that handle parts and compatibility questions.
5

Test

Start a conversation with Remark’s AI assistant and verify the vehicle resolution and filtered search results.

Need Help?

Contact support@remark.ai for assistance with fitment setup.