canonical: https://jentic.com/apis/meertrack.com/meertrack

# meertrack API

The meertrack API reads the competitor intelligence a meertrack workspace collects: each tracked competitor's profile, social links, and tracked page URLs, plus a change feed across sections such as blog posts, press posts, job listings, ads, pricing, case studies, LinkedIn and X posts, reviews, YouTube videos, events, messaging, claimed metrics, logos, and sitemap URLs. The activity feed returns additions, updates, and removals within a from and to window, or the full current roster when no window is given, and individual items can be resolved by row id. Weekly digests summarise each competitor, with a shortcut to the latest digest per competitor.

## For AI agents

Read tracked competitors, pull a feed of their added, updated, or removed pricing, jobs, ads, posts, and messaging changes over a date window, and fetch weekly competitor digests from a meertrack workspace. Read-only.

## Scope

Does not handle adding or configuring tracked competitors, sending alerts, or web scraping on demand. Use for reading meertrack competitor profiles, change activity, and digests only.

## Capabilities

- List the workspace's tracked competitors filtered by active status or id, with expand=full for social links and page URLs
- Read one competitor's overview with per-section item lists for its 12 overview sections
- Pull the activity feed filtered by competitor_id, section such as pricing or job-listings, and change_type of added, updated, or removed within a from and to window
- Resolve one or many activity items by row id for the full detail behind a change
- Page through weekly digests by competitor and date range, or fetch the latest digest for every competitor
- Check the caller's auth context and workspace with the me route before running a report

## Use cases

### Agent-written competitor briefings through Jentic

A product marketing agent can write a weekly competitor briefing through Jentic. It pulls the activity feed for the past week filtered to sections such as pricing, messaging, and job-listings, resolves the most important items for detail, and combines them with each competitor's latest digest, all read-only, so it cannot change what the workspace tracks.

Example prompt: Call the activity feed with section pricing and messaging, change_type updated, and from set to seven days ago, resolve the returned items, then fetch the latest digests and write a one-page briefing

### Pricing and packaging watch

Sales and pricing teams want to know the moment a rival changes its pricing page. Filtering the activity feed to the pricing section within a date window returns every added, updated, or removed pricing item, so a team can review exactly what changed and when.

Example prompt: Pull activity with section pricing and from set to yesterday, and post each changed pricing item with its competitor name to the sales channel

### Hiring signal tracking

Job listings reveal where a competitor is investing. Filtering activity to the job-listings section with change_type added shows new roles over a period, and the competitor overview lists current job listings alongside other tracked sections.

Example prompt: Pull activity for competitor_id of Acme with section job-listings, change_type added, and from set to the start of the quarter, then group the roles by team

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/competitors` | List tracked competitors |
| GET | `/competitors/{id}` | Get a competitor overview |
| GET | `/activity` | Cross-competitor change feed |
| GET | `/activity/items` | Resolve multiple activity items |
| GET | `/digests/latest` | Latest digest per competitor |
| GET | `/digests` | List weekly digests |

## Key resources

- **Competitors** — List tracked competitors and read each competitor's overview.
- **Activity** — Cross-competitor change feed and resolution of single or multiple activity items.
- **Digests** — Weekly digests by competitor and date, plus the latest digest per competitor.
- **Me** — Caller auth context, API key in use, and workspace.

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 90 / 100
- **Maturity:** Agent-Optimized
- **Dimensions:**
  - Foundational Compliance: 74 / 100
  - Developer Experience & Jentic Compatibility: 100 / 100
  - AI-Readiness & Agent Experience: 100 / 100
  - Agent Usability: 94 / 100
  - Security: 100 / 100
  - AI Discoverability: 72 / 100
- **View full report:** https://jentic.com/apis/meertrack.com/meertrack/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring meertrack by hand means handling its bearer key, strict query validation that rejects unknown parameters, cursor pagination, and per-instance rate limits with jittered backoff. Through Jentic you install once, import meertrack from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** meertrack puts competitor, digest, and activity row ids in the URL path (`/competitors/{id}`, `/digests/{id}`), so a rule can bound your agent to the read operations you pick and, on those routes, to specific records. All operations are reads, so the choice is about which data the agent sees, such as digests only rather than the full activity feed.
- **Credential handling:** Your meertrack key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'see competitor pricing changes' or 'get the latest competitor digest', and Jentic returns the matching meertrack operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Adyntel API** — Pulls competitor ad creative from Facebook, Google, and LinkedIn ad libraries.
- **BuiltWith** — Detects the technology a competitor's website runs on.
- **Semrush** — Search traffic and keyword data for competitor domains.
- **Crustdata** — Company headcount and people data for enrichment.

## FAQ

### What authentication does the meertrack API use?

The meertrack API authenticates with a bearer token per its OpenAPI spec: every request sends Authorization: Bearer with an mt_live_ key. Workspace admins mint keys in the app under Settings, the plaintext is shown once, and a lost key can only be revoked and re-issued. Through Jentic the key is stored encrypted on your own instance and injected at call time.

### Is there a meertrack MCP server?

You don't need an MCP server to give your agent meertrack. Jentic connects it directly from the API Directory: import it, store your credential once, and your agent calls it. Operations are discovered on demand, which keeps another server's tool definitions out of your agent's context.

### Can I limit what my agent is allowed to do with the meertrack API?

Yes. Every meertrack operation is a read, so the useful limit is which data the agent sees. For example, write a rule that allows only GET `/digests/latest`, so a briefing agent can read each competitor's latest digest but not the raw activity feed or item detail. Every call it makes is logged.

### What are the rate limits for the meertrack API?

The spec states a limit of 60 requests per minute per workspace, enforced per serverless instance, so X-RateLimit-Remaining is not monotonic across requests. Treat a rate-limited response with X-RateLimit-Reset as the backoff signal and add jitter.

### How do I get only recent changes instead of the whole roster?

Pass from, and optionally to, on GET /activity. With a window you get adds, updates, and removals in that period only. Omit both and you get the complete all-time roster, including items that existed when tracking began, so change_type=added then covers nearly everything.

### How do I pull competitor changes with meertrack through Jentic?

Search Jentic for an intent like 'see what competitors changed this week', import the meertrack API, and store your key once. Your agent then calls GET /activity with a from date and the sections it cares about, and GET `/activity/items` to resolve the details. To run it on your own infrastructure, install Jentic One from its GitHub repo.
