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

# IFTTT Service API

The IFTTT Service API defines the endpoints an IFTTT service must implement so IFTTT can poll its triggers, run its actions, and perform its queries. It covers a status check, a test setup call that returns test data, user info, trigger event polling with trigger_identity and triggerFields, action runs with actionFields, queries with queryFields and cursor paging, and dynamic field options and validation for each step. Calling these routes directly lets a developer or agent exercise a service implementation the same way IFTTT does, before submitting it.

## For AI agents

Exercise an IFTTT service implementation: check status, load test data, poll a trigger, run an action, perform a query, and fetch or validate field options by step slug.

## Scope

Does not create applets, manage a user's IFTTT account, or connect other services on their behalf. Use for implementing and testing an IFTTT service's endpoints only.

## Capabilities

- Check that an IFTTT service is up with GET `/ifttt/v1/status` using the IFTTT-Service-Key header
- Request test data from a service's test setup endpoint to drive end-to-end checks
- Poll a trigger by stepSlug with trigger_identity, triggerFields, and user to read new events
- Run an action by stepSlug with actionFields for a given user
- Perform a query by stepSlug with queryFields and follow the returned cursor
- Fetch dynamic dropdown options and validate field values for trigger and action fields

## Use cases

### AI agent testing an IFTTT service through Jentic

A developer building an IFTTT service wants their coding agent to run the same calls IFTTT will make, without hand-writing a test harness. Through Jentic the agent searches for 'run an IFTTT service action', loads the runAction operation with its input schema, and sends actionFields and user for a step slug, with the IFTTT-Service-Key and user bearer token injected at call time. The agent reports which steps respond correctly.

Example prompt: Call POST `/ifttt/v1/test/setup`, then POST `/ifttt/v1/actions/{stepSlug}` for each action slug with the returned sample actionFields and user, and report any non-200 responses

### Trigger polling checks

IFTTT checks triggers by posting to the service with a trigger_identity, the configured triggerFields, the user, and an optional limit. A developer can replay those calls against their own service to confirm it returns events in the expected shape and honours limit. Field validation endpoints confirm a bad triggerFields value is rejected before users hit it.

Example prompt: POST `/ifttt/v1/triggers/{stepSlug}` with trigger_identity, triggerFields, user, and limit set to 3, then POST `/ifttt/v1/triggers/{stepSlug}/fields/validate` with values and compare the results

### Dynamic field options

Services that show users a dropdown, such as a list of their boards or lists, serve it from the field options endpoints. Calling the options routes for a trigger, action, or query field returns what IFTTT will display, so a developer can check the labels and values for a test account before publishing.

Example prompt: POST `/ifttt/v1/actions/{stepSlug}/fields/{stepFieldSlug}/options` for a test user and list the returned option labels

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/ifttt/v1/status` | Service status |
| POST | `/ifttt/v1/test/setup` | Set up and return test data |
| POST | `/ifttt/v1/triggers/{stepSlug}` | Check a trigger for events |
| POST | `/ifttt/v1/actions/{stepSlug}` | Run an action |
| POST | `/ifttt/v1/queries/{stepSlug}` | Perform a query |
| POST | `/ifttt/v1/triggers/{stepSlug}/fields/validate` | Validate trigger fields |
| GET | `/ifttt/v1/user/info` | Get user info |

## Key resources

- **Service** — Status check, test setup, and user info
- **Triggers** — Poll trigger events and get or validate trigger field options
- **Actions** — Run actions and get action field options
- **Queries** — Perform queries and get query field options

## 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:** 64 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 53 / 100
  - Developer Experience & Jentic Compatibility: 68 / 100
  - AI-Readiness & Agent Experience: 53 / 100
  - Agent Usability: 94 / 100
  - Security: 55 / 100
  - AI Discoverability: 100 / 100
- **View full report:** https://jentic.com/apis/ifttt.com/ifttt/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 IFTTT Service API by hand means sending the IFTTT-Service-Key header on every service call, adding a user OAuth2 bearer token on user-scoped steps, and building trigger, action, and query bodies per step slug. Through Jentic you install once, import it from the API Directory, store both credentials once, and your agent calls it.
- **Permission scoping:** The IFTTT Service API puts the step slug in the URL path (`/ifttt/v1/actions/{stepSlug}`), so a rule can pin your agent to one trigger, action, or query and the operations you pick. You choose the operations it may call, so action runs are not included unless you add them.
- **Credential handling:** Your IFTTT service key and user token are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'run an IFTTT service action' or 'check an IFTTT trigger for new events', and Jentic returns the matching operation with its input schema so the agent builds the right body without reading the protocol docs.

## Related APIs

- **Zapier AI Actions API** — Lets an agent run actions across apps connected to a Zapier account
- **n8n Public API** — Manage workflows and executions on a self-hosted or cloud n8n instance
- **Pipedream API** — Serverless workflows and HTTP endpoints for integrations

## FAQ

### What authentication does the IFTTT Service API use?

The IFTTT Service API spec declares two schemes: an API key in the IFTTT-Service-Key header, and a bearer token carrying the user's OAuth2 access token. The status and test setup routes are declared with the service key, while the user info, trigger, action, and query routes list the service key or the user bearer token. Through Jentic both credentials are stored encrypted by your own Jentic One instance and injected at call time.

### Can I run an action on my service with the IFTTT Service API?

Yes. POST `/ifttt/v1/actions/{stepSlug}` takes actionFields and user in the body, with an optional ifttt_source, and runs the action named by stepSlug. Use POST `/ifttt/v1/actions/{stepSlug}/fields/{stepFieldSlug}/options` to see the values a dynamic action field offers.

### What are the rate limits for the IFTTT Service API?

The OpenAPI spec does not specify rate limits. Check the IFTTT developer documentation at https://ifttt.com/docs for the current polling and request guidance for services.

### Is there an IFTTT MCP server?

You don't need an MCP server to give your agent the IFTTT Service API. Jentic connects it directly from the API Directory: import it, store your service key and user token once, and your agent calls the trigger, action, and query operations it needs, discovered on demand.

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

Yes. For example, write a rule that allows GET `/ifttt/v1/status` and POST `/ifttt/v1/triggers/{stepSlug}` for a single trigger slug, so the agent can check health and poll that one trigger but cannot run actions. Every call it makes is logged.

### How do I poll a trigger through Jentic?

Search Jentic for 'check an IFTTT trigger for new events', load the getTriggerEvents operation, and execute it with the stepSlug plus trigger_identity, triggerFields, and user in the body. To run it on your own infrastructure, install Jentic One from its GitHub repo.
