ScreenshotNeo

BlogHow-to

How to Track Visual Changes to an Indian Mutual Fund Website Page

Set up a reliable visual history for an Indian mutual fund page, reduce noise from daily NAV updates, and verify meaningful changes before acting.

By the ScreenshotNeo team4 October 202611 min read

To track visual changes to an Indian mutual fund website page, first confirm the official AMC or scheme URL, save a dated baseline screenshot, then monitor the whole page or the specific region that matters. Review every alert against the current official page before treating it as a confirmed change. Daily NAV updates can change a page image without indicating a redesign or disclosure change.

This guide covers a practical manual workflow, browser-based automation, and screenshot monitoring with ScreenshotNeo. No monitoring service is verified here against a particular AMC page: test your exact URL and page state before relying on alerts.

1. Choose the official page and define what counts as a change

Start with the exact page you intend to monitor, such as an AMC scheme page, a notice or disclosure page, or a factsheet listing. AMFI and SEBI provide resources that can help you locate official mutual fund and AMC information. SEBI’s mutual-fund resources link to AMFI material including scheme information, NAV history, online AMC links, and factsheets. Use the AMC’s own page as the source of record for the page you are tracking.

Write down the target URL and the purpose of monitoring. Examples include:

  • A new investor notice or factsheet link.
  • A change to a scheme disclosure, risk display, or description.
  • A change in page layout or visible content.

Decide whether you need a visual alert, a text or link alert, or both. A screenshot is useful for appearance and layout. Text or element monitoring can be more useful when the question is whether a phrase or document link changed.

2. Account for daily NAV movement

AMFI says NAVs are published daily on the respective mutual fund websites and AMFI’s website, and that open-ended scheme NAVs are declared after markets close. That means a page containing a NAV value may look different each day even when its design and disclosures are unchanged. See AMFI’s NAV explanation.

If you want alerts about layout or disclosure changes, monitor a stable region that excludes the NAV, or combine visual monitoring with text or element filters where your chosen tool supports them. If the NAV itself is the subject, treat a changed value as expected data movement and compare the value with the official source and date rather than calling it a redesign.

3. Establish a useful baseline

  1. Open the official URL in the page state you want to track. Note whether it requires a selection, click, login, or other interaction.
  2. Capture the page or target region and save the screenshot with the URL and capture date.
  3. Check that the screenshot is legible and contains the intended content. A successful request alone does not prove the right page state was captured.
  4. Record the viewport or device size and any interaction needed to reach the content. Use the same conditions for future captures where possible.

A URL may not represent every interactive state. If a notice appears only after a selection or a section is collapsed by default, verify that your monitor can reproduce the state you care about. For a disclosure link, save the link text and destination as well as a screenshot when possible.

4. Choose a monitoring approach

Approach Useful when Trade-off
Manual dated screenshots You need a small, auditable record or are validating a target. You must capture and compare snapshots yourself.
Visual monitoring service You want recurring captures and visual before-and-after comparisons or alerts. You need to confirm the service can access the exact page and state.
Local browser automation A remote service cannot access the page or the workflow needs custom interactions. You maintain the browser, schedule, storage, and comparison process.
Screenshot API You want to capture pages from a script or application and retain your own history. You build the scheduling, comparison, and alerting around the capture call.

Visualping documents full-page and selected-element monitoring, plus visual and text comparison views and adjustable check frequency. Distill documents change history and highlighted comparisons; its documentation also describes cases where remote-browser access can fail and local monitoring or configuration changes may be needed. Try the exact AMC page with your selected approach before depending on it: these sources do not establish that any service works on every Indian AMC site. See Visualping’s monitoring overview, Visualping’s alert options, and Distill’s change-history documentation.

5. Capture screenshots with a browser script

For a DIY visual history, use a browser automation tool to visit the page, wait for it to render, and save a screenshot on a schedule. The example below uses Playwright for Node.js. Install Playwright and its Chromium browser using its official setup instructions, then save this as capture.mjs. Set TARGET_URL to the official page and run with Node.js.

import { chromium } from 'playwright';
import { mkdir } from 'node:fs/promises';

const url = process.env.TARGET_URL;
if (!url) throw new Error('Set TARGET_URL to the official page URL');

