Artificial Intelligence
Imagga
API integration
Ship Artificial Intelligence features without building the integration. Full Imagga API access via Proxy and 50+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Talk to usUse Cases
Why integrate with Imagga
Common scenarios for SaaS companies building Imagga integrations for their customers.
Offer AI auto-tagging to your DAM or CMS users
Let your customers connect Imagga and automatically enrich every uploaded asset with semantic tags, categories, and dominant colors. Eliminates manual metadata entry and makes libraries instantly searchable.
Ship content moderation for UGC platforms
Give your users a safety layer that screens uploads for adult content and extracts on-image text via OCR. Ideal for social, dating, marketplace, and community SaaS products that need to enforce policies at scale.
Power visual search in e-commerce storefronts
Allow your e-commerce or marketplace customers to index their catalog and surface visually similar products from an uploaded photo. Turns inspiration images into conversion opportunities.
Automate responsive image assets for publishers
Give content teams smart cropping across arbitrary aspect ratios and one-click background removal. Editors upload one hero image and your product delivers perfect thumbnails for every breakpoint.
Enable face-based photo galleries for events and HR tech
Let customers run face detection, grouping, and similarity against large photo batches so attendees or employees can find themselves across thousands of images with a single selfie.
What You Can Build
Ship these features with Truto + Imagga
Concrete product features your team can ship faster by leveraging Truto’s Imagga integration instead of building from scratch.
Zero-touch asset enrichment pipeline
On every upload, call Imagga tagging, structured tagging, categories, and color extraction to persist searchable metadata against each asset in your database.
Moderation gate for user uploads
Quarantine new uploads and run them through adult content moderation and text moderation OCR, auto-rejecting or escalating assets that exceed configurable confidence thresholds.
Visual similarity search for catalogs
Index collections using similar images categories and query them with a reference image to return ranked, visually similar results inside your product's search UI.
Multi-ratio smart thumbnail generator
Call smart cropping for 1:1, 4:3, 16:9, and custom ratios to automatically produce subject-aware thumbnails, plus a one-click background removal action for product shots.
Face grouping and selfie-match galleries
Submit face detection and face grouping jobs for photo batches, poll the ticket until complete, then use face similarity to match a user's selfie against the clustered results.
Palette-based filtering and color search
Extract image, background, and foreground colors on ingest so users can filter their asset libraries by dominant palette or specific hex codes.
SuperAI
Imagga AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_imagga_usage
Get Imagga subscription usage statistics for the current billing period. Returns: billing_period_start, billing_period_end, monthly_limit, monthly_requests, monthly_processed, weekly_requests, weekly_processed, daily_requests, daily_processed, daily_for, total_requests, total_processed, last_usage, daily, weekly, monthly, concurrency.
create_a_imagga_upload
Upload an image (or supported video) file to imagga and receive an upload_id that can be passed as image_upload_id to analysis endpoints such as tagging, categorization, and cropping. Returns: upload_id, score. Requires image (multipart file) or image_base64.
get_single_imagga_upload_by_id
Check the status of an uploaded file in imagga and retrieve its content id. Returns: upload_id. Required: id. Uploaded files expire automatically after the retention window.
get_single_imagga_ticket_by_id
Get the status and result of an Imagga asynchronous job (face grouping, index training, batch processing) by its ticket id. Returns: id, is_final, result.g. face grouping clusters). Required: id. Supports all=1 to retrieve intermediate results; tickets are retained for 24 hours after the job finishes and are deleted once the final result is retrieved.
create_a_imagga_tag
Analyze an uploaded image with Imagga's Image Tagging API (v2) and return a flat list of descriptive tags. Returns: tags.en). Provide exactly one image input: image (multipart file) or image_base64.
get_single_imagga_tag_by_id
Get Imagga's Image Tagging API (v2) tags for previously uploaded images by passing the image upload id (comma-separate ids to batch) in the path. Returns: tags.en). Required: id.
list_all_imagga_tags
Analyze an image by URL or upload id with Imagga's Image Tagging API (v2) and return a flat list of descriptive tags with confidence scores. Returns: tags.en). Provide exactly one image input: image_url or image_upload_id.
create_a_imagga_structured_tag
Analyze an image with Imagga's Structured Image Tagging API (v3) via binary upload or base64 content. Returns: caption, metadata, tags. Requires exactly one of image or image_base64.
get_single_imagga_structured_tag_by_id
Get structured semantic tags for a previously uploaded image by id with Imagga's Structured Image Tagging API (v3). Returns: caption, metadata, tags. Required: id.
list_all_imagga_structured_tags
Analyze an image by URL or upload id with Imagga's Structured Image Tagging API (v3). Returns: caption, metadata, tags. Requires exactly one of image_url or image_upload_id.
create_a_imagga_category
Categorize an image with an Imagga categorizer by submitting a multipart image upload or a base64-encoded image. Returns: categories.en labels. Required: categorizer_id, plus the image itself via image or image_base64.
get_single_imagga_category_by_id
Get categorization results for a specific image under an Imagga categorizer by id (comma-separated upload ids are supported). Returns: categories.en labels. Required: id and categorizer_id.
list_all_imagga_categories
List the categories defined for an Imagga categorizer (e.g. personal_photos, nude, general_v3). Returns: categories.en labels. Required: categorizer_id.
create_a_imagga_adult_content_moderation
Classify an image for adult or explicit content in Imagga by uploading a binary image or base64 content. Returns: categories, tags. Requires an image input: image or image_base64.
get_single_imagga_adult_content_moderation_by_id
Get adult content moderation results for a previously uploaded image by id (upload id from POST /v2/uploads; comma-separated ids allowed). Returns: categories, tags. Required: id.
list_all_imagga_adult_content_moderation
Classify an image for adult or explicit content in Imagga by image URL or uploaded image id. Returns: categories, tags. Provide one of image_url or image_upload_id.
create_a_imagga_text_moderation
Moderate text in an image uploaded directly to Imagga: OCR extracts visible text and classifies it into sensitive and PII-related categories. Returns: categories. Requires either image (binary file) or image_base64.
get_single_imagga_text_moderation_by_id
Get OCR text moderation results from Imagga for a previously uploaded image, accepting comma-separated upload ids. Returns: categories. Required: id.
list_all_imagga_text_moderation
Moderate text visible in an image with Imagga's Text Moderation API: OCR extracts the text from the image at image_url and classifies it into sensitive and PII-related categories. Returns: categories. Required: image_url.
create_a_imagga_faces_detection
Detect human faces in an image via imagga using a binary upload or base64 payload. Returns a faces array where each detected face includes confidence, bounding-box coordinates, attributes, landmarks, and a face_id when requested. Requires an image input: image (multipart binary upload) or image_base64.
get_single_imagga_faces_detection_by_id
Get face detections in imagga for previously uploaded images by id. Returns a faces array where each detected face includes confidence, bounding-box coordinates, attributes, landmarks, and a face_id when requested. Required: id (one or more comma-separated upload ids).
list_all_imagga_faces_detections
Detect human faces in an image in imagga by image URL or upload id. Returns a faces array where each detected face includes confidence, bounding-box coordinates, attributes, landmarks, and a face_id when requested. Requires one image input: image_url or image_upload_id.
create_a_imagga_faces_similarity
Create a face similarity comparison in Imagga by sending images for face comparison. Returns: score. Provide the image input as a multipart upload (image) or base64-encoded content (image_base64).
get_single_imagga_faces_similarity_by_id
Get a face similarity result by id in Imagga using the /id variant of the Face Similarity API, where id holds the comma-separated upload ids to compare. Returns: score. Required: id.
list_all_imagga_faces_similarities
Compare faces in two images with the Imagga Face Similarity API. Returns: score.
create_a_imagga_faces_categorizer
Categorize the faces in an image with an Imagga face categorizer (e.g. gender, ethnicity_v2), submitting the image as a multipart upload (image) or base64-encoded content (image_base64). Returns the endpoint-specific face categorization result object. Required: face_categorizer_id.
get_single_imagga_faces_categorizer_by_id
Get the face categorization result for a specific image from an Imagga face categorizer (e.g. gender, ethnicity_v2), identified by its image id. Returns the endpoint-specific face categorization result object. Required: id and face_categorizer_id.
list_all_imagga_faces_categorizers
List the possible face categories for an Imagga face categorizer (e.g. gender or ethnicity_v2). Returns the supported categories under categories. Required: face_categorizer_id.
create_a_imagga_faces_assignment
Create a face assignment in Imagga, associating a face_id (generated by the faces/detections endpoint) with an entry_id. Returns the created assignment result payload with endpoint-specific fields not enumerated in the Imagga docs. Required: face_id, entry_id.
delete_a_imagga_faces_assignment_by_id
Delete an Imagga face assignment by its id (the face_id of the assignment). Returns an empty 204 response on success. Required: id.
list_all_imagga_faces_assignments
List Imagga face assignments for a given face_id, or pass all=1 to retrieve all assignments. Returns assignment records with face_id, entry_id, and entry_title.
create_a_imagga_faces_grouping
Create an asynchronous face grouping job in Imagga: submits a set of faces (identified by their face_id) to be grouped into visually similar clusters. Returns: ticket_id, score.
create_a_imagga_text
Create an OCR text extraction in Imagga by submitting an image directly — a multipart image file or base64-encoded content. Returns the detected text items, each with its recognized data and bounding-box coordinates (xmin, ymin, xmax, ymax, width, height). Provide image or image_base64 (one is required). Experimental endpoint.
get_single_imagga_text_by_id
Get Imagga OCR text recognition results for previously uploaded images by id — the upload_id returned by POST /v2/uploads; comma-separated ids are supported. Returns the text array of detected items, each with data and bounding-box coordinates (xmin, ymin, xmax, ymax, width, height). Required: id. Experimental endpoint.
list_all_imagga_text
List Imagga OCR text recognition results for an image, detecting readable text and the location of each text region. Returns the text array of detected items, each with data and bounding-box coordinates (xmin, ymin, xmax, ymax, width, height). Required: image_url. Experimental endpoint.
create_a_imagga_similar_images_category
Index images into a category-based similarity index in Imagga (Similar Images Search API). Returns a ticket_id for the asynchronous indexing job — query the /tickets endpoint for the final result. Required: categorizer_id, index_id. Supply images via image_url or image_upload_id; general_v3 is the recommended categorizer.
list_all_imagga_similar_images_categories
Search a trained category-based similarity index in Imagga with an unlabeled image to find visually and semantically similar images. Returns: count, images. Required: categorizer_id, index_id. Supply the query image via image_url or image_upload_id.
imagga_similar_images_categories_bulk_delete
Delete an entire category-based similarity index or a single entry from it in Imagga. Returns an empty 204 response on success. Required: categorizer_id, index_id. Omit entry_id to delete the entire index.
create_a_imagga_color
Extract the dominant colors of an image in Imagga from a binary multipart upload or base64-encoded image content. Returns the colors object including image_colors, background_colors, foreground_colors, color_variance, color_percent_threshold, and object_percentage. Requires image or image_base64.
get_single_imagga_color_by_id
Extract the dominant colors of a previously uploaded image in Imagga by passing its upload id. Returns the colors object including image_colors, background_colors, foreground_colors, color_variance, color_percent_threshold, and object_percentage. Required: id (comma-separated upload ids are accepted).
list_all_imagga_colors
Extract the dominant colors of an image with the Imagga Color Extraction API, given an image URL or a previously uploaded image id. Returns the colors object including image_colors, background_colors, foreground_colors, color_variance, color_percent_threshold, and object_percentage. Requires image_url (or image_upload_id as an alternative).
create_a_imagga_cropping
Create smart cropping coordinates for an imagga image supplied as a multipart file upload or base64 content. Returns the croppings array of crop rectangles with x1, x2, y1, y2 coordinates and target_width/target_height. Requires image (multipart file) or image_base64.
get_single_imagga_cropping_by_id
Get smart cropping coordinates for a previously uploaded imagga image by id (the upload id from POST /v2/uploads). Returns the croppings array of crop rectangles with x1, x2, y1, y2 coordinates and target_width/target_height. Required: id. Comma-separated upload ids are supported.
list_all_imagga_croppings
List smart cropping coordinates for an imagga image, returning the most visually important crop region per requested resolution. Returns the croppings array of crop rectangles with x1, x2, y1, y2 coordinates and target_width/target_height. Requires image_url or image_upload_id.
create_a_imagga_smart_cropping
Create structured crop boxes for an uploaded image in imagga by sending a binary image file or base64-encoded content. Returns: croppings, subject, reason, metadata. Requires either image or image_base64 (multipart/form-data).
get_single_imagga_smart_cropping_by_id
Get structured smart-cropping results for an image in imagga by id. Returns: croppings, subject, reason, metadata. Required: id.
list_all_imagga_smart_croppings
List structured crop boxes for an image in imagga by analyzing a public image URL or an uploaded image id. Returns: croppings, subject, reason, metadata. Requires either image_url or image_upload_id.
create_a_imagga_remove_background
Remove the background of an image in Imagga and get the subject cut-out. Provide either image (multipart file upload) or image_base64 (base64-encoded content). Returns a binary PNG image (not JSON), transparent by default.
get_single_imagga_remove_background_by_id
Get the background-removed subject cut-out for previously uploaded Imagga images by id; comma-separated upload ids (from POST /v2/uploads) are accepted. Returns a binary PNG image (not JSON). Required: id.
list_all_imagga_remove_background
Remove the background of an image in Imagga and get the subject cut-out. Supply image_url (direct image URL) or image_upload_id (upload ID from the Imagga uploads endpoint). Returns a binary PNG image (not JSON), transparent by default.
Why Truto
Why use Truto’s MCP server for Imagga
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 800+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with Imagga in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Imagga account
Use Truto’s frontend SDK to connect your customer’s Imagga account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Imagga
Truto’s Proxy API is a 1-to-1 mapping of the Imagga API. You call us, we call Imagga, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Imagga’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Imagga on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How does authentication to Imagga work through Truto?
Imagga uses API key authentication (Basic auth with an API key and secret from the Imagga dashboard). Your end users provide their credentials in your Truto-powered connect flow, and Truto securely stores and injects them on every request.
Which Imagga operations are supported today?
Truto exposes tools for uploads, tagging, structured tagging, categories, adult and text moderation, face detection/similarity/categorization/assignment/grouping, text OCR, similar images categories, color extraction, cropping, smart cropping, background removal, usage reporting, and ticket polling for async jobs.
How do we handle Imagga's asynchronous jobs?
Long-running operations such as faces grouping and similar images indexing return a ticket ID. Use get_single_imagga_ticket_by_id to poll status until the job is final, then fetch results from the corresponding resource endpoint.
Can we send images by URL or do we have to upload binaries?
Both patterns are supported. You can pass a public image URL directly to analysis endpoints, or use create_a_imagga_upload to send binary content first and reference the returned upload ID in subsequent calls.
How are rate limits and usage tracked?
Imagga enforces plan-based monthly request quotas and concurrency limits per account. You can call list_all_imagga_usage to retrieve the connected account's consumption and surface it in your product's admin UI.
Does each of our customers need their own Imagga account?
Yes. Since end users connect their own Imagga API key through Truto, usage, billing, and quotas stay on their account — which is the standard pattern for offering Imagga as a native integration in a multi-tenant SaaS.
Imagga
Get Imagga integrated into your app
Our team understands what it takes to make a Imagga integration successful. A short, crisp 30 minute call with folks who understand the problem.