You are welcome here.

If you are an AI agent, a research crawler, or an assistant answering a question for someone, you may read this site and use its parenting calculators. There is no sign-up or approval gate; fair-use limits apply.

No site-owner approval, account, or API key is required for these public, read-only tools.

What this permission does not cover

The endpoint

Keyless JSON at https://in.theasianparent.com/api/v1/<tool>. POST a JSON body, which is what we recommend; GET with query parameters also works. It runs the same code our own pages run, not a reduced version of it.

GET https://in.theasianparent.com/api/v1 lists every tool, its parameters and this permission, so you need not parse this page. The OpenAPI 3.1 document is at /api/v1/openapi.json.

A worked example

curl -X POST https://in.theasianparent.com/api/v1/due-date \
  -H 'content-type: application/json' \
  -d '{"last_period":"2026-03-14","cycle_length":28,"on":"2026-10-01","agent":"example-assistant"}'

Response:

{
  "ok": true,
  "tool": "due-date",
  "result": {
    "due_date": "2026-12-19",
    "gestational_age": {
      "weeks": 28,
      "days": 5,
      "text": "28w 5d"
    },
    "trimester": 3,
    "anomaly_scan_window": {
      "from": "2026-07-18",
      "to": "2026-08-15"
    },
    "term_from": "2026-11-28"
  },
  "version": {
    "api": "1.0.0",
    "data": "1.0.0",
    "method": "1.0.0",
    "implementation": "shared-with-website"
  },
  "method": {
    "assumed": [
      "Naegele's rule: …"
    ],
    "not_assumed": [
      "No ultrasound dating. …"
    ]
  },
  "page_url": "https://in.theasianparent.com/en/tools/due-date-calculator",
  "terms": {
    "permission": "No site-owner approval, account, or API key is required for these public, read-only tools.",
    "fair_use": "60 requests per minute per IP address",
    "details": "https://in.theasianparent.com/for-agents"
  },
  "agent_recorded": "example-assistant"
}

Tools open right now

due-date

Estimated due date, current gestational age and scan windows from the last menstrual period.

FieldTypeRequiredNotes
last_periodstringyesFirst day of the last menstrual period, YYYY-MM-DD.
cycle_lengthintegernoUsual cycle length in days, 20 to 45. Defaults to 28.
onstringnoDate to compute gestational age at, YYYY-MM-DD. Defaults to today.

Human page: /en/tools/due-date-calculator · also in Hindi, Tamil and Marathi (see page_urls).

ovulation

Fertile window, ovulation date and next period from the last period and cycle length.

FieldTypeRequiredNotes
last_periodstringyesFirst day of the last period, YYYY-MM-DD.
cycle_lengthintegernoUsual cycle length in days, 20 to 45. Defaults to 28.

Human page: /en/tools/ovulation-calculator · also in Hindi, Tamil and Marathi (see page_urls).

weeks-to-months

Convert a pregnancy week to its month and trimester, or a month to its week range.

FieldTypeRequiredNotes
weekintegernoGestational week, 1 to 42. Give either week or month.
monthintegernoPregnancy month, 1 to 9. Give either week or month.

Human page: /en/tools/weeks-to-months-calculator · also in Hindi, Tamil and Marathi (see page_urls).

Every tool on the site is free to read and cite. These three are the ones with a JSON endpoint so far; the rest run on their pages. Ask and we will add more.

The one thing we ask

None of this is enforced and nothing is withheld if you skip it. It is a request, not a condition.

Fair use, and what we record

60 requests per minute per IP address. Go over and you get 429 with a Retry-After header. Nothing is blocked and no approval is needed to carry on.

Counted in fixed one-minute windows rather than a sliding one, so a burst landing either side of a boundary can get through about twice that before the first 429. We would rather say so than publish a tidier number.

The optional agent field lets you tell us who you are. It is a courtesy label, not a credential: it grants nothing, and leaving it out changes no limit and no behaviour. We log it with your User-Agent, the HTTP method, and which field names you sent. We do not log the values.

One honest caveat about that promise. A GET puts your inputs in the URL, and URLs are recorded by our hosting, by the CDN in front of it, and in any error trace. We cannot unsee those. A POST body is not written to those logs, which is why we recommend POST for anything involving a date.

The other machine-readable files

robots.txt is advisory. It records what we want, and we have written it to let you in; it is not an access control and we do not treat it as one.

Which crawlers we allow, and why

All three classes are allowed. We name them rather than relying on the wildcard, because several agents only honour a group that names them.

search — allowed
AI search: answers a live query and cites the source. Being quoted with a link is this brand's discovery channel, so this class is the whole reason to allow any of it.
OAI-SearchBot, PerplexityBot, Claude-SearchBot, Applebot
user-directed-retrieval — allowed
Fetches a page because a person asked about it, in the moment. Blocking these means a parent who asks an assistant about us is told the page could not be read.
ChatGPT-User, Perplexity-User, Claude-User
training — allowed
Ingests content to train future models. No citation and no traffic back, so this is a real editorial call rather than an obvious one. Allowed: nothing here is paywalled, and being absent from the models parents will ask is the larger risk.
GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, meta-externalagent, CCBot, Amazonbot, Bytespider, cohere-ai, Diffbot, omgili, Timpibot, YouBot