---
title: "POST /api/admin/products/discover"
method: POST
path: "/api/admin/products/discover"
tags: ["Admin"]
---

# POST /api/admin/products/discover

`POST /api/admin/products/discover`

## Request

- Base URL: `https://www.revuo.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://www.revuo.ai/api/admin/products/discover`
- Auth: none declared

## Request body

- DiscoverProductRequest
  - `url` string, nullable, required

## Response `200`

OK

- DiscoverProductResponse
  - `product` Product, required
    - `id` string, nullable
    - `idCreated` string, date-time
    - `slug` string, nullable, required
    - `name` string, nullable, required
    - `tagline` string, nullable
    - `description` string, nullable
    - `websiteUrl` string, nullable, required
    - `logoUrl` string, nullable
    - `screenshotUrl` string, nullable
    - `foundedYear` integer, nullable
    - `companyName` string, nullable
    - `companyHq` string, nullable
    - `pricingModel` 'free' | 'freemium' | 'paid' | 'enterprise' | 'contactUs'
    - `pricingStartsAt` string, nullable
    - `categoryIds` string[], nullable
    - `status` 'draft' | 'published' | 'archived'
    - `claimedByVendorId` string, nullable
    - `claimedAt` string, date-time, nullable
    - `claimStatus` 'none' | 'pending' | 'approved'
    - `claimVerifiedVia` 'none' | 'domainMatch' | 'workEmailCode' | 'websiteToken' | 'manual'
    - `aiGeneratedAt` string, date-time, nullable
    - `day30AnalyticsEmailSentAt` string, date-time, nullable
    - `tier` 'free' | 'verified' | 'featured'
    - `tierAssignedAt` string, date-time, nullable
    - `stripeSubscriptionId` string, nullable
    - `tierGracePeriodEnd` string, date-time, nullable
    - `lastClaimVerificationAt` string, date-time, nullable
    - `websiteCheckFailures` string[], nullable
    - `genericityScore` number, double, nullable
    - `genericityScoredAt` string, date-time, nullable
    - `genericPhrases` string[], nullable
    - `backlinkVerified` boolean
    - `backlinkVerifiedAt` string, date-time, nullable
    - `ctaLabel` string, nullable
    - `ctaUrl` string, nullable
    - `badges` ProductBadge[], nullable
    - `aiFieldConfidence` object, nullable
    - `tldr` string, nullable
    - `ourTake` string, nullable
    - `prosAndCons` ProsAndCons
      - `pros` string[], nullable
      - `cons` string[], nullable
    - `knownLimitations` ProductLimitation[], nullable
      - `summary` string, nullable, required
      - `detail` string, nullable
      - `evidenceUrl` string, nullable, required
      - `source` 'userReview' | 'editorial' | 'capabilityGap' | 'externalSource'
      - `severity` 'minor' | 'notable' | 'significant'
      - `addedAt` string, date-time
    - `currentScore` number, double
    - `previousScore` number, double, nullable
    - `scoreHistory` ScoreHistoryEntry[], nullable
      - `date` string, date-time
      - `score` number, double
      - `breakdown` object, nullable
      - `methodologyVersion` string, nullable
    - `excludedFromRanking` boolean
    - `excludedFromRankingReason` string, nullable
    - `competitorProductIds` string[], nullable
    - `discoveredCompetitors` DiscoveredCompetitor[], nullable
      - `name` string, nullable, required
      - `url` string, nullable
      - `reason` string, nullable
      - `confidence` number, double
      - `matchedProductId` string, nullable
    - `isUnverified` boolean
    - `houseProduct` boolean
    - `claimEmailDomain` string, nullable
  - `confidenceScore` number, double
  - `fieldConfidence` object, nullable
  - `warnings` string[], nullable
  - `queueItemId` string, nullable

## Other responses

- `default`: Error (any 4xx/5xx status), as an RFC 9457 problem document.

---

[API](https://skmtc.dev/revuo/apis/revuo-web.md) · [All operations](https://skmtc.dev/revuo/apis/revuo-web/llms.txt) · [OpenAPI document](https://skmtc.dev/revuo/apis/revuo-web/revisions/3889a7c540d3?raw)
