What completeness means
_completeness is a number from 0 to 1 on a structured result. It measures how many of the fields an endpoint looks for were found on the page. It does not measure whether those values are correct.
A missing field usually means the site does not publish it. A bakery homepage with no street address scores lower than one with an address, even when every value we return is right.
How to read "N of M fields found"
The playground shows completeness as a count, for example 7 of 7 fields found or 4 of 9 fields found, with the missing field names listed after it. The count comes from the same field list the API scores. The API response itself keeps the 0 to 1 number in _completeness, so code can compare results.
On endpoints that weight some fields more than others (scrape and extract below), two results with the same count can have different scores.
Scrape and extract (page listing)
Applies to listing._completeness on /v1/scrape (also metadata.completeness) and to data._completeness on /v1/extract without a schema.
| Group | Fields | Weight |
|---|---|---|
| Core | name, phone, address, city, state | 0.7 |
| Bonus | rating, price_range, description, photo_urls | 0.3 |
_completeness = (core fields found / 5) × 0.7 + (bonus fields found / 4) × 0.3A core field counts as found when it has a non-empty value. A bonus field counts when it is present at all (photo_urls needs at least one URL). M is 9.
The API scores whatever listing it read, including pattern matches on an article. The playground shows the count only when the listing came from JSON-LD or includes an address, city or state. On an article or a docs page it shows no completeness row.
Enrich
Applies to _completeness on /v1/enrich and /v1/enrich/website. Eight fields, equal weight:
| Field | Found when |
|---|---|
emails | at least one email |
phones | at least one phone number |
social | at least one social profile |
tech_stack | at least one detected technology |
team | at least one team member |
homepage.title | present |
homepage.description | present |
homepage.hero_image | present |
_completeness = fields found / 8Brand
Applies to _completeness on /v1/brand. Seven signals: logo, colors, fonts, socials, industry, a usable name and a description of at least 8 characters.
_completeness = min(1, 0.35 + 0.1 × signals found)The 0.35 starting value means brand never reports 0. Two caps apply:
- Only a favicon was found: capped at 0.35 and
_reasonisfavicon_only. - A thin profile (no usable name, or a name with no description of 12+ characters, logo, social link or industry): capped at 0.5 and
_reasonisthin_brand.
What completeness is not
- Accuracy. A found phone number can still be out of date. Check
_provenanceto see which page each value came from, and_freshnessfor when it was read. - A match score.
/v1/resolvereturns_match_score, which says how well a stored company record matches what you sent. See Resolve. - Present on every call. Search, map, screenshot and parse results carry no completeness score.