NewAPIVerve Academy: free courses and certifications anyone can verify.Explore the Academy →

Ovulation Calculator API

GET

Calculate ovulation dates from a single period date.

Ovulation Calculator estimates ovulation dates, fertile windows, and provides detailed cycle phase information based on menstrual cycle data.

Try it — live request, no key required

Request
GETapi.apiverve.com/v1/ovulationcalculator?last_period=2024-01-01
Query parameters
Verification
Format

No key required to try it. Get a key to use it in your app.

Example
{
  "status": "ok",
  "error": null,
  "data": {
    "last_period": "2024-01-01",
    "cycle_length": 28,
    "ovulation": {
      "date": "2024-01-15",
      "days_from_last_period": 14
    },
    "fertile_window": {
      "start": "2024-01-10",
      "end": "2024-01-15",
      "duration_days": 6
    },
    "most_fertile_days": {
      "start": "2024-01-13",
      "end": "2024-01-15",
      "duration_days": 3
    },
    "fertile_days": [
      {
        "date": "2024-01-10",
        "day_relative_to_ovulation": -5,
        "fertility_level": "medium",
        "description": "Fertile"
      },
      {
        "date": "2024-01-11",
        "day_relative_to_ovulation": -4,
        "fertility_level": "medium",
        "description": "Fertile"
      },
      {
        "date": "2024-01-12",
        "day_relative_to_ovulation": -3,
        "fertility_level": "medium",
        "description": "Fertile"
      },
      {
        "date": "2024-01-13",
        "day_relative_to_ovulation": -2,
        "fertility_level": "high",
        "description": "Most fertile"
      },
      {
        "date": "2024-01-14",
        "day_relative_to_ovulation": -1,
        "fertility_level": "high",
        "description": "Most fertile"
      },
      {
        "date": "2024-01-15",
        "day_relative_to_ovulation": 0,
        "fertility_level": "high",
        "description": "Most fertile"
      }
    ],
    "next_period": {
      "date": "2024-01-29",
      "days_from_last_period": 28
    },
    "cycle_phases": {
      "follicular_phase": {
        "duration_days": 14,
        "description": "From first day of period to ovulation"
      },
      "ovulation": {
        "duration_days": 1,
        "description": "Egg is released from ovary"
      },
      "luteal_phase": {
        "duration_days": 14,
        "description": "From ovulation to next period"
      }
    },
    "current_status": {
      "current_phase": "Menstruation",
      "is_fertile": false,
      "days_until_ovulation": -701,
      "days_until_next_period": -687
    },
    "disclaimer": "This calculator provides estimates only. Actual ovulation may vary. Consult a healthcare provider for medical advice."
  }
}

About the Ovulation Calculator API

Ovulation Calculator estimates when ovulation is likely in the current cycle from two inputs. Works as an ovulation date and cycle calculator: send the first day of the last period and the average cycle length. It uses the common calendar method, counting back from the expected start of the next period, and returns dates in YYYY-MM-DD format that drop straight into a fertility calendar.

Fertility tracking and cycle tracking apps, women's health content sites and family planning tools use it to show an estimated ovulation date, the fertile window and the days the calculator marks as most fertile, without maintaining the date arithmetic themselves.

The Free plan returns the estimated ovulation date with the inputs echoed back and a disclaimer. Paid plans add the fertile window and most fertile days, a day-by-day fertile days list with levels, the expected next period, the length of each cycle phase, and a current status showing where today falls in the cycle and how many days remain until ovulation and the next period. All results are estimates, not medical advice.

How it works

The calculation is pure date arithmetic with no medical model behind it. It assumes a fixed 14-day luteal phase, so ovulation is placed cycle_length minus 14 days after last_period: day 14 for the default 28-day cycle, day 7 for a 21-day cycle and day 21 for a 35-day cycle, the accepted range. Irregular cycles are not modelled, and the response includes a disclaimer field saying the figures are estimates.

last_period is a date in YYYY-MM-DD format, read as a calendar date with no time-zone shift, so the dates returned are the same calendar days you would count by hand. An unparseable date returns a 400.

fertile_window runs from five days before the estimated ovulation date through that date, six days in all. most_fertile_days is the last three of those days. fertile_days lists the six days individually, each with day_relative_to_ovulation from -5 to 0 and a fertility_level of medium for the first three and high for the last three. next_period.date is last_period plus cycle_length. cycle_phases reports the follicular phase as cycle_length minus 14 days, ovulation as one day and the luteal phase as 14.

current_status compares those dates with the server's current date: the phase is Follicular Phase before the window, Fertile Window inside it, Luteal Phase until the next period, and Menstruation once that date has passed, however long ago. The day counts go negative when a date is in the past. On the Free plan only ovulation.date, the echoed inputs and disclaimer are returned; all other fields are null.

What people use it for

Fertility Tracking
Build fertility tracking applications with accurate ovulation predictions based on cycle length and last period date
Conception Planning
Calculate conception probability windows and most fertile days to help users plan or prevent pregnancy
Menstrual Health
Create menstrual health apps with ovulation tracking, fertile window identification, and cycle insights
Family Planning
Provide family planning tools with science-based ovulation calculations and fertility awareness features

Ways to call it

One endpoint, many ways in — REST with JSON, XML, YAML and CSV, plus GraphQL and an MCP interface for AI agents.

JSON
Default REST response
XML
Markup format
YAML
Human-readable
CSV
Tabular export
Beta
GraphQL
Query language
New
MCP
For AI agents

Other ways to use Ovulation Calculator

Same data, same APIVerve account, same credit balance — one key works on all of them.

Questions.

Common questions about the Ovulation Calculator API.

Read the docs →
Is it cheap enough to track fertile windows for every user?
Yes. At 1 credit per request, the Starter plan covers 200,000 calculations each month, which works out to about $0.15 per 1,000 calls (or $0.00015 per call). You also get 200 calls per month on the Free plan for testing.
Are fertile windows and cycle phases included on the Free plan?
No. The Free plan returns the estimated ovulation date, but fertile window dates, peak fertility days, cycle phase breakdowns, and daily fertility levels are premium fields. Any paid plan, starting with Starter, unlocks all of these fields.
Can it handle custom cycle lengths?
Yes. You can pass the average cycle length in days alongside the date of the last period. If a user has shorter or longer cycles than standard averages, the calculations adjust ovulation estimates on every plan, and adjust all phase durations and fertile window dates on paid plans.
Does it report whether a user is currently fertile today?
Yes. On paid plans, the response includes a current status block showing whether today falls inside the fertile window, what phase of the cycle the user is in, and how many days remain until ovulation or the next period.
What happens if the calculated ovulation date has already passed?
The API still calculates the full cycle timeline. On paid plans, in the current status block, fields measuring the days until ovulation or days until the next period return negative numbers to reflect how many days have passed since that milestone occurred.

Ready to build with Ovulation Calculator? Start with 200 free credits — one key unlocks all 300+ APIs.

Explore the catalog

300+ APIs on the same key and the same response shape.

Browse all APIs