canonical: https://jentic.com/apis/pimms.io/pimms

# PIMMS API

Jentic publishes the only available OpenAPI specification for PIMMS API, keeping it validated and agent-ready. PIMMS API provides link tracking and attribution capabilities with 3 endpoints for creating tracked links, upserting link configurations, and retrieving click analytics. The API enables marketing teams to attribute conversions to specific campaigns, channels, and content by generating tracked URLs and querying engagement data.

## For AI agents

Create tracked links, manage link configurations, and retrieve click analytics for marketing attribution and campaign performance measurement.

## Scope

Does not handle email delivery, ad campaign management, or CRM operations - use for link tracking and click attribution only.

## Capabilities

- Create tracked links with campaign attribution parameters
- Upsert link configurations to update tracking settings without creating duplicates
- Retrieve click analytics and conversion attribution data
- Track link engagement across marketing channels and campaigns
- Measure content performance with per-link analytics

## Use cases

### Campaign Link Attribution

Create tracked links for marketing campaigns with attribution parameters that identify the source, medium, and campaign. PIMMS generates unique tracked URLs that record every click, enabling marketers to attribute conversions and measure which channels drive engagement.

Example prompt: Create a tracked link for URL https://example.com/offer with campaign name 'summer-sale' and source 'email'

### Click Analytics and Performance Reporting

Query click analytics data for tracked links to measure campaign performance. The /analytics endpoint returns engagement metrics including click counts, referrer data, and temporal patterns, enabling data-driven decisions about which marketing content performs best.

Example prompt: Retrieve click analytics for all links in the 'summer-sale' campaign for the last 30 days

### Link Management and Configuration

Manage tracked link configurations through the PIMMS upsert endpoint, which creates new links or updates existing ones based on destination URL. This prevents duplicate tracked links while allowing teams to modify attribution parameters, redirect destinations, or tracking settings as campaigns evolve.

Example prompt: Upsert a link configuration for https://example.com/product with updated campaign parameters and verify the link is active

### AI Agent Marketing Attribution

AI agents use the PIMMS API through Jentic to create tracked links and query attribution data without manual configuration. Agents search for link tracking operations by intent, load the endpoint schema, and execute calls with Jentic handling Bearer token authentication.

Example prompt: Search Jentic for 'create tracked marketing link', load the PIMMS /links endpoint schema, and create a tracked link with campaign attribution

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/links` | Create a new tracked link |
| PUT | `/links/upsert` | Create or update a link configuration |
| GET | `/analytics` | Retrieve click analytics data |

## Key resources

- **Links** — Create and manage tracked links with attribution parameters
- **Analytics** — Retrieve click and engagement data for tracked links

## 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:** 66 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 100 / 100
  - Developer Experience & Jentic Compatibility: 63 / 100
  - AI-Readiness & Agent Experience: 44 / 100
  - Agent Usability: 94 / 100
  - Security: 60 / 100
  - AI Discoverability: 100 / 100
- **View full report:** https://jentic.com/apis/pimms.io/pimms/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 the PIMMS API by hand means setting up its bearer auth and coding each link creation, upsert, and analytics call yourself. Through Jentic you install once, import PIMMS from the API Directory, store the bearer token once, and your agent calls it.
- **Permission scoping:** PIMMS takes link details in the request body rather than a resource id in the path, so scoping is by operation: you limit the agent to the operations it needs, such as creating a tracked link or reading analytics, and leave the rest out. You choose that set, so an upsert that overwrites links is not included unless you add it.
- **Credential handling:** Your PIMMS bearer token 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 'create a tracked marketing link' or 'read click analytics', and Jentic returns the matching PIMMS operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Bitly API** — Bitly provides link shortening with click tracking and broader enterprise features
- **Short.io API** — Short.io offers branded short links with detailed analytics and custom domain support
- **Dub API** — Dub provides modern link management with built-in analytics and team collaboration

## FAQ

### Why is there no official OpenAPI spec for PIMMS API?

PIMMS does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call PIMMS API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the PIMMS API use?

The PIMMS API uses Bearer token authentication. Your API token is passed in the Authorization header. Through Jentic, this token is stored encrypted in your Jentic One instance and injected automatically into requests.

### Can I create tracked links with campaign attribution parameters?

Yes. The POST /links endpoint accepts a destination URL along with campaign, source, and medium parameters. The generated tracked link records all clicks with full attribution data for later analysis.

### What analytics data does the PIMMS API return?

The GET /analytics endpoint returns click counts, referrer information, and temporal engagement patterns for your tracked links. You can filter by campaign, date range, and link to measure performance across marketing channels.

### How do I create a tracked link through the PIMMS API using Jentic?

Search Jentic for 'create tracked marketing link', load the /links operation schema, and execute with your destination URL and campaign parameters. Jentic handles Bearer token injection and returns the generated tracked link URL.

### What is the difference between the /links and `/links/upsert` endpoints?

POST /links always creates a new tracked link. PUT `/links/upsert` creates a link if it does not exist or updates the configuration if one already exists for that destination URL. Use upsert to avoid duplicate tracked links for the same content.

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

Yes. Because you run Jentic One yourself, your own rules decide which PIMMS operations and credentials the agent may use. PIMMS scopes by operation rather than by resource id, so you grant only the calls the agent needs, such as POST /links to create a tracked link or GET /analytics to read click data. If you do not want the agent overwriting existing links, you simply leave the PUT `/links/upsert` operation out of the set it can call.
