SSpiderIQ
SSpiderIQ

Docs / api-reference/fuzziq-deduplication

FuzzIQ Deduplication

6 endpoints from the published OpenAPI import.

POST/api/v1/fuzziq/check

Check single record for duplicates

Check if a single record is a duplicate. Optionally add to canonical if unique.

Try it

Examples

cURL
curl -X POST 'https://spideriq.ai/api/v1/fuzziq/check' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "record": {
    "city": "Chicago",
    "company_name": "McDonald's",
    "country": "United States",
    "google_place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4",
    "phone": "+1-555-123-4567"
  },
  "record_type": "business",
  "add_to_canonical": true,
  "campaign_id": "string",
  "threshold": 0.5
}'
Python
import httpx

resp = httpx.post(
    "https://spideriq.ai/api/v1/fuzziq/check",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"record": {"city": "Chicago", "company_name": "McDonald's", "country": "United States", "google_place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4", "phone": "+1-555-123-4567"}, "record_type": "business", "add_to_canonical": true, "campaign_id": "string", "threshold": 0.5},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/fuzziq/check", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"record": {"city": "Chicago", "company_name": "McDonald's", "country": "United States", "google_place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4", "phone": "+1-555-123-4567"}, "record_type": "business", "add_to_canonical": true, "campaign_id": "string", "threshold": 0.5})
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"record": {"city": "Chicago", "company_name": "McDonald's", "country": "United States", "google_place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4", "phone": "+1-555-123-4567"}, "record_type": "business", "add_to_canonical": true, "campaign_id": "string", "threshold": 0.5}`)
	req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/fuzziq/check", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
POST/api/v1/fuzziq/check-batch

Check batch of records for duplicates

Check multiple records (up to 100) for duplicates in a single request.

Try it

Examples

cURL
curl -X POST 'https://spideriq.ai/api/v1/fuzziq/check-batch' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "add_to_canonical": true,
  "record_type": "business",
  "records": [
    {
      "company_name": "McDonald's Paris",
      "google_place_id": "ChIJ123456789",
      "phone": "+33-1-23-45-67-89"
    },
    {
      "company_name": "McDonald's Lyon",
      "google_place_id": "ChIJ987654321",
      "phone": "+33-4-56-78-90-12"
    }
  ],
  "source_worker": "spiderMaps"
}'
Python
import httpx

resp = httpx.post(
    "https://spideriq.ai/api/v1/fuzziq/check-batch",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"add_to_canonical": true, "record_type": "business", "records": [{"company_name": "McDonald's Paris", "google_place_id": "ChIJ123456789", "phone": "+33-1-23-45-67-89"}, {"company_name": "McDonald's Lyon", "google_place_id": "ChIJ987654321", "phone": "+33-4-56-78-90-12"}], "source_worker": "spiderMaps"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/fuzziq/check-batch", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"add_to_canonical": true, "record_type": "business", "records": [{"company_name": "McDonald's Paris", "google_place_id": "ChIJ123456789", "phone": "+33-1-23-45-67-89"}, {"company_name": "McDonald's Lyon", "google_place_id": "ChIJ987654321", "phone": "+33-4-56-78-90-12"}], "source_worker": "spiderMaps"})
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"add_to_canonical": true, "record_type": "business", "records": [{"company_name": "McDonald's Paris", "google_place_id": "ChIJ123456789", "phone": "+33-1-23-45-67-89"}, {"company_name": "McDonald's Lyon", "google_place_id": "ChIJ987654321", "phone": "+33-4-56-78-90-12"}], "source_worker": "spiderMaps"}`)
	req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/fuzziq/check-batch", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
GET/api/v1/fuzziq/canonical

List canonical records

List canonical records for the authenticated client with optional filtering.

Parameters

NameInTypeRequiredDescription
record_typequeryanyfalse
campaign_idqueryanyfalse
limitqueryintegerfalse
offsetqueryintegerfalse
Try it
Query

Examples

cURL
curl -X GET 'https://spideriq.ai/api/v1/fuzziq/canonical' \
  -H 'Authorization: Bearer <token>'
Python
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/v1/fuzziq/canonical",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/fuzziq/canonical", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/fuzziq/canonical", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
POST/api/v1/fuzziq/canonical

Add record to canonical

Manually add a record to the canonical database.

Try it

Examples

cURL
curl -X POST 'https://spideriq.ai/api/v1/fuzziq/canonical' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "record": {
    "city": "Chicago",
    "company_name": "McDonald's",
    "country": "United States",
    "google_place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4",
    "phone": "+1-555-123-4567"
  },
  "record_type": "business",
  "source": "manual"
}'
Python
import httpx

resp = httpx.post(
    "https://spideriq.ai/api/v1/fuzziq/canonical",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"record": {"city": "Chicago", "company_name": "McDonald's", "country": "United States", "google_place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4", "phone": "+1-555-123-4567"}, "record_type": "business", "source": "manual"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/fuzziq/canonical", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"record": {"city": "Chicago", "company_name": "McDonald's", "country": "United States", "google_place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4", "phone": "+1-555-123-4567"}, "record_type": "business", "source": "manual"})
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"record": {"city": "Chicago", "company_name": "McDonald's", "country": "United States", "google_place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4", "phone": "+1-555-123-4567"}, "record_type": "business", "source": "manual"}`)
	req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/fuzziq/canonical", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
201Successful Response
422Validation Error
POST/api/v1/fuzziq/canonical/import

Bulk import records

Import multiple records to the canonical database (up to 1000).

Try it

Examples

cURL
curl -X POST 'https://spideriq.ai/api/v1/fuzziq/canonical/import' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "records": [
    {
      "city": "Chicago",
      "company_name": "McDonald's",
      "country": "United States",
      "google_place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4",
      "phone": "+1-555-123-4567"
    }
  ],
  "record_type": "business",
  "skip_duplicates": true
}'
Python
import httpx

resp = httpx.post(
    "https://spideriq.ai/api/v1/fuzziq/canonical/import",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"records": [{"city": "Chicago", "company_name": "McDonald's", "country": "United States", "google_place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4", "phone": "+1-555-123-4567"}], "record_type": "business", "skip_duplicates": true},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/fuzziq/canonical/import", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"records": [{"city": "Chicago", "company_name": "McDonald's", "country": "United States", "google_place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4", "phone": "+1-555-123-4567"}], "record_type": "business", "skip_duplicates": true})
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"records": [{"city": "Chicago", "company_name": "McDonald's", "country": "United States", "google_place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4", "phone": "+1-555-123-4567"}], "record_type": "business", "skip_duplicates": true}`)
	req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/fuzziq/canonical/import", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
GET/api/v1/fuzziq/canonical/stats

Get FuzzIQ statistics

Get deduplication statistics for the authenticated client.

Try it

Examples

cURL
curl -X GET 'https://spideriq.ai/api/v1/fuzziq/canonical/stats' \
  -H 'Authorization: Bearer <token>'
Python
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/v1/fuzziq/canonical/stats",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/fuzziq/canonical/stats", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/fuzziq/canonical/stats", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response