API reference · Credit

Credit scorecards

GET List every scorecard, newest version first

GET /credit-scoring/scorecard

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live

Example

Response: List<ScorecardResponse>

curl -X GET "https://api.bridgemoni.com/credit-scoring/scorecard" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV"

Responses

StatusWhen
200Every scorecard, including retired ones

POST Create a draft scorecard

POST /credit-scoring/scorecard

Validated on the way in, not only at publish, so problems surface while the card is still editable. Rejections name the specific problem - a forbidden feature key comes back with the fragment it objected to, because 'rejected: forbidden input' invites an argument and 'the key contains lga, which is a geographic proxy' ends one.

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live
Content-Typeapplication/json

Example

Request body: ScorecardRequest · Response: ScorecardResponse

curl -X POST "https://api.bridgemoni.com/credit-scoring/scorecard" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "text",
    "baseScore": 1,
    "features": [
      {
        "key": "text",
        "family": "text",
        "bins": [
          {
            "...": "nested"
          }
        ],
        "positiveReasonCode": "text",
        "negativeReasonCode": "text"
      }
    ]
  }'

Responses

StatusWhen
200Draft created
400A forbidden input, bins that do not cover the real line, a duplicate feature key, or a bounded last bin

GET Read one scorecard

GET /credit-scoring/scorecard/{reference}

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live

Path parameters

Name
reference

Example

Response: ScorecardResponse

curl -X GET "https://api.bridgemoni.com/credit-scoring/scorecard/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV"

Responses

StatusWhen
200The scorecard

POST Back-test a candidate over subjects that already have scores

POST /credit-scoring/scorecard/{reference}/backtest

Replays the candidate over each subject's existing evidence and reports what would have changed. **Writes no scores** - every number is computed in memory and discarded, because persisting them would put unevaluated model output on the path a lender reads. **A back-test cannot authorise a promotion.** It only sees evidence shapes that have already occurred, so a card that misbehaves on something new passes it cleanly. Use it to find the obvious problems in minutes; the gate still wants a full shadow cycle.

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live
Content-Typeapplication/json

Path parameters

Name
reference

Example

Request body: BackTestRequest · Response: ScorecardComparisonResponse

curl -X POST "https://api.bridgemoni.com/credit-scoring/scorecard/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/backtest" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Content-Type: application/json" \
  -d '{
    "subjectReferences": [
      "text"
    ]
  }'

Responses

StatusWhen
200The comparison, marked BACK_TEST
404No such scorecard

GET Read a scorecard's band-movement comparisons

GET /credit-scoring/scorecard/{reference}/comparison

What this scorecard would do, or did, to the population - newest first. **Read this before promoting anything.** The number to look at hardest is newlyUnscored. It appears in no band histogram and it is the only metric here that describes people being removed from every lending decision on the platform: they simply stop being approved, with no adverse fact recorded about them anywhere. A near-zero meanScoreDelta alongside a high subjectsMoved is churn, not improvement - people moving in both directions and cancelling out in the mean.

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live

Path parameters

Name
reference

Example

Response: List<ScorecardComparisonResponse>

curl -X GET "https://api.bridgemoni.com/credit-scoring/scorecard/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/comparison" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV"

Responses

StatusWhen
200Comparisons, newest first

POST Promote a draft to shadow

POST /credit-scoring/scorecard/{reference}/shadow

Shadow is mandatory, not advisory. The card is computed for every subject and returned to nobody, so its band movement against the active card can be measured before any customer feels it.

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live

Path parameters

Name
reference

Example

Response: ScorecardResponse

curl -X POST "https://api.bridgemoni.com/credit-scoring/scorecard/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/shadow" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV"

Responses

StatusWhen
200Now running in shadow

Generated from the OpenAPI document. Branch on the HTTP status: there is no machine-readable error code on the wire. Errors