Get highly-accurate keywords describing an image.
The SmartLens Image Tagging API analyzes your photos and gives you keywords to describe what's in them. The API accepts an HTTP POST request with a JSON body as its input and returns a list of tags along with their associated confidence scores.
API response example
{
"predictions": [
{
"classes": [
"retriever",
"golden retriever",
"animal",
"Labrador retriever",
"puppy",
"pup"
],
"scores": [
0.34893867,
0.33620498,
0.21479817,
0.089220725,
0.07183575,
0.023686454
]
}
]
}
The SmartLens Image Tagging API accepts JPEG
and
PNG
files as inputs, either as a file encoded in base64 or as a URL. Like our other APIs, SmartLens Image Tagging accepts one input per request. To tag multiple images,
you'll need to make multiple requests. To call the API, make a HTTP POST request with your API key submitted in the Authorization
header. Send your image input using the image
parameter in the request body. If you are tagging an image from a URL, your request body will like like:
Request body example
{
"image": "https://smartlens.ai/media-cdn/retriever_puppy.jpg"
}
If you are tagging an image encoded as base64, your requst body will look like:
Request body example
{
"image": "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"
}
Putting the request body and authorization header together, below is a complete HTTP request. As the server expects a standard JSON payload, we must add backslash escape characters around all quotation marks inside the request body.
cURL
curl -X POST "https://api.smartlens.ai/v1/models/tag/predict" \ -H "accept: application/json" \ -H "Authorization: MY-API-KEY" \ -H "Content-Type: application/json" \ -d "{ \"image\": \"MY-IMAGE\"}"
While you can always call our REST API directly, we've built client libraries to make it even easier to integrate SmartLens into your app. Our Python client library is now available, with many more coming soon. With the SmartLens Python libary -- unlike calling the SmartLens API with cURL -- you also have the option of specifying a path to your file. Otherwise, supply the image payload exactly like you would for a direct HTTP request to the API. See the Making requests section for URL and base64 examples.
Python
import smartlens
smartlens.api_key = "MY_API_KEY"
response = smartlens.runTags(
image = "MY-IMAGE (can be JPEG or PNG, submitted as a web URL, a path to a file, or as bytes encoded in base64)"
)
We've built an API playground to make it even easier to explore our APIs. Check it out at https://api.smartlens.ai
, which is also
the base URL for the SmartLens API.
Please refer to the sidebar menu for API-specific quickstarts and detailed schema information. If you have any questions or feedback, please reach out to us at [email protected]
.