Merchants

NPC merchant definitions — the static "who they are" surface, distinct from /merchant/stock (which is bot-fed live inventory). Time-travel with ?at_patch= + ?branch= (see Patches).

Endpoints

GET /v2/merchants                          list
GET /v2/merchants/{id}                     single merchant
GET /v2/merchants/{id}/icon                → 302 redirect to the asset endpoint

Query parameters

NameModeDescription
idexactid.merchant.<slug> or raw Id_Merchant_<Name>
namesubstringmatches the display name
at_patchversionrender this entity at the named patch's version
branchstringbranch (default main)
page, limitpaginationdefault 25, max 250

Example

curl 'https://api.darkerdb.com/v2/merchants/id.merchant.alchemist'

{
   "body": {
      "id":             "id.merchant.alchemist",
      "name":           "Alchemist",
      "patch_version":  "build-22811648-hotfix-113",
      "icon_url":       "/v1/codex/assets/...",
      "source_key":     "Id_Merchant_Alchemist",
      "art_data":       "Alchemist",
      "order":          1,
      "service_types":  [ "EDCMerchantServiceType::Buy", "EDCMerchantServiceType::Sell" ],
      "greeting_texts": [ { "key": "Text_…", "namespace": "DC" } ]
   }
}

service_types is the enum-array of capabilities the merchant exposes (Buy, Sell, Craft, Quest). greeting_texts are localization keys — resolve via the /v2/quests-style ?locale= parameter once localization comes online for merchants.