Description
Describe the bug
The built-in "Etsy Open API v3" connector fails on every request with:
403 Forbidden
{"error": "Shared secret is required in x-api-key header"}
Steps to reproduce
- Registered an app on Etsy's developer portal, confirmed Keystring and Shared Secret are correct against Etsy's "Your Apps" page.
- Completed the Etsy OAuth2 PKCE flow manually and obtained a valid refresh token.
- Set
ETSY_CLIENT_ID, ETSY_CLIENT_SECRET, and ETSY_REFRESH_TOKEN exactly as the connector's own setup instructions describe.
- Called any tool (e.g.
etsy_get_authenticated_user) — always fails with the 403 above.
Root cause (found in the Connector Details page)
Under "Authentication", the connector's own documentation states it sends:
x-api-key: ${ETSY_CLIENT_ID}
Etsy's API requires this header to contain both the Keystring and Shared Secret together, separated by a colon (keystring:sharedsecret), on every request. Since the Shared Secret is never included, Etsy rejects every call.
Expected behavior
The header should be built as:
x-api-key: ${ETSY_CLIENT_ID}:${ETSY_CLIENT_SECRET}
Additional context
Same Connector Details page also shows two other notices that may be related:
- "No authorization URL configured for this connector"
- Healthcheck failing on path "/" (404) — Etsy has no root handler; a working healthcheck endpoint would be
/openapi-ping.
Environment
- Using the hosted cloud.anythingmcp.com (free trial), not self-hosted
- Connector: Etsy Open API v3 (REST, Auth Type: OAUTH2)
Happy to provide screenshots if useful.
Steps to Reproduce
- Registered an app on Etsy's developer portal, confirmed Keystring and Shared Secret are correct against Etsy's "Your Apps" page.
- Completed the Etsy OAuth2 PKCE flow manually and obtained a valid refresh token.
- Set
ETSY_CLIENT_ID, ETSY_CLIENT_SECRET, and ETSY_REFRESH_TOKEN exactly as the connector's own setup instructions describe.
- Called any tool (e.g.
etsy_get_authenticated_user) — always fails with the 403 above.
Root cause (found in the Connector Details page)
Under "Authentication", the connector's own documentation states it sends:
x-api-key: ${ETSY_CLIENT_ID}
Etsy's API requires this header to contain both the Keystring and Shared Secret together, separated by a colon (keystring:sharedsecret), on every request. Since the Shared Secret is never included, Etsy rejects every call.
Expected Behavior
The header should be built as:
x-api-key: ${ETSY_CLIENT_ID}:${ETSY_CLIENT_SECRET}
### Actual Behavior
403 Forbidden
{"error": "Shared secret is required in x-api-key header"}
### Connector Type
REST
### Deployment Method
Docker Compose
### Version
Cloud
### Relevant Logs
```shell
Environment
No response
Description
Describe the bug
The built-in "Etsy Open API v3" connector fails on every request with:
Steps to reproduce
ETSY_CLIENT_ID,ETSY_CLIENT_SECRET, andETSY_REFRESH_TOKENexactly as the connector's own setup instructions describe.etsy_get_authenticated_user) — always fails with the 403 above.Root cause (found in the Connector Details page)
Under "Authentication", the connector's own documentation states it sends:
Etsy's API requires this header to contain both the Keystring and Shared Secret together, separated by a colon (
keystring:sharedsecret), on every request. Since the Shared Secret is never included, Etsy rejects every call.Expected behavior
The header should be built as:
Additional context
Same Connector Details page also shows two other notices that may be related:
/openapi-ping.Environment
Happy to provide screenshots if useful.
Steps to Reproduce
ETSY_CLIENT_ID,ETSY_CLIENT_SECRET, andETSY_REFRESH_TOKENexactly as the connector's own setup instructions describe.etsy_get_authenticated_user) — always fails with the 403 above.Root cause (found in the Connector Details page)
Under "Authentication", the connector's own documentation states it sends:
Etsy's API requires this header to contain both the Keystring and Shared Secret together, separated by a colon (
keystring:sharedsecret), on every request. Since the Shared Secret is never included, Etsy rejects every call.Expected Behavior
The header should be built as:
Environment
No response