Server-to-Server (REST API)

Call the Xref API from your backend in 4 steps.

Wizerr App

1 Generate your server key

Go to Settings → API Access. Click Generate Server Key under the Server Key section.

Dashboard - Generate Server Key button
Click "Generate Server Key" to create your S2S key pair.

2 Save your credentials

A dialog shows your API Key and API Secret. The secret is shown only once. Copy it now or download the .txt file.

Save Your Server Credentials dialog
Copy both values. The secret cannot be retrieved later.
Never expose the API secret in client-side code, public repos, or mobile apps. Store it in an environment variable or secret manager.

3 Set your preferred suppliers

Go to Settings → Preferred Suppliers. Search for a manufacturer and click + to add it.

The API will only return cross-reference results from suppliers on this list. Make sure you add every manufacturer you want to see in your results.

Dashboard - Preferred Suppliers page
Add the manufacturers you source from under Preferred Suppliers.
Your Server

4 Make a search request

Send a POST to https://api.wizerr.ai/v1/xref with your credentials and a part number. Each call uses 1 credit.

Required headers

HeaderValue
x-api-keyYour server API key
x-api-secretYour server API secret
Content-Typeapplication/json

Request body

FieldTypeRequiredDescription
part_numberstringYesPart number to search

Examples

cURL
Node.js
Python
curl -X POST "https://api.wizerr.ai/v1/xref" \
  -H "Content-Type: application/json" \
  -H "x-api-key: $WIZERR_API_KEY" \
  -H "x-api-secret: $WIZERR_API_SECRET" \
  -d '{ "part_number": "LM358" }'
const res = await fetch('https://api.wizerr.ai/v1/xref', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': process.env.WIZERR_API_KEY,
    'x-api-secret': process.env.WIZERR_API_SECRET,
  },
  body: JSON.stringify({ part_number: 'LM358' }),
});

const data = await res.json();
console.log(data.results);
import requests

resp = requests.post(
    "https://api.wizerr.ai/v1/xref",
    headers={
        "x-api-key": WIZERR_API_KEY,
        "x-api-secret": WIZERR_API_SECRET,
    },
    json={ "part_number": "LM358" },
)

data = resp.json()
print(data["results"])

Response format

The response is a JSON object with two root fields:

input_part_details object

Metadata about the part you searched for.

FieldTypeDescription
part_numberstringThe part number you submitted
manufacturerstringDetected manufacturer of the input part
variant_part_numberstring | nullWhen your exact part number is not in our database, we use a closely related variant to produce the results. Contains that variant's part number. null when results are for your exact input.

results array

Cross-reference matches. Each result has a type indicating the search tier:

wizerr-deep-search Best matches — high-confidence drop-in replacements with a compatibility score.
wizerr-expanded-search Additional alternates — functionally similar parts from a broader search.

FieldTypeDescription
part_numberstringCross-reference part number
manufacturerstringManufacturer name
descriptionstringPart description
match_typestring"DROP-IN" or "ALTERNATE"
match_scorenumberCompatibility score (present on deep-search results)
preferred_supplierbooleantrue if the manufacturer is on your preferred list
typestring"wizerr-deep-search" or "wizerr-expanded-search"

Example

{
  "input_part_details": {
    "part_number": "TPS24701DGK",
    "manufacturer": "Texas Instruments",
    "variant_part_number": null
  },
  "results": [
    {
      "part_number": "IS31BL3212-DLS2-TR",
      "manufacturer": "Lumissil Microsystems",
      "description": "IC LED DRIVER LINEAR 23MA 8DFN",
      "match_type": "DROP-IN",
      "match_score": 0.96,
      "preferred_supplier": true,
      "type": "wizerr-deep-search"
    },
    {
      "part_number": "LTC4211CMS8#PBF",
      "manufacturer": "Analog Devices Inc.",
      "description": "IC HOT SWAP CTRLR GP 8MSOP",
      "match_type": "ALTERNATE",
      "preferred_supplier": true,
      "type": "wizerr-expanded-search"
    }
  ]
}

Error responses

Errors return JSON with an error code and message.

StatusErrorMeaning
400invalid_inputMissing or invalid part_number
401missing_api_keyNo x-api-key header
401invalid_api_keyKey not found
401missing_api_secretMissing x-api-secret header
401invalid_api_secretWrong secret
402insufficient_creditsNo credits remaining
429rate_limit_exceededToo many requests - see Rate limits
504request_timeoutSearch exceeded timeout