How to log your review times automatically
App Store Connect can send a webhook every time your app’s status changes. Point it at Review Clock and your review times get logged on their own. You never hand over an API key.
1. Get your webhook URL and secret
Go to the Connect your app page. Pick your platform and whether it’s a new app or an update. Then copy the URL and secret. Bookmark your private history link too, since that’s where your own reviews show up.
2. Add the webhook in App Store Connect
In App Store Connect, open Users and Access → Integrations → Webhooks and add one for your app. Paste in the URL and secret. Then turn on the App Store version state event (APP_STORE_VERSION_APP_VERSION_STATE_UPDATED). Rather use the API? POST /v1/webhooks takes the same fields:
{ "data": { "type": "webhooks", "attributes": {
"enabled": true, "name": "Review Clock",
"eventTypes": ["APP_STORE_VERSION_APP_VERSION_STATE_UPDATED"],
"secret": "YOUR_SECRET", "url": "YOUR_WEBHOOK_URL" },
"relationships": { "app": { "data": { "type": "apps", "id": "YOUR_APP_ID" } } } } }
3. Send a test ping
Hit Send test in App Store Connect (or use POST /v1/webhookPings). If the signature checks out, Review Clock sends back a 200.
4. Submit like you normally would
Your version goes to WAITING_FOR_REVIEW, then IN_REVIEW, then gets a decision like PENDING_DEVELOPER_RELEASE or REJECTED. Review Clock saves each step with Apple’s timestamp. Then it figures out how long you waited and adds that to the front page. Your name isn’t attached.
How the signature works
Apple signs each request with your secret using HMAC-SHA256 and sends it as x-apple-signature: hmacsha256=<hex>. Review Clock does the same math and checks they match. If they don’t, the request gets thrown out. Details are in Apple’s webhook documentation.
What’s stored
Just the event ID, the version ID, the old and new status, and the time. Nothing else. I never see your app’s name unless you type it in as the nickname.