const browser = await chromium.launch({ headless: true });
try {
  const page = await browser.newPage({ viewport: { width: 1440, height: 1000 } });
  await page.goto(url, { waitUntil: 'domcontentloaded', timeout: 45_000 });
  await page.locator('body').waitFor({ state: 'visible', timeout: 15_000 });
  await page.screenshot({ path: `captures/${new Date().toISOString().replaceAll(':', '-')}.png`, fullPage: true });
} finally {
  await browser.close();
}

Create the output directory before capture. Add this before launching the browser:

await mkdir('captures', { recursive: true });

Run it with TARGET_URL='https://example.com/scheme-page' node capture.mjs, replacing the example with the official URL. Schedule the command with your operating system’s scheduler or CI runner. Keep the URL and viewport stable to make comparisons meaningful.

Capture only a region

If the page has a stable disclosure or notice region, a locator screenshot can reduce noise. Replace the full-page screenshot call with a selector that matches the actual page:

const region = page.locator('main .scheme-disclosures');
await region.waitFor({ state: 'visible', timeout: 15_000 });
await region.screenshot({ path: `captures/region-${Date.now()}.png` });

Update the selector after confirming it in the browser’s developer tools. If the selector matches several elements or none, the capture should fail visibly rather than silently monitor the wrong area.

Compare snapshots and preserve evidence

Keep each capture with its timestamp and target URL. A pixel diff can flag changed pixels, but it does not determine whether a change matters. Layout shifts, rotating content, font rendering, and changing values can all produce differences. For a human review, open the two dated images side by side or as an overlay, then record a short description of the observed change and whether you verified it on the official page.

Keep enough context to reproduce the capture: URL, capture time and timezone, viewport, selected region or selector, and any interaction steps. If your monitoring service provides change history, use it to compare versions and retain the relevant screenshots or records according to your own record-keeping needs.

6. Set cadence, alerts, and review rules

There is no universally correct check interval established for AMC pages. Choose a cadence based on how quickly you need to learn about a change and how much noise you can review. Start with a reasonable interval, inspect the saved captures, and adjust once you see the page’s normal behavior.

  • Use a region or element filter for stable disclosures when available.
  • Keep an initial baseline and at least the before-and-after captures for each alert you review.
  • Record alert date, URL, capture state, and a short human description.
  • Check the current official page before treating an alert as confirmed.
  • Escalate changes to investor-facing information for appropriate human review; a visual diff is evidence of a page change, not an interpretation of its significance.

7. Use ScreenshotNeo for API-based captures

If you want to capture a page from code without installing and maintaining a browser, ScreenshotNeo provides a website screenshot API and an MCP server. Its API returns a screenshot or PDF from one GET request. The examples below save the response body; for a monitoring system, also record the timestamp, URL, and response headers alongside each file. See the ScreenshotNeo documentation for API details.

cURL

curl -G "https://api.screenshotneo.com/v1/shot" \
  -d access_key=YOUR_API_KEY \
  --data-urlencode url=https://example.com/scheme-page \
  -o shot.webp

Python

import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://example.com/scheme-page"},
    timeout=90,
)
r.raise_for_status()
with open("shot.webp", "wb") as f:
    f.write(r.content)
print("Page verdict:", r.headers.get("X-Page-Verdict"))
print("Billed:", r.headers.get("X-Billed"))

Node.js

