eBay OAuth (Connect eBay Account) for full trust scores #2
Labels
No labels
accessibility
backlog
bug
cloud
enhancement
feature
infra
paid-tier
ux
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Circuit-Forge/snipe#2
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
eBay Browse API returns only 3 seller fields (
username,feedbackScore,feedbackPercentage).registrationDateandfeedbackByCategoryrequire a User Access Token (OAuth Authorization Code flow) via Trading APIGetUser. App-level Bearer tokens are rejected.Current workaround: Playwright BTF scraping + Shopping API (rate-limited). Both are slow or quota-constrained.
Implementation
All 6 tasks shipped as of 2026-04-17.
What was built
cf-core:
circuitforge_core/platforms/ebay/oauth.pyEbayUserTokenManager— Authorization Code flow:get_authorization_url(),exchange_code(),refresh()EbayUserTokensdataclassSnipe API (
api/main.py)GET /api/ebay/connect— returns eBay auth URL (paid tier gate)GET /api/ebay/callback— exchanges code, stores tokens, redirects to/settings?ebay_connected=1GET /api/ebay/status— returns{connected, oauth_available, access_token_expired, scopes}DELETE /api/ebay/disconnect— removes stored tokenseBay adapter (
app/platforms/ebay/adapter.py)enrich_seller_trading_api(username, user_access_token)— XML Trading APIGetUsercall, parsesRegistrationDate, updatesaccount_age_daysin storeSearch flow integration
_try_trading_api_enrichment()runs synchronously in the search handler before BTF background threadskip_seller_idsSettings UI (
web/src/views/SettingsView.vue)?ebay_connected=1/?ebay_error=redirect params from OAuth callback.env.example— step-by-stepEBAY_RUNAME+EBAY_OAUTH_REDIRECT_URIsetup instructionsPrerequisites for activation
/api/ebay/callbackEBAY_RUNAMEandEBAY_OAUTH_REDIRECT_URIin.env(see.env.example)