spacer
  • Factual API requests
  • Request limits (throttling)
  • API Keys and OAuth
  • Factual API responses
  • Apigee console
  • Common error messages
  • Crosswalk namespaces
  • Places category list
  • Places schema

Places API - Resolve

Skip to end of metadata
  • Page restrictions apply
  • Added by Bradley, last edited by Bradley on Dec 27, 2011  (view change)
Go to start of metadata

Introduction

Resolve is an entity resolution API that makes partial records complete, matches one entity against another, and assists in de-duping and normalizing datasets.

The idea behind Resolve is very straightforward: you tell us what you know about an entity, and we tell you everything Factual knows about it. Resolve accepts fragments of an entity and returns the matching entity in its entirety. This API is designed to do a number of things that make data engineering tasks easier:

  • enrich records by populating missing attributes, including category, lat/long, and address
  • de-dupe your own place database
  • convert multiple daily deal and coupon feeds into a single normalized, georeferenced feed
  • identify entities unequivocally by their attributes

Try Resolve with our interactive demo.

spacer

ย 

How Does Resolve Differ from Search?

On the surface Resolve may seem very similar to Search, but addresses very different use case: it's all about entity resolution and disambiguation:

  • Search is designed to return multiple items for subsequent disambiguation (usually when a person selects a blue link in the result set), while Resolve performs the disambiguation automatically. We've designed Factual Resolve for machine-to-machine communication, allowing your service can talk to ours continuously, helping to normalize and enrich your data, without the need for ongoing human intervention.
  • Search is promiscuous: it wants to return the best possible results despite the quality of a match, as it knows a human is on the other end to disambiguate or re-query. Resolve looks at an absolute rather than the relative quality of the result set, based on your structured input parameters
  • Search is the 'S' in SEO: search results are traditionally biased by a metric other than matching attribute values; Resolve performs a like-for-like comparison against data entities without external bias

In Beta

We have a few partners helping us test Resolve in production, but this is a beta release with all the usual caveats: we'll be tweaking the service and weightings and addressing an increasing number edge cases.

Resolve requires a Factual V3 key. New users and those on V2 should request a key from us here

Debug Dashboard

You can try Resolve with a graphical interface here.

Basic Syntax

Pass what you know to Factual Resolve via a GET request, with the attributes included as JSON-encoded key/value pairs.

Examples

We've remove URL encoding from these examples for clarity, but remember to URL encode the entirety of your JSON string before calling.

Find the entity named "McDonald's" with an address combination

Run this example in Apigee

Find the entity named "McDonald's" with only a specified lat/lng

Run this example in Apigee

Parameters

Required Parameters

Parameter Name

Description

Example

KEY

Your API Key. Factual API key documentation is here. The KEY parameter name and value are both case-sensitive

KEY=Q3iBjOES4h1mZcNCZyBmQFcYREdjylIucvB3r2oI

values

A JSON hash of key value pairs representing the data that will be resolved against.

values={"name":"McDonalds","address":"10451 Santa Monica Blvd","locality":"Los Angeles","region":"CA"}
values={"name":"McDonalds","latitude":34.05671,"longitude":-118.42586}

We accept any Global Local parameters in most combinations; some combinations of parameters will be encountered more frequently than others, and have therefore consumed the respective proportion of our beta development efforts.

Resolve is designed to work with whatever you throw at it, but the more parameters you provide, the better we can resolve your attributes to an entity. Give us what you got!

Optional Parameters

There are no optional parameters for the Resolve API call.

Responses

Successful Responses

The resolve API response object is similar to the read API. The difference is that any returned entities will have the two specific attributes added: resolved and similarity. These attributes are explained below.

Response Components

object

description

version

Version of the API that generated this response

response

Will return the number of rows in the included data packet, the data, and (if requested) the _ total number of rows_ conforming to the filters specified by this request.

response.data

The place(s) that match your request.

response.data.resolved

true if Factual believes this is the exact entity with no ambiguity. False if it is a very good candidiate (high similarity) but cannot be adequately disambiguated from another very good candidate.

response.data.similarity

A value between 0.0 (low) and 1.0 (high) that represents how similar the result is to what was requested.

response.included_rows

The number of rows contained in the data array. In other words, the length of the data array.

Successful Call, Resolved

In this example, Resolve has determined that a single, suitable candidate meets the criteria you passed to the platform with the flag resolved=true. The resolved entity is always provided first (we also return other candidates for debugging purposes, set with the flag resolved=false):

Successful Call, Unresolved

In this example, Resolve has found a number of candidates that may match your inputs, but has been unable to identify an unequivocal match. In these instances we return the top candidates we found with resolved=false. These entities are returned for debugging purposes, and allows you and Factual to determine whether there may be an error in the resolution algo, the data, or the input parameters.

Successful Call, Unresolved, No Candidates

In this example, Resolve has found no candidates it can even match against.

Error Responses

Resolve Error Messages and Causes

In addition to general Factual API errors, the following errors may be returned in response to GET requests:

HTTP Error code

Factual Error Type

Message

Cause

400

InvalidJsonArgument

Parameter 'values' contains an error in it's JSON syntax. For documentation, please see: developer.factual.com

values parameter is expressed using invalid JSON

gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.