AdvisorFind Matching API

Server-to-server integration · v1

Download OpenAPI specification

1. Store your token on your server

Set ADVISORFIND_API_TOKEN in your server’s secret environment. Send it in the Authorization header. Do not put it in browser code, URLs, or logs. It grants matching access only; it does not grant admin or advisor-account access. Tokens remain valid until revoked in Admin → API access.

2. Verify authentication

curl https://platform.advisorfind.com/v1/token -H "Authorization: Bearer $ADVISORFIND_API_TOKEN"

This does not call an AI model.

3. Send client JSON

Save this as client.json. Use exact field names and enum values. Booleans must be true/false, not strings. No location is needed.

{
  "client": {
    "ageRange": "55to64",
    "hasRetirementAccounts": true,
    "married": true,
    "childrenUnder18": false,
    "retirement": "preparing",
    "approach": "balanced",
    "assetBand": "500to2",
    "priorities": [
      "income",
      "tax"
    ],
    "firstName": "Alex",
    "notes": "I own a business and want help planning retirement income and reducing tax surprises."
  }
}
curl https://platform.advisorfind.com/v1/matches \
  -H "Authorization: Bearer $ADVISORFIND_API_TOKEN" \
  -H 'Content-Type: application/json' \
  --data @client.json
FieldRequired?Values / meaning
ageRangeRequiredunder35, 35to44, 45to54, 55to64, 65plus
hasRetirementAccountsRequiredboolean
marriedRequiredboolean
childrenUnder18Requiredboolean
retirementRequirednotsoon, preparing, retired
approachRequiredpreservation, balanced, growth
assetBandRequiredunder250, 250to500, 500to2, 2to5, over5
prioritiesRequiredenough, income, risk, tax, aligned
firstNameOptionalOptional; nonblank, no control characters. Returned as metadata, not used to rank.
notesOptionalOptional free-form survey answer, used by AI matching.
investableAssetsOptionalOptional exact USD assets; must be within assetBand. Bands: under250 [0,250000); 250to500 [250000,500000); 500to2 [500000,2000000); 2to5 [2000000,5000000); over5 [5000000,infinity).

Priorities: enough = retirement readiness; income = retirement income; risk = investment risk; tax = tax planning; aligned = portfolio alignment. Client priorities are unranked.

Asset bands: under250 = below $250k; 250to500 = $250k to below $500k; 500to2 = $500k to below $2M; 2to5 = $2M to below $5M; over5 = $5M or more. If supplied, investableAssets must be a whole number within that band.

firstName: at most 100 characters. notes: at most 2,200 characters. Extra fields are rejected. Request limit: 32 KB.

4. Read results

Illustrative response; IDs and scores below are examples, not guaranteed matches.

{
  "requestId": "example-request-id",
  "advisorIds": [
    "01",
    "07",
    "12"
  ],
  "matches": [
    {
      "advisorId": "01",
      "rank": 1,
      "fitScore": 92
    },
    {
      "advisorId": "07",
      "rank": 2,
      "fitScore": 85
    },
    {
      "advisorId": "12",
      "rank": 3,
      "fitScore": 78
    }
  ],
  "status": "matched",
  "firstName": "Alex",
  "eligibleCount": 8,
  "provider": "typesafe",
  "model": "jev-latest",
  "fallbackUsed": false,
  "warnings": [],
  "elapsedMs": 180
}

advisorIds are the simple, permanent IDs from the Advisor Network page. Keep them as strings to preserve leading zeros. The first ID is the highest-ranked introduction. Map these IDs to the advisor profiles on your consumer website.

fitScore is 0–100 when supplied by TypeSafe; it is null for OpenAI or survey fallback. It is not a probability or an advisor’s permanent score. provider identifies the configured service; model identifies the model actually used. Do not hard-code model names.

Matching uses the provider selected in admin. If AI matching is unavailable, fallbackUsed is true and survey-based matching is returned; free-form notes are not evaluated in that fallback. Check warnings.

When fewer than three eligible advisors exist, status is insufficient_matches and the arrays contain 0–2 advisors. We never fabricate IDs or return disabled advisors. Display a suitable alternative to the user if the list is empty.

Errors and retries

{"error":{"code":"unauthorized","message":"The API token is invalid or revoked."},"requestId":"..."}

Limit: 60 authenticated API requests per minute per token, including token checks. The platform currently processes one match at a time; overlapping requests return 429 with Retry-After: 2. Queue requests on your server and retry 429/409/503/500 with bounded backoff (for example, up to three attempts). Use a 45-second HTTP timeout. Do not retry 400/401/413/415 without correcting the request. Requests are not idempotent: retrying a timed-out match may invoke matching again.

Matching tokens cannot read advisor email addresses, edit profiles, or access API-provider credentials. Client answers are sent to the configured matching provider; avoid unrelated sensitive details in notes. This API does not provide a public advisor directory or browser CORS access.