Calculate 401k retirement projections
curl --request POST \
--url https://calculators.symmetry.com/api/calculators/401k/data \
--header 'Content-Type: application/json' \
--header 'pcc-api-key: <api-key>' \
--data '
{
"annualSalaryIncrease": "500",
"checkDate": 1676962800000,
"contributionLimit": "6000",
"currentSavings": "10000",
"employeeContribution": 60,
"employerContribution": 30,
"olderThan50": "false",
"payFrequency": "WEEKLY",
"returnRates": [
"1",
"5",
"9"
],
"yearsToRetirement": "30"
}
'import requests
url = "https://calculators.symmetry.com/api/calculators/401k/data"
payload = {
"annualSalaryIncrease": "500",
"checkDate": 1676962800000,
"contributionLimit": "6000",
"currentSavings": "10000",
"employeeContribution": 60,
"employerContribution": 30,
"olderThan50": "false",
"payFrequency": "WEEKLY",
"returnRates": ["1", "5", "9"],
"yearsToRetirement": "30"
}
headers = {
"pcc-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'pcc-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
annualSalaryIncrease: '500',
checkDate: 1676962800000,
contributionLimit: '6000',
currentSavings: '10000',
employeeContribution: 60,
employerContribution: 30,
olderThan50: 'false',
payFrequency: 'WEEKLY',
returnRates: ['1', '5', '9'],
yearsToRetirement: '30'
})
};
fetch('https://calculators.symmetry.com/api/calculators/401k/data', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://calculators.symmetry.com/api/calculators/401k/data",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'annualSalaryIncrease' => '500',
'checkDate' => 1676962800000,
'contributionLimit' => '6000',
'currentSavings' => '10000',
'employeeContribution' => 60,
'employerContribution' => 30,
'olderThan50' => 'false',
'payFrequency' => 'WEEKLY',
'returnRates' => [
'1',
'5',
'9'
],
'yearsToRetirement' => '30'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"pcc-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://calculators.symmetry.com/api/calculators/401k/data"
payload := strings.NewReader("{\n \"annualSalaryIncrease\": \"500\",\n \"checkDate\": 1676962800000,\n \"contributionLimit\": \"6000\",\n \"currentSavings\": \"10000\",\n \"employeeContribution\": 60,\n \"employerContribution\": 30,\n \"olderThan50\": \"false\",\n \"payFrequency\": \"WEEKLY\",\n \"returnRates\": [\n \"1\",\n \"5\",\n \"9\"\n ],\n \"yearsToRetirement\": \"30\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("pcc-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://calculators.symmetry.com/api/calculators/401k/data")
.header("pcc-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"annualSalaryIncrease\": \"500\",\n \"checkDate\": 1676962800000,\n \"contributionLimit\": \"6000\",\n \"currentSavings\": \"10000\",\n \"employeeContribution\": 60,\n \"employerContribution\": 30,\n \"olderThan50\": \"false\",\n \"payFrequency\": \"WEEKLY\",\n \"returnRates\": [\n \"1\",\n \"5\",\n \"9\"\n ],\n \"yearsToRetirement\": \"30\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://calculators.symmetry.com/api/calculators/401k/data")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["pcc-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"annualSalaryIncrease\": \"500\",\n \"checkDate\": 1676962800000,\n \"contributionLimit\": \"6000\",\n \"currentSavings\": \"10000\",\n \"employeeContribution\": 60,\n \"employerContribution\": 30,\n \"olderThan50\": \"false\",\n \"payFrequency\": \"WEEKLY\",\n \"returnRates\": [\n \"1\",\n \"5\",\n \"9\"\n ],\n \"yearsToRetirement\": \"30\"\n}"
response = http.request(request)
puts response.read_body{
"_links": {
"self": {
"href": "https://calculators.symmetry.com/api/calculators/401k/data"
}
},
"content": [
{
"employeeContribution": 3120,
"employerContribution": 1560,
"rates": [
14801.48,
15300.88,
15816.03
],
"total": 4680,
"year": 2023
},
{
"employeeContribution": 18720,
"employerContribution": 6000,
"rates": [
39782.71,
41379.22,
43065.29
],
"total": 24720,
"year": 2024
},
{
"employeeContribution": 22500,
"employerContribution": 6000,
"rates": [
68811.2,
72660.79,
76810.62
],
"total": 28500,
"year": 2025
}
]
}{
"content": "Invalid request parameter"
}{
"message": "No api key found"
}{
"message": "Invalid api key"
}{
"error": "Not Found",
"path": "/api/calculators/401k/data/badpath",
"status": 404,
"timestamp": 1641573466465
}{
"error": "Method Not Allowed",
"path": "/api/calculators/401k/data",
"status": 405,
"timestamp": 1641572607838
}Calculate 401k retirement projections
Calculates multi-year 401k retirement savings projections based on contribution rates and return assumptions. Returns array of yearly projection data (30 years).
POST
/
calculators
/
401k
/
data
Calculate 401k retirement projections
curl --request POST \
--url https://calculators.symmetry.com/api/calculators/401k/data \
--header 'Content-Type: application/json' \
--header 'pcc-api-key: <api-key>' \
--data '
{
"annualSalaryIncrease": "500",
"checkDate": 1676962800000,
"contributionLimit": "6000",
"currentSavings": "10000",
"employeeContribution": 60,
"employerContribution": 30,
"olderThan50": "false",
"payFrequency": "WEEKLY",
"returnRates": [
"1",
"5",
"9"
],
"yearsToRetirement": "30"
}
'import requests
url = "https://calculators.symmetry.com/api/calculators/401k/data"
payload = {
"annualSalaryIncrease": "500",
"checkDate": 1676962800000,
"contributionLimit": "6000",
"currentSavings": "10000",
"employeeContribution": 60,
"employerContribution": 30,
"olderThan50": "false",
"payFrequency": "WEEKLY",
"returnRates": ["1", "5", "9"],
"yearsToRetirement": "30"
}
headers = {
"pcc-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'pcc-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
annualSalaryIncrease: '500',
checkDate: 1676962800000,
contributionLimit: '6000',
currentSavings: '10000',
employeeContribution: 60,
employerContribution: 30,
olderThan50: 'false',
payFrequency: 'WEEKLY',
returnRates: ['1', '5', '9'],
yearsToRetirement: '30'
})
};
fetch('https://calculators.symmetry.com/api/calculators/401k/data', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://calculators.symmetry.com/api/calculators/401k/data",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'annualSalaryIncrease' => '500',
'checkDate' => 1676962800000,
'contributionLimit' => '6000',
'currentSavings' => '10000',
'employeeContribution' => 60,
'employerContribution' => 30,
'olderThan50' => 'false',
'payFrequency' => 'WEEKLY',
'returnRates' => [
'1',
'5',
'9'
],
'yearsToRetirement' => '30'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"pcc-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://calculators.symmetry.com/api/calculators/401k/data"
payload := strings.NewReader("{\n \"annualSalaryIncrease\": \"500\",\n \"checkDate\": 1676962800000,\n \"contributionLimit\": \"6000\",\n \"currentSavings\": \"10000\",\n \"employeeContribution\": 60,\n \"employerContribution\": 30,\n \"olderThan50\": \"false\",\n \"payFrequency\": \"WEEKLY\",\n \"returnRates\": [\n \"1\",\n \"5\",\n \"9\"\n ],\n \"yearsToRetirement\": \"30\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("pcc-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://calculators.symmetry.com/api/calculators/401k/data")
.header("pcc-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"annualSalaryIncrease\": \"500\",\n \"checkDate\": 1676962800000,\n \"contributionLimit\": \"6000\",\n \"currentSavings\": \"10000\",\n \"employeeContribution\": 60,\n \"employerContribution\": 30,\n \"olderThan50\": \"false\",\n \"payFrequency\": \"WEEKLY\",\n \"returnRates\": [\n \"1\",\n \"5\",\n \"9\"\n ],\n \"yearsToRetirement\": \"30\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://calculators.symmetry.com/api/calculators/401k/data")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["pcc-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"annualSalaryIncrease\": \"500\",\n \"checkDate\": 1676962800000,\n \"contributionLimit\": \"6000\",\n \"currentSavings\": \"10000\",\n \"employeeContribution\": 60,\n \"employerContribution\": 30,\n \"olderThan50\": \"false\",\n \"payFrequency\": \"WEEKLY\",\n \"returnRates\": [\n \"1\",\n \"5\",\n \"9\"\n ],\n \"yearsToRetirement\": \"30\"\n}"
response = http.request(request)
puts response.read_body{
"_links": {
"self": {
"href": "https://calculators.symmetry.com/api/calculators/401k/data"
}
},
"content": [
{
"employeeContribution": 3120,
"employerContribution": 1560,
"rates": [
14801.48,
15300.88,
15816.03
],
"total": 4680,
"year": 2023
},
{
"employeeContribution": 18720,
"employerContribution": 6000,
"rates": [
39782.71,
41379.22,
43065.29
],
"total": 24720,
"year": 2024
},
{
"employeeContribution": 22500,
"employerContribution": 6000,
"rates": [
68811.2,
72660.79,
76810.62
],
"total": 28500,
"year": 2025
}
]
}{
"content": "Invalid request parameter"
}{
"message": "No api key found"
}{
"message": "Invalid api key"
}{
"error": "Not Found",
"path": "/api/calculators/401k/data/badpath",
"status": 404,
"timestamp": 1641573466465
}{
"error": "Method Not Allowed",
"path": "/api/calculators/401k/data",
"status": 405,
"timestamp": 1641572607838
}Authorizations
API key for CBS API authentication
Body
application/json
401k data configuration
401k retirement planning projection data including current savings, years to retirement, salary increase, and return rates
Available options:
Annual, Bi-weekly, Bi-weekly-27, Daily, Monthly, Quarterly, Semi-Annually, Semi-monthly, Weekly, Weekly-53 Response
Calculation successful
⌘I

