Menstrual Cycle Calculator API

GET

Predict future periods, ovulation dates and fertile windows.

Menstrual Cycle Calculator predicts future menstrual cycles, fertile windows, and ovulation dates based on cycle history and patterns.

Try it — live request, no key required

Request
GETapi.apiverve.com/v1/menstrualcycle?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_date": "2024-01-01",
    "cycle_length": 28,
    "period_length": 5,
    "cycles_calculated": 3,
    "cycles": [
      {
        "cycle_number": 1,
        "period": {
          "start_date": "2024-01-01",
          "end_date": "2024-01-05",
          "duration_days": 5
        },
        "ovulation": {
          "date": "2024-01-15",
          "day_of_cycle": 14
        },
        "fertile_window": {
          "start_date": "2024-01-10",
          "end_date": "2024-01-15",
          "duration_days": 6
        },
        "pms_phase": {
          "start_date": "2023-12-21",
          "end_date": "2023-12-31"
        },
        "cycle_phases": {
          "menstrual": {
            "start": "2024-01-01",
            "end": "2024-01-05",
            "description": "Menstruation"
          },
          "follicular": {
            "start": "2024-01-06",
            "end": "2024-01-14",
            "description": "Follicular phase - preparing for ovulation"
          },
          "ovulation": {
            "date": "2024-01-15",
            "description": "Ovulation - most fertile day"
          },
          "luteal": {
            "start": "2024-01-16",
            "end": "2024-01-28",
            "description": "Luteal phase - preparing for next period"
          }
        },
        "status": "past",
        "days_until": null,
        "days_ago": 715
      },
      {
        "cycle_number": 2,
        "period": {
          "start_date": "2024-01-29",
          "end_date": "2024-02-02",
          "duration_days": 5
        },
        "ovulation": {
          "date": "2024-02-12",
          "day_of_cycle": 14
        },
        "fertile_window": {
          "start_date": "2024-02-07",
          "end_date": "2024-02-12",
          "duration_days": 6
        },
        "pms_phase": {
          "start_date": "2024-01-18",
          "end_date": "2024-01-28"
        },
        "cycle_phases": {
          "menstrual": {
            "start": "2024-01-29",
            "end": "2024-02-02",
            "description": "Menstruation"
          },
          "follicular": {
            "start": "2024-02-03",
            "end": "2024-02-11",
            "description": "Follicular phase - preparing for ovulation"
          },
          "ovulation": {
            "date": "2024-02-12",
            "description": "Ovulation - most fertile day"
          },
          "luteal": {
            "start": "2024-02-13",
            "end": "2024-02-25",
            "description": "Luteal phase - preparing for next period"
          }
        },
        "status": "past",
        "days_until": null,
        "days_ago": 687
      },
      {
        "cycle_number": 3,
        "period": {
          "start_date": "2024-02-26",
          "end_date": "2024-03-01",
          "duration_days": 5
        },
        "ovulation": {
          "date": "2024-03-11",
          "day_of_cycle": 14
        },
        "fertile_window": {
          "start_date": "2024-03-06",
          "end_date": "2024-03-11",
          "duration_days": 6
        },
        "pms_phase": {
          "start_date": "2024-02-15",
          "end_date": "2024-02-25"
        },
        "cycle_phases": {
          "menstrual": {
            "start": "2024-02-26",
            "end": "2024-03-01",
            "description": "Menstruation"
          },
          "follicular": {
            "start": "2024-03-02",
            "end": "2024-03-10",
            "description": "Follicular phase - preparing for ovulation"
          },
          "ovulation": {
            "date": "2024-03-11",
            "description": "Ovulation - most fertile day"
          },
          "luteal": {
            "start": "2024-03-12",
            "end": "2024-03-24",
            "description": "Luteal phase - preparing for next period"
          }
        },
        "status": "past",
        "days_until": null,
        "days_ago": 659
      }
    ],
    "current_status": {
      "phase": "Unknown",
      "description": "",
      "next_period": null,
      "days_until_next_period": null
    },
    "averages": {
      "cycle_length": 28,
      "period_duration": 5,
      "days_between_periods": 28
    },
    "disclaimer": "This calculator provides estimates only. Actual cycles may vary. Consult a healthcare provider for medical advice."
  }
}

About the Menstrual Cycle Calculator API

Provides current cycle status, PMS timing, and comprehensive period tracking information, perfect for women's health apps and cycle monitoring applications.

What people use it for

Period Tracking
Build period tracking applications with accurate cycle predictions, period start dates, and phase identification
Cycle Prediction
Predict future menstrual cycles with customizable cycle length and period duration for planning and preparation
Health Monitoring
Create women's health monitoring tools with detailed cycle phase information including follicular, ovulation, and luteal phases
Health Insights
Provide cycle-based health insights and symptom tracking aligned with menstrual phases for better health awareness

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 Menstrual Cycle Calculator

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

Questions.

Common questions about the Menstrual Cycle Calculator API.

Read the docs →
Which plan fits 25,000 cycle calculations a month?
Starter easily covers that volume. Each call uses 2 credits, so 25,000 calculations take 50,000 credits, leaving three-quarters of Starter's 200,000 monthly credits available. That works out to about $0.30 per 1,000 calls. The Free plan provides 100 calls each month for development and testing.
Are phase breakdowns and PMS timing included on the Free plan?
No. Detailed cycle phases (menstrual, follicular, ovulation, luteal), PMS phase dates, current cycle status, and historical cycle averages are premium fields. Any paid plan unlocks them. The Free plan returns period dates, estimated ovulation day, and fertile windows.
Can I project multiple upcoming cycles in a single call?
Yes. Passing the cycles parameter lets you generate forecasts across multiple consecutive cycles. Menstrual Cycle Calculator returns each future cycle in sequence with its own period start and end dates, estimated ovulation day, and fertile window.
Can I customize the cycle and period duration for each user?
Yes. You can supply custom values for cycle length and period duration in days. The calculations adjust all projected period dates, ovulation estimates, and fertile windows to reflect that user's specific cycle pattern.
What date format must I provide for the last period?
The last_period parameter requires a YYYY-MM-DD string representing the first day of the user's most recent menstrual period. It is the only required input needed to generate cycle predictions.

Ready to build with Menstrual Cycle 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