const q = new URLSearchParams({
  access_key: 'YOUR_API_KEY',
  url: 'https://example.com/scheme-page'
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
const image = new Uint8Array(await res.arrayBuffer());
await import('node:fs/promises').then(({ writeFile }) => writeFile('shot.webp', image));
console.log('Page verdict:', res.headers.get('X-Page-Verdict'));
console.log('Billed:', res.headers.get('X-Billed'));

Replace the example URL with the page you have verified. Protect the API key: keep it in an environment variable or secret store in production rather than committing it to source control. Save the response headers with the image so you can distinguish the page outcome and billing status in your capture log.

Options for reducing capture noise

ScreenshotNeo supports full-page capture with lazy images loaded, capture of a CSS-selected element, dark mode, 12 device presets and custom viewports, retina scale, custom CSS and JavaScript, click-before-capture, hiding selectors, waits for a selector, delay or network idle, blocking ads, trackers, requests or resource types, custom headers, cookies, user agent and Authorization, timezone and geolocation, transparent backgrounds, image resizing, and caching with a chosen TTL. It also supports PDF options such as paper size, margins, landscape and page ranges; HTML or CSS input; signed public image links; asynchronous jobs with signed webhooks; bulk capture of up to 100 URLs per call; a usage API; and an OpenAPI spec.

For page-change monitoring, keep capture settings fixed over time. Consider a CSS selector or hide selector for volatile areas such as a changing NAV panel, and use a wait-for-selector or explicit interaction when the target content loads after the initial page. If you use a cache TTL, choose settings that fit the need for fresh captures; a cached capture is not evidence that the live page was checked at that moment. You can turn off cookie consent handling or other cleanup steps if they interfere with the page state you need to inspect.

Or skip the browser setup

Make one request to capture the target page, then store dated responses for your own history. ScreenshotNeo accepts cookie or consent banners like a visitor and removes 60+ known consent platforms, newsletter popups, and chat widgets before capture; each cleanup step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and responses identify the page verdict and billing status with X-Page-Verdict and X-Billed headers. Its MCP server gives AI agents tools named take_screenshot, get_page_info, and capture_pdf. The Free plan includes 1,000 shots a month with no card; paid plans start at $5 for 3,000 shots.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com/scheme-page -o shot.webp

See the API documentation, then sign up for 1,000 free screenshots a month with no card.

8. Troubleshooting

Symptom Likely cause What to check or change
Every capture triggers an alert NAV values, rotating banners, timestamps, or other dynamic content changes. Monitor a stable region, hide or exclude volatile elements if supported, and compare the changed area with the official page.
The screenshot is blank or incomplete The page has not rendered, content loads after interaction, or the monitor cannot access it. Wait for a visible target selector, confirm the page state in a normal browser, and test the exact URL and capture method.
The cloud monitor cannot reach the page Remote browser access may fail or the site may require a different configuration. Check the vendor’s access guidance; consider local browser monitoring and verify that it captures the intended state. Distill documents remote access limitations and local monitoring options.
The selected region is missing The CSS selector is wrong, changed, or not unique. Inspect the live page, adjust the selector, and require a visible match before capture.
Images or fonts differ between captures Resources are still loading or capture conditions changed. Wait for the target content, keep viewport and device settings fixed, and compare after confirming the saved image is complete.
The alert appears important but the page looks unchanged Small rendering differences can alter pixels without changing meaning. Compare versions, inspect the changed area, and verify the current official page before recording a confirmed change.
An API call returns an error or unusable image The URL, access key, page load, or requested capture state may be invalid or unavailable. Check the HTTP status, URL encoding, credentials, response headers, and whether the target page is accessible. Do not treat an error response as an image.

9. Reliability, performance, and cost

Reliability depends on the exact page and capture path. A page can change its markup, require a new interaction, or become inaccessible to a remote browser. Keep the baseline and alert evidence, monitor whether captures are actually arriving, and periodically check that the saved view still shows the intended content. Use a local browser monitor if remote access is unsuitable and the local approach can reproduce the needed state.

Full-page captures and repeated checks take more work than capturing a small region, so target the narrowest area that answers your question. The research sources do not establish a generally correct interval or a performance benchmark for Indian AMC pages. Choose cadence based on your review needs and validate it on the actual page.

For ScreenshotNeo, all features are available on every plan: Free offers 1,000 shots/month without a card; Starter is $5 for 3,000; Growth is $15 for 15,000; Pro is $39 for 60,000; Scale is $99 for 250,000; and Business is $249 for 1,000,000. Yearly billing gives two months free. Only clean shots are billed; bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing. Compare the plan capacity with your capture schedule and any retries you choose to make.

10. India-specific disclosure context

A SEBI-hosted December 2024 scheme-information document includes disclosure language about periodic Scheme Summary Documents and website publication. That statement belongs to that document’s scheme context; do not generalize it into a complete current rule for every fund. For a particular scheme, check the current official disclosure and relevant current SEBI materials. See the SEBI-hosted scheme-information document and SEBI’s mutual-fund resources.

FAQ

Does a changed screenshot prove that a fund’s disclosure changed?

No. It shows that the rendered page differed under the capture conditions. Inspect the changed region and confirm the current official page before drawing a conclusion.

Should I monitor the whole AMC website?

Usually begin with the specific official page and region tied to your purpose. A narrower target is easier to review and less likely to alert on unrelated page activity.

Can I rely on one monitoring service for every AMC?

No such compatibility is established by the cited sources. Trial the exact URL, state, and region, and confirm that the saved captures are useful.

Where should I verify a scheme page URL?

Use official AMC information and the AMFI or SEBI investor resources to locate relevant mutual fund and AMC links. Record the exact URL you ultimately monitor.