Skip to main content

Requests

  • Base URL: https://portal.bridgelinepf.com/api. Every path starts with /v1.
  • HTTPS only. Bodies are JSON, sent with Content-Type: application/json. A body larger than 2 MB is refused.
  • Auth: Authorization: Bearer <key>. See authentication.

Formats

Money is a string so that no amount is ever rounded by a floating-point parser. Send "46100.00", not 46100: a JSON number is rejected with a hint. Rates are fractions everywhere: minimum_earned.rate: 0.25 means 25%, and so does down_payment_rate: 0.25. Sending 25 for a rate is rejected, with a hint to send 0.25.

Ids

Ids are opaque strings with a prefix that says what they are: Apart from opt_, don’t parse ids or assume anything about their contents. Treat a malformed id as you would any unknown one: the API answers 404.

Nulls and unknown fields

  • null means “not provided”. In a request, a field you send as null is the same as one you leave out. In a response, null means there’s no value, such as selected_option_id before your client chooses.
  • Unknown request fields are rejected, with a “did you mean” hint. A typo never silently does nothing.
  • Responses can gain fields. Your code should ignore fields it doesn’t know.

Your ids

Store your own identifiers on our objects, so you never need a mapping table. Both come back exactly as you sent them, on every response. metadata is {} when you sent none, and policies come back in the order you sent them, each with your metadata. Don’t put sensitive personal data in either.

Enums only grow

Values such as status, eligibility.status, coverage type, and assumption, warning and error codes can gain new members. We never rename or repurpose one. Write your code so an unknown value falls into a safe default, for example:
  • an unknown quote status: treat the quote as not usable;
  • an unknown coverage type: treat it as other;
  • an unknown error code: handle it by its type and HTTP status.
See versioning for how we handle the rare change that can’t be additive.