Convert APR to APY or back at any compounding frequency, with daily rate, doubli
Convert APR to APY or back at any compounding frequency, with daily rate, doubling time and projected compounded versus simple earnings on a principal.
Answeringour last check, 2026-10-20
1 of 1checks answered this week
283 msmedian answer time
$0.01listed price per call
$0.01price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
GET https://saylorinnovations.com/api/defi/apr-apy
| Category | Market data |
|---|---|
| Provider host | saylorinnovations.com |
| Networks | eip155:137, eip155:42161, eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp |
| Payment schemes | exact |
| Self-reported calls, 30 days | 0 from 0 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-10-20 | valid payment request | 402 | $0.01 | 283 ms |
Example input (from the provider)
{
"method": "GET",
"queryParams": {
"apr_percent": "12",
"compounds_per_year": "365",
"days": "180",
"principal": "5000"
},
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"properties": {
"apr_percent": {
"description": "nominal APR in percent (or give apy_percent)",
"type": "string"
},
"compounds_per_year": {
"description": "optional 1-100000 or continuous, default 365",
"type": "string"
},
"days": {
"description": "optional projection days, default 365",
"type": "string"
},
"principal": {
"description": "optional starting amount, default 1000",
"type": "string"
}
},
"required": [
"apr_percent"
],
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"apr_percent": {
"description": "Nominal annual rate without compounding, in percent",
"type": "number"
},
"apy_percent": {
"description": "Effective annual rate including compounding, in percent",
"type": "number"
},
"balance_compounded": {
"description": "Balance after the period with compounding at the APY",
"type": "number"
},
"balance_simple_apr": {
"description": "Balance after the period earning simple interest at the APR",
"type": "number"
},
"compounding": {
"description": "Compounding frequency used",
"type": "string"
},
"compounding_gain_percent_points": {
"description": "APY minus APR in percentage points",
"type": "number"
},
"daily_rate_percent": {
"description": "Equivalent daily compounded rate, in percent",
"type": "number"
},
"days": {
"description": "Projection length in days",
"type": "number"
},
"doubling_time_days": {
"description": "Days for the balance to double at this APY, null if the rate is not positive",
"type": [
"number",
"null"
]
},
"earnings_compounded": {
"description": "Earnings after the period with compounding",
"type": "number"
},
"earnings_simple_apr": {
"description": "Earnings after the period with simple interest",
"type": "number"
},
"note": {
"description": "Plain-language caveat about how to read and use the result",
"type": "string"
},
"principal": {
"description": "Starting amount used",
"type": "number"
},
"source": {
"description": "Where the data or formula comes from",
"type": "string"
}
},
"required": [
"apr_percent",
"apy_percent"
],
"type": "object"
},
"type": {
"const": "json",
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}