Skip to navigation

Retrieve a rate card

Returns one rate card version.

Authentication

AuthorizationBearer

A secret key (rl_sk_test_..., rl_sk_live_...) or a restricted key with limited scopes (rl_rk_test_..., rl_rk_live_...). A restricted key can carry agent: true and an expires_at, and is what a coding agent should hold. Keys end in a checksum so secret scanners can recognize them. People create, roll and revoke keys in the dashboard; GET /v1/api_keys lists them, masked.

Path parameters

rate_card_idstringRequired

The rate card ID (rc_...).

Response

The rate card.
idstring
object"rate_card"
cost_modelstring
The cost model ID.
versioninteger
1 for the first rate card of a cost model, then one more for each new card.
statusenum

draft: saved, not active. scheduled: becomes active at effective_from. active: in force. superseded: replaced by a later version.

Allowed values:
sourceenum

Where a cost model’s rates come from. catalog: the provider price catalog that Runledger maintains, with your overrides on top. custom: rate cards you enter yourself.

Allowed values:
currencystring
rateslist of objects
livemodeboolean
created_atdatetime
catalog_pricestringOptional

For source: catalog. The catalog price version these rates are (catp_...). Runledger creates one rate card for each catalog price version, with the same rates, effective_from, as_of and source. Your overrides are applied when a line is priced and are not part of the card.

effective_fromdatetimeOptional
effective_todatetimeOptional
When a later version replaced this one. Left out while it is in force.
as_ofdateOptional
source_referencestringOptional
source_urlstringOptionalformat: "uri"

For source: catalog. The catalog price version’s source.

changeslist of objectsOptional
What differs from the version before, rate by rate.
affected_price_ruleslist of stringsOptional
The keys of price rules that price from this cost model.
warningslist of objectsOptional

For example price_rule_held, which says a rule set to hold keeps its current prices and so its margin falls or rises with the new costs.

actorobjectOptional

Who made a change. Runledger fills it in from the credential, so a client can’t claim to be someone else: an API key always acts as itself, the dashboard calls the API as the signed-in person, and the MCP server passes the client’s name and the person it acts for. A request that sends a Runledger-Actor header is refused with 400 parameter_unknown.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
429
Too Many Requests Error
500
Internal Server Error