curl -X POST "https://api.signa.so/v1/trademarks/search/image" \
-H "Authorization: Bearer $SIGNA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image_url": "https://example.com/logo.png",
"filters": { "offices": ["US", "EM"], "nice_classes": [9, 42] },
"limit": 20
}'
curl -X POST "https://api.signa.so/v1/trademarks/search/image" \
-H "Authorization: Bearer $SIGNA_API_KEY" \
-F "image=@logo.png" \
-F 'filters={"offices": ["US", "EM"]}' \
-F "limit=20"
{
"object": "list",
"data": [
{
"object": "image_search_hit",
"score": 0.94,
"band": "strong",
"signals": {
"visual": { "score": 0.94, "band": "strong" },
"logo_text": null,
"exact_dup": { "checksum_match": false, "phash_distance": null },
"vienna_overlap": null
},
"thumbnail_url": "/v1/trademarks/image-thumbnails/img_abc123",
"trademark": {
"id": "tm_abc123",
"mark_text": "ACME",
"mark_feature_type": "figurative",
"office_code": "US",
"status": { "primary": "active", "stage": "registered" }
}
}
],
"has_more": false,
"pagination": { "cursor": null, "total_count": 1, "total_count_approximate": false },
"request_id": "req_xyz"
}
Search
Search by Image
Find trademarks whose logos look like an image
POST
/
v1
/
trademarks
/
search
/
image
curl -X POST "https://api.signa.so/v1/trademarks/search/image" \
-H "Authorization: Bearer $SIGNA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image_url": "https://example.com/logo.png",
"filters": { "offices": ["US", "EM"], "nice_classes": [9, 42] },
"limit": 20
}'
curl -X POST "https://api.signa.so/v1/trademarks/search/image" \
-H "Authorization: Bearer $SIGNA_API_KEY" \
-F "image=@logo.png" \
-F 'filters={"offices": ["US", "EM"]}' \
-F "limit=20"
{
"object": "list",
"data": [
{
"object": "image_search_hit",
"score": 0.94,
"band": "strong",
"signals": {
"visual": { "score": 0.94, "band": "strong" },
"logo_text": null,
"exact_dup": { "checksum_match": false, "phash_distance": null },
"vienna_overlap": null
},
"thumbnail_url": "/v1/trademarks/image-thumbnails/img_abc123",
"trademark": {
"id": "tm_abc123",
"mark_text": "ACME",
"mark_feature_type": "figurative",
"office_code": "US",
"status": { "primary": "active", "stage": "registered" }
}
}
],
"has_more": false,
"pagination": { "cursor": null, "total_count": 1, "total_count_approximate": false },
"request_id": "req_xyz"
}
Credits: 100 per request. Planned price; not currently charged.
Send a logo and get back the trademarks whose images look most like it, best match first. Use it alongside Search Trademarks to catch figurative marks that text search can’t.
Alpha. Image search is available to early-access partners only, and its request and response can still change. Email support@signa.so to join the early access list.
The image
Send exactly one of these:- An upload:
multipart/form-datawith the file in animagepart. PNG, JPEG, WebP, GIF, BMP or TIFF, up to 8 MB. SVG isn’t supported. - A URL:
image_url, anhttpslink to the image. - An existing logo:
media_id, themed_...ID of an image already in Signa, such as a mark’s logo from Retrieve Trademark.
string
https URL of the image.string
ID of an image already in Signa (
med_...).object
Part of the image to compare, as fractions of its width and height:
{ "x": 0, "y": 0, "w": 0.5, "h": 0.5 } compares the top-left quarter.Filters
By default, only live marks are searched. Put filters underfilters:
string[]
Offices, such as
["US", "EM"].string[]
Territories the mark protects.
FR also matches EU trade marks, as in Search Trademarks. Set territory_match: "direct" at the top level to match only the exact territory.integer[]
Nice classes, 1 to 45.
string
default:"live"
all to include dead marks.More filters
More filters
| Filter | Keeps marks |
|---|---|
statuses | With these statuses |
feature_types | Of these mark types, such as figurative |
vienna_codes | With these Vienna figurative codes |
design_code_keys | With these design codes |
Results
integer
default:"20"
Number of results, from 1 to 100. Image search returns one page of the best matches, with no further pages.
string[]
default:"[\"visual\", \"logo_text\", \"exact_dup\"]"
Which comparisons to run and report:
visual (how the images look), logo_text (the text in the logo), exact_dup (the same image file), and vienna_overlap (shared Vienna figurative codes).Response
Each result indata is a match:
number
Visual similarity from 0 to 1, for ordering.
string
How close the match is:
identical, strong, moderate or weak.object
What each channel found. A channel that didn’t run or found nothing is
null.string | null
A small preview of the matched image.
object
The matched trademark, with the same fields as a Search Trademarks result.
curl -X POST "https://api.signa.so/v1/trademarks/search/image" \
-H "Authorization: Bearer $SIGNA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image_url": "https://example.com/logo.png",
"filters": { "offices": ["US", "EM"], "nice_classes": [9, 42] },
"limit": 20
}'
curl -X POST "https://api.signa.so/v1/trademarks/search/image" \
-H "Authorization: Bearer $SIGNA_API_KEY" \
-F "image=@logo.png" \
-F 'filters={"offices": ["US", "EM"]}' \
-F "limit=20"
{
"object": "list",
"data": [
{
"object": "image_search_hit",
"score": 0.94,
"band": "strong",
"signals": {
"visual": { "score": 0.94, "band": "strong" },
"logo_text": null,
"exact_dup": { "checksum_match": false, "phash_distance": null },
"vienna_overlap": null
},
"thumbnail_url": "/v1/trademarks/image-thumbnails/img_abc123",
"trademark": {
"id": "tm_abc123",
"mark_text": "ACME",
"mark_feature_type": "figurative",
"office_code": "US",
"status": { "primary": "active", "stage": "registered" }
}
}
],
"has_more": false,
"pagination": { "cursor": null, "total_count": 1, "total_count_approximate": false },
"request_id": "req_xyz"
}