Gmail
Gmail API v1 plus 128 simulated Workspace Directory, 6 Reports, and 24 People methods, exposed through REST, discovery, and MCP.
Vendor reference: https://developers.google.com/workspace ↗. Machine-readable: compat/gmail.json.
Surfaces
| Kind | Path | Notes |
|---|---|---|
| REST | /gmail/v1 | Gmail API v1 |
| REST | /admin/directory/v1 | Workspace Admin SDK Directory API v1 |
| REST | /admin/reports/v1 | Workspace Admin SDK Reports API v1 |
| REST | /v1 | People API v1 |
| MCP | /mcp | Gmail mailbox and Workspace directory and contacts tools |
API versions: Gmail v1, Admin Directory v1, Admin Reports v1, People v1
Supported
- 128 tenant-scoped Directory methods for users, groups, members, org units, devices, printers, roles, and admin writes
- 6 Reports methods with graph-derived activity and reconciled usage
- 24 People methods for directory profiles, per-user contacts, contact groups, and sync state
- Google discovery documents for Gmail, Directory, Reports, and People
- Directory and People REST data is tenant-scoped and shared with MCP tools
Not supported
- Real Workspace account provisioning, contact-photo bytes, and commands executed on real devices
Known differences and test guidance
| Scenario | Difference from Gmail | In your tests |
|---|---|---|
| Reports activities | Audit events are deterministic synthetic records derived from the company graph and simulator writes. | Assert on supported event shapes and ordering, not on a real Workspace audit log. |
| OAuth scope enforcement | Scope checks apply to signed mock-IdP tokens; open mode accepts opaque bearer tokens without scope claims. | Use a signed token with the requested Google scopes to test permission refusals. |
Fault injection
| Key | What the client sees |
|---|---|
throttle | Google-shaped 429 rate-limit response for supported Gmail routes. |
Applies to every system
- The hosted data plane is read-only: a write is refused with
403 writes_disabled. A SOQL, GraphQL or searchPOSTis a read and is answered. - Faults are injected through
POST /_admin/faultson a simulator you run yourself;POST /_admin/faults/resetclears them. - Rate limits do not happen on their own unless a page says so. Use fault injection to exercise a client's backoff.
- Distributions come from aggregated metadata sketches of data Eon backs up; no customer records; all Era data is simulated.