Menstrual Cycle Calculator is a period tracker API that predicts future menstrual cycles, fertile windows, and ovulation dates from the last period date and the average cycle and period length.
The Menstrual Cycle Calculator API provides a simple, reliable way to integrate menstrual cycle calculator functionality into your applications. Built for developers who need production-ready menstrual cycle calculator capabilities without the complexity of building from scratch.
Quick Start
Using JavaScript
async function callMenstrualCycleCalculatorAPI() {
try {
const params = new URLSearchParams({
last_period: '2024-01-01',
cycle_length: 28,
period_length: 5,
cycles: 3
});
const response = await fetch(`https://api.apiverve.com/v1/menstrualcycle?${params}`, {
method: 'GET',
headers: {
'x-api-key': 'YOUR_API_KEY_HERE'
}
});
const data = await response.json();
console.log(data);
} catch (error) {
console.error('Error:', error);
}
}
callMenstrualCycleCalculatorAPI();Using cURL
curl -X GET "https://api.apiverve.com/v1/menstrualcycle?last_period=2024-01-01&cycle_length=28&period_length=5&cycles=3" \
-H "x-api-key: YOUR_API_KEY_HERE"Get your API key: https://apiverve.com
📁 For more examples, see the examples folder
Installation
Choose your preferred programming language:
📦 NPM (JavaScript/Node.js)
npm install @apiverve/menstrualcycleView NPM Package → | Package Code →
🔷 NuGet (.NET/C#)
dotnet add package APIVerve.API.MenstrualCycleCalculatorView NuGet Package → | Package Code →
🐍 Python (PyPI)
pip install apiverve-menstrualcycleView PyPI Package → | Package Code →
💎 Ruby (RubyGems)
gem install apiverve_menstrualcycleView RubyGems Package → | Package Code →
🐘 PHP (Packagist)
composer require apiverve/menstrualcycleView Packagist Package → | Package Code →
🎯 Dart (pub.dev)
dart pub add apiverve_menstrualcycleView pub.dev Package → | Package Code →
🤖 Android (JitPack)
implementation 'com.github.apiverve:menstrualcycle-api:1.0.0'🐹 Go
go get github.com/apiverve/menstrualcycle-api/goWhy Use This API?
| Feature | Benefit |
|---|---|
| Multi-language SDKs | Native packages for JavaScript, Python, C#, Go, and Android |
| Simple Integration | Single API key authentication, consistent response format |
| Production Ready | 99.9% uptime SLA, served from 24 global regions |
| Comprehensive Docs | Full examples, OpenAPI spec, and dedicated support |
Documentation
- 🏠 API Home: Menstrual Cycle Calculator API
- 📚 API Reference: docs.apiverve.com/ref/menstrualcycle
- 📖 OpenAPI Spec: openapi.yaml
- 💡 Examples: examples/
What Can You Build?
The Menstrual Cycle Calculator API is commonly used for:
- Web Applications - Add menstrual cycle calculator features to your frontend or backend
- Mobile Apps - Native SDKs for Android development
- Automation - Integrate with n8n, Zapier, or custom workflows
- SaaS Products - Enhance your product with menstrual cycle calculator capabilities
- Data Pipelines - Process and analyze data at scale
API Reference
Authentication
All requests require an API key in the header:
x-api-key: YOUR_API_KEY_HERE
Get your API key: https://apiverve.com
Response Format
Every APIVerve endpoint returns the same envelope — check status, then read data:
{
"status": "ok",
"error": null,
"data": { ... }
}Example Response
A real response from the Menstrual Cycle Calculator API:
{
"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."
}
}Support & Community
- 🏠 API Home: Menstrual Cycle Calculator API
- 💬 Support: https://apiverve.com/contact
- 🐛 Issues: GitHub Issues
- 📖 Documentation: https://docs.apiverve.com
- 🌐 Website: https://apiverve.com
Contributing
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
Security
For security concerns, please review our Security Policy.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
Built with ❤️ by APIVerve
Copyright © 2026 APIVerve. All rights reserved.