delegateAccessTokenCreate expiresIn now returnsWhen creating a delegate token, the response now includes "how many seconds until expiration." In particular, when you omit the expiry and inherit the parent token's TTL, you can now determine the expiration time — something that was previously impossible to know.
delegateAccessTokenCreate The mutation now returns DelegateAccessToken to the type expiresIn field added.You could create the token, but the response carried no expiry information. Especially when no expiry was specified, there was no way to know when it would expire.
The response's expiresIn now contains "how many seconds until expiration." This makes it possible to design refresh timing and add monitoring.
expiresIn You can specify the TTL (time to live) in the input.What was newly added is the response-side expiresIn which represents "seconds remaining until expiration."(Specific schema details beyond the fields in the code above are not described in the article.)
What the article specifically calls out as "particularly beneficial" is thein the input expiresIn was not specifiedcase. In this case, the delegate token inherits the parent token's TTL (Time to Live).
expiresIn fills that gap, which is the core of this update.| Item | Before | Now (2026-04 onward) |
|---|---|---|
| Knowing the expiration when expiresIn is specified | Manual calculation Estimate it yourself from the input value | Confirmed Get it from the response value |
| When expiresIn is omitted (parent TTL inherited) | Not possible No way to know the expiration time | Identified Returns seconds remaining |
| Aligns with REST delegate endpoint | Expiration data existed only on REST | Now aligned Equivalent data is now in GraphQL |
| Value format | — | Until expirationSeconds remaining(seconds remaining) |
| Target API version | — | 2026-04 and later |
This expiresIn field is available in GraphQL Admin API version 2026-04 and later. Apps calling older versions need to update their API version.
Applies to apps that issue delegate tokens. The new field is included in the issuance response.No additional conditions such as eligible plans are mentioned in the article.
expiresIn is the number of seconds until expiration. If you want to store it as an expiration time, derive your own timestamp withfetch time + expiresIn . It's timezone-independent, but you need to fix a reference point for the receive time.
input expiresIn — when omitted, the child inherits the parent's TTL.Knowing the expiration in this case is the biggest gain from this update. If you always specify it explicitly, the benefit is limited; if you rely on inheritance, you can rework your refresh logic.
Aligns with the expiration data that was available from the REST Admin API delegate endpoint.Migrating from REST to GraphQL no longer drops expiration info — the incompatibility is resolved.
Instead of "noticing expiration only after hitting a 401,"check the seconds remaining and refresh in advancedesigns become possible, preventing intermittent failures caused by token expiration.
expiresIn is version 2026-04 or lateris required for it to be returned. Apps pinned to older API versions must first upgrade their call version.Simply adding expiresIn to the query will not work on older versions— note this caveat. The article does not document retroactive application to existing tokens or specifications of other fields, so verify against the actual schema.
expiresIn from the issuance response and set up a job to reissue the token before the remaining seconds drop below a threshold.expiresIn and cache it. Holding the remaining seconds directly becomes stale over time, so normalize to an absolute timestamp.delegateAccessTokenCreate , retrieving expiration information equivalent to REST via the response's expiresIn .expiresIn returned at issuance, and visualize tokens with short remaining seconds on dashboards and alerts.delegateAccessTokenCreate responses now include seconds remaining until expiry expiresIn (from 2026-04 onward).