API Terms of Use
These are the terms of use for the CycleCalcs API, at https://www.cyclecalcs.com/v1 and https://www.cyclecalcs.com/v2. They are a contract between you and CycleCalcs LLC, a Virginia limited liability company ("CycleCalcs", "we", "us"), which operates cyclecalcs.com. Sending a request to the API means you accept them. They are short on purpose, and where they say something unusual we explain why.
On this page
Scope and acceptance
These terms bind whoever sends the request: a person, a script, a server, an agent, or an application acting on someone else's behalf. If you build something that calls this API for your own users, you are responsible for their use of it. They apply alongside, and do not replace, the website privacy policy, which covers the calculators and pages on cyclecalcs.com rather than the API.
Access, fair use and rate limits
Access is free, non-exclusive and revocable. No account and no API key are required. The anonymous tier is limited to 300 requests per minute, 2,000 requests per hour and 5,000 requests per day; a request beyond those limits receives HTTP 429 with a Retry-After header telling you how long to wait. Paid tiers with higher limits (published as Pro, Ultra and Mega) may go on sale later, and we intend to keep a free tier for hobby, educational and small-scale commercial use.
Cache what you can. A request for a specific instant and location returns the same answer every time, and response headers are set so that you and any cache between us can store it. Send a User-Agent that identifies your application. Nothing depends on it today: the API does not read it, and the rate limits apply the same way whether you send one or not. It is asked for so that if a pattern of traffic ever needs looking at, we can tell whose it is and contact you rather than guess.
Rights in the output
Values returned by CycleCalcs endpoints are computed astronomical quantities: facts about the physical universe, generated from open-source algorithms. CycleCalcs LLC asserts no copyright and no database right in them, and to the extent any such right exists anywhere it is dedicated to the public domain under CC0 1.0 Universal.
The exact statement the API itself publishes, so that this page and the API can never say two different things, is the one quoted below. It is reproduced here byte for byte from the output_rights field of GET /v2 and from the rights_statement field of GET /v2/attribution:
"The numbers in a CycleCalcs API response are computed astronomical facts. You may use, store, cache, publish, redistribute and build commercial products on them, without restriction, without a licence and without attribution."
There is nothing to comply with for that data. No licence, no attribution, no permission, no fee, whether your use is personal, educational or commercial. A link to cyclecalcs.com is appreciated and helps keep the API free, but nothing depends on it.
This grant covers the numbers, enums and interpreted strings inside a JSON, CSV or other response body. It does not cover the CycleCalcs name, the cyclecalcs.com domain, or any CycleCalcs logo or wordmark, none of which you are licensed to use as your own branding. See the one carve-out below for the one category of value this grant does not reach.
Third-party data and attribution: the one carve-out
Almost everything this API returns is computed, not obtained, which is why the grant above can be unconditional. A small number of responses are different: where you ask an endpoint to resolve a place name, or where you call GET /v2/places directly, the location that comes back is drawn from the GeoNames place index, which is licensed CC BY 4.0. That licence's attribution condition is not ours to waive, and it is the one carve-out from the output grant above.
Every response tells you which case it is, per response rather than once for the whole API. The meta.rights field reads "unrestricted" when everything in that response was computed, and "attribution_required" when it drew on GeoNames data. Where it is "attribution_required", meta.attribution.text and meta.attribution.sources carry the exact credit line to display, which is, reproduced here as the API emits it:
"Place names and coordinates from GeoNames (geonames.org), CC BY 4.0."
Displaying that line wherever you publish or redistribute a place name from that response is a condition of your right to use it, in the same way GeoNames' own licence requires. See NOTICE.md for the full text of every third-party licence in the CycleCalcs repository.
Acceptable use
This is a free service with finite capacity. These rules exist so it stays fast for everyone, and so it stays legal.
Do:
- Cache responses. A given instant and location always returns the same answer.
- Send a
User-Agentnaming your application with a contact address. - Back off on HTTP 429 and honour the
Retry-Afterheader. - Tell us if you are building something that will depend on this API. We would rather know.
Do not:
- Distribute your traffic across multiple IP addresses or identities to get around a rate limit.
- Run systematic bulk harvesting of the whole parameter space; ask us for a file instead of crawling for one.
- Probe, scan, stress-test or attempt to gain unauthorised access to the service or the systems it runs on.
- Use the service to break the law, to infringe anyone's rights, or to harass anyone.
- Misrepresent the output: do not present computed values as observed or certified records, and do not attach the CycleCalcs name to a claim we have not made.
- Resell raw access to this API as if it were your own service. Building a product on top of the output is exactly what this is for; reselling the endpoints themselves is not.
- Use the output to make or support claims about financial markets, investment, trading or the value of any asset.
- Use the output as an input to a medical, safety-of-life or navigational system without the independent verification described below.
Traffic that threatens the service may be throttled or blocked without notice. Where we can reach you through your User-Agent, we will try to talk to you first.
No warranty and limitation of liability
We provide this service as it is, without any warranty, express or implied, including any implied warranty of merchantability, fitness for a particular purpose, accuracy, completeness, timeliness or availability. There is no uptime guarantee and there is no service level. Delivery of a response through the internet is not guaranteed.
To the fullest extent the law allows, CycleCalcs LLC, together with its members, managers and agents, is not liable for any loss or damage arising from your use of this service or from anything you or anyone else did with its output, whether the claim arises in contract, in tort including negligence, under statute or otherwise, and including any indirect, incidental, consequential, special or exemplary loss and any loss of profit, revenue, data or goodwill.
Nothing in these terms limits or excludes any liability that cannot lawfully be limited or excluded, including liability for death or personal injury caused by negligence, or for fraud or fraudulent misrepresentation.
It is your responsibility to ensure the data is suitable for your intended purpose. Everything this API returns is computed, not observed: we keep no record of what actually happened in the sky, and nothing we return carries a seal, a certification, or any statement about authority, custody or authenticity.
Not for navigation, aviation, maritime or other safety-of-life use
This is a convenience service, not an authority, and it must not be the sole basis for a decision where being wrong could hurt someone. In particular:
- Marine and celestial navigation. Do not use this API, or any sight-reduction or almanac data it may return, as your only source for a navigational fix at sea. Carry the current official nautical almanac and sight reduction tables for your jurisdiction, and treat any electronic source, including this one, as a cross-check against them.
- Aviation. Do not use rise, set or twilight times from this API to satisfy a regulatory definition of day, night or a lighting requirement. Where a regulation defines a time by reference to a named official source, use that source.
- Maritime and other safety-of-life use generally. Do not use this API's output as the sole input to any system where an error could put a person's safety at risk.
- Eclipse eye safety. Never use a computed eclipse time to decide when it is safe to look at the Sun without a certified solar filter. Totality is judged by what you can see, not by a clock, and no computed time is a substitute for direct observation and a filter meeting ISO 12312-2.
Where a statutory, safety or legal requirement applies, use the official publication for your jurisdiction: a national almanac office or hydrographic office, a national meteorological service, or the relevant aviation authority, rather than this API.
Changing, rate-limiting or withdrawing the service
We may modify, throttle, suspend or retire any part of the service, including without notice where the service itself is at risk. Version 1 is frozen and will keep returning what it returns today. Where a later version deprecates an earlier one, we will announce it in the documentation and keep serving the deprecated version for a reasonable transition period before withdrawal.
If a data source's licence terms change in a way that means an endpoint can no longer be served, that endpoint may be withdrawn. This is a data-licensing safeguard, not a routine occurrence, and we would rather build around a licence problem than surprise a caller with one.
Privacy
When you call the API with a latitude, longitude, date, time or any other parameter, that value is used to compute the answer to that one request and is then gone. We do not write request parameters to a log, and we do not keep or associate them with anything.
The API's rate limiter needs to recognise repeat callers to enforce the limits above, but it does not do that by keeping your IP address. It hashes the IP address together with a random salt that is generated fresh each time the service is deployed and held only in memory, never written to disk and never logged. The raw IP address itself is never stored and never logged; only the salted hash, which changes every deploy and cannot be reversed to the original address, is used, and only to count requests against the limits in this document.
We keep aggregate counts, not per-request records: how many requests each endpoint served, how many succeeded, and how long they took. Those numbers are not tied back to any request, caller or address.
This is a summary written for API callers specifically. The full website privacy policy is at /privacy.html.
Governing law
These terms, and any dispute arising out of or relating to them or to your use of the API, are governed by the laws of the Commonwealth of Virginia, United States of America, without regard to its conflict of laws principles.
You and CycleCalcs LLC agree to the exclusive jurisdiction of the state and federal courts located in the Commonwealth of Virginia for any dispute that is not resolved informally first.
If you are a consumer resident outside the United States, nothing in this section deprives you of the protection of any mandatory consumer-protection law of the country where you live, or of the right to bring proceedings in your local courts where that law gives you one.
Changes to these terms
We may change these terms. Continuing to call the API after a change takes effect means you accept it. For a change that would disadvantage callers, we will give reasonable notice in the documentation before it takes effect where we can.
Who we are, and how to reach us
This service is operated by CycleCalcs LLC, a limited liability company formed in the Commonwealth of Virginia, United States of America. Email is the way to reach us: info@cyclecalcs.com. For a licensing question, a bug, a discrepancy against an official source, or higher-volume access, that is the right route and we read it. There is more about the project on the About page.