Skip to main content

Imagga

Imagga is a cloud-based image recognition and AI-powered visual analysis platform that enables developers and businesses to automatically analyze, tag, categorize, and moderate images at scale. Using advanced machine learning models, Imagga's REST API delivers capabilities including automatic image tagging (identifying objects, scenes, and concepts with confidence scores), image categorization into custom or predefined taxonomies, face detection and recognition, color extraction, content moderation, and visual search. The generic tagging model supports more than 3,000 pre-defined tags and can be further trained to recognize custom concepts specific to a business's domain. Imagga's API integrates into end-to-end visual intelligence pipelines, making it well-suited for e-commerce product enrichment, media asset management, content moderation workflows, and any application requiring automated visual understanding.

Imagga icon

Power end-to-end data operations for your Imagga API with Nexla. Our bi-directional Imagga connector is purpose-built for Imagga, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Imagga or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Imagga workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

To connect Nexla to the Imagga API, you will need an Imagga account and an API key/secret pair. Imagga authenticates all API requests using HTTP Basic Authentication with your API key as the username and your API secret as the password.

Create an Imagga Account and Obtain API Credentials

  1. Navigate to imagga.com and click Sign Up to create a new account, or click Log In if you already have an account.

  2. After signing in, navigate to your Dashboard by clicking your account name or profile icon in the upper right corner of the page.

  3. On the Dashboard, locate the API Credentials section. Your API Key and API Secret are displayed here. These two values are required to authenticate all requests to the Imagga API.

    Your API Secret is sensitive — treat it like a password. Do not share it publicly or embed it in client-side code. Imagga requires all API calls to be made over HTTPS to protect your credentials in transit.

  4. Copy your API Key and API Secret and keep them available for the steps below. The Imagga API documentation provides additional details about authentication and usage limits by plan.

Imagga Plan and Usage Limits

Imagga offers a free tier that allows a limited number of API calls per month, along with paid plans for higher-volume usage. Review the Imagga pricing page to select the plan appropriate for your data integration workload. Rate limits and monthly quotas vary by plan, so ensure your Nexla data flows are designed within the limits of your subscription.

Authenticate

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. Enter your Imagga API Key in the API Key field. This is the username portion of your HTTP Basic Authentication credentials and uniquely identifies your Imagga account.

  4. Enter your Imagga API Secret in the API Secret field. This is the password portion of your HTTP Basic Authentication credentials. Nexla will securely store and use this value to authenticate API requests on your behalf.

    Both the API Key and API Secret are required. Nexla automatically encodes your credentials using Base64 and includes them in the Authorization: Basic header for all requests to the Imagga API — you do not need to encode them manually or add additional authentication headers.

  5. Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation and can be selected for use with a new data source or destination.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Imagga API connector tile, then select the credential that will be used to connect to the Imagga API, and click Next; or, create a new Imagga API credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Imagga API endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below; click on an endpoint to see more information about it and how to configure your data source for this endpoint.

List Categorizers

Returns a list of available image categorizers that can be used for image classification. Use this endpoint to discover the categorizer IDs available on your Imagga account before running categorization workflows.

  • Sends a GET request to https://api.imagga.com/v2/categorizers and returns all available categorizers.
  • Response data is nested under $.result.categorizers[*]; each element describes a single categorizer including its ID, title, and supported labels.

Categorizer IDs returned by this endpoint (e.g., personal_photos) are used as path parameters in the Categorize Photos endpoint. Run this endpoint first to identify the correct categorizer for your use case.

Get Image Croppings

Detects and returns suggested smart crop regions for a provided image URL. Use this endpoint to generate optimal crop coordinates for thumbnail generation or responsive image pipelines.

The image URL must be publicly accessible. Imagga will fetch the image directly from the provided URL when processing the request.

Get Image Colors

Extracts and returns the dominant colors and color distribution from a provided image URL. Use this endpoint to power color-based search, product classification, or brand compliance workflows.

  • Sends a GET request to https://api.imagga.com/v2/colors?image_url=<url> with the target image URL as a query parameter.
  • Response data is nested under $.result.colors[*]; results include foreground and background dominant color data with percentage coverage and HTML hex values.

The image URL must be publicly accessible. Color extraction works best on images with clear subject separation from the background.

Detect Faces

Detects and returns information about faces found in a provided image URL, including bounding box coordinates and confidence scores. Use this endpoint to count faces, crop portraits, or gate downstream face recognition workflows.

Face detection accuracy may vary with image quality, lighting, and occlusion. Review confidence scores in the response to filter low-quality detections before downstream processing.

Extract Text

Extracts and returns text recognized in a provided image URL using optical character recognition (OCR). Use this endpoint to digitize text from images, receipts, signage, or scanned documents.

  • Sends a GET request to https://api.imagga.com/v2/text?image_url=<url> with the target image URL as a query parameter.
  • Response data is nested under $.result.text[*]; each element contains a recognized text region with coordinates and the extracted string.

OCR results are most accurate on high-resolution images with clear, well-contrasted text. Low-resolution or skewed text may produce incomplete extractions.

Get API Usage

Returns the current API usage statistics and remaining quota for the authenticated Imagga account. Use this endpoint to monitor consumption and avoid quota overruns in production data flows.

  • Sends a GET request to https://api.imagga.com/v2/usage and returns usage statistics for the current billing period.
  • Response data is returned at $.result as a single object containing call counts, quota limits, and reset dates.

Schedule this endpoint to run periodically to track API consumption trends. Alert thresholds can be applied in downstream Nexla flows to notify when quota is approaching its limit.

Detect Barcodes

Detects and returns barcode and QR code information from a provided image URL. Use this endpoint to extract product identifiers, URLs, or inventory codes from product images.

  • Sends a GET request to https://api.imagga.com/v2/barcodes?image_url=<url> with the target image URL as a query parameter.
  • Response data is nested under $.result.barcodes[*]; each element contains the barcode type, decoded value, and bounding box coordinates.

The image URL must be publicly accessible. Multiple barcodes within a single image are all returned in the response array.

Categorize Photos

Classifies a provided image URL into predefined categories and returns matching categories with confidence scores. Use this endpoint to automatically organize images by subject type using a named categorizer.

  • Sends a GET request to https://api.imagga.com/v2/categories/{'{categorizerId}'}?image_url=<url> with the categorizer ID in the path and the image URL as a query parameter.
  • Response data is nested under $.result.categories[*]. Configure the following parameters: Categorizer ID — the ID of the Imagga categorizer to use (e.g., personal_photos). Use the List Categorizers endpoint to discover available IDs.

Each categorizer is trained for a specific set of image categories. Verify that the selected categorizer is appropriate for your image content before building production flows.

Retrieve Descriptive Tags for an Image

Retrieves automatically generated descriptive tags for an image — the flagship Imagga feature. Use this endpoint to enrich image metadata with semantic tags for search, filtering, or content moderation.

This is Imagga's most commonly used endpoint. Tags are returned in descending confidence order. Apply a minimum confidence threshold in downstream Nexla transformations to filter low-confidence tags.

Detect and Localise Objects within an Image

Detects and localizes specific objects within an image, returning bounding boxes for each detected object. Use this endpoint to identify and locate products, people, or other objects within images for spatial analysis.

Object localization is available on Imagga's paid plans. Verify that your Imagga subscription includes this feature before building flows that depend on it.

Compare Face Images and Return Similarity Score

Compares two face images and returns a similarity score. Use this endpoint to verify identity matches or detect duplicate face images in a dataset.

  • Sends a GET request to https://api.imagga.com/v2/faces/similarity with both image URLs (or upload IDs) provided as query parameters.
  • Response data is returned at $.result as a single object containing the similarity score.

Both image sources must contain a detectable face for the comparison to succeed. Ensure input images are pre-validated with the Detect Faces endpoint if face presence is not guaranteed.

Find Visually Similar Images (Visual Search)

Finds visually similar images within a pre-built index. Use this endpoint to implement visual product search or content deduplication workflows.

  • Sends a GET request to https://api.imagga.com/v2/similar-images/{'{imageId}'} where the path parameter is the image ID or a URL-encoded image URL.
  • Response data is nested under $.result.similar_images[*]. Configure the following parameters: Image ID or URL — the identifier of the query image within the visual search index.

A pre-built visual search index must exist on your Imagga account before using this endpoint. Refer to the Imagga documentation for instructions on creating and populating an index.

Get Structured Tags (v3)

Retrieves structured semantic tags for an image grouped by objects, scene, mood, colors, and extended categories using the Imagga v3 API. Use this endpoint for richer, more organized tag data compared to the standard v2 tags endpoint.

The v3 tags endpoint is available on specific Imagga plans. Verify that your subscription includes v3 API access before using this endpoint in production flows.

Get Semantic Croppings (v3)

Analyzes an image and returns structured semantic crop boxes with subject metadata, bounding coordinates, and reasoning using the Imagga v3 API. Use this endpoint for advanced, semantically-aware image cropping workflows.

The v3 croppings endpoint is available on specific Imagga plans. Verify that your subscription includes v3 API access before using this endpoint in production flows.

Get Async Job Ticket

Retrieves the status and results of an asynchronous Imagga job (e.g., face groupings or index training) using its ticket ID. Use this endpoint to poll for completion of long-running Imagga operations initiated in prior flow steps.

  • Sends a GET request to https://api.imagga.com/v2/tickets/{'{ticketId}'} with the ticket ID in the path.
  • Response data is returned at $.result as a single object containing job status and, when complete, the job results. Configure the following parameters: Ticket ID — the ID of the async job ticket to check.

Poll this endpoint periodically until the job status indicates completion. Nexla date/time macros and scheduled flow runs can be used to implement a polling pattern.

Search Face Recognition Index

Queries a face recognition index to find matching people for a given face ID, with support for offset and count pagination. Use this endpoint to identify individuals within a face recognition index built from your image dataset.

  • Sends a GET request to https://api.imagga.com/v2/faces/recognition/{'{indexId}'} with the recognition index ID in the path and a face ID as a query parameter.
  • Response data is nested under $.result.people[*]. Configure the following parameters: Face Recognition Index ID — the ID of the face recognition index to search.

A face recognition index must be created and populated before this endpoint can be used. Refer to the Imagga documentation for instructions on building face recognition indexes.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Imagga API sources can also be manually configured to ingest data from any valid Imagga API endpoint not covered by the pre-built templates, or when a custom request path, header, or macro strategy is needed. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

Common Imagga API base URLs include https://api.imagga.com/v2/tags (image tagging), https://api.imagga.com/v2/categories/{'{categorizer_id}'} (image categorization — replace {'{categorizer_id}'} with the categorizer ID, e.g., personal_photos), https://api.imagga.com/v2/colors (color extraction), https://api.imagga.com/v2/faces/detections (face detection), https://api.imagga.com/v2/categories/nsfw_beta (content moderation), and https://api.imagga.com/v2/uploads (image upload status/results). All Imagga API endpoints require an image source, provided either as a publicly accessible image URL via the image_url query parameter or as a previously uploaded image via its image_upload_id.

Specifying the Path to Data is essential for Imagga API responses, since results are always nested within a top-level result object — without it, Nexla will treat the entire JSON response as a single record rather than parsing individual analysis results. For example, enter $.result.tags[*] for the /tags endpoint, $.result.categories[*] for the /categories endpoint, or $.result.colors.foreground_colors[*] for the /colors endpoint. Metadata fields such as status or image_upload_id that sit outside this path can be preserved on each record via the Path to Metadata in Response field.

The most common methods for Imagga data ingestion are GET (for retrieving analysis results, uploading images by URL, or querying recognition results) and POST (for submitting images for analysis). You do not need to include the Authorization header — Nexla automatically constructs and includes the Basic Authentication header using the API Key and API Secret stored in your Imagga API credential.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Imagga API data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the Imagga API destination, and select the Send to Destination option from the menu. Select the Imagga API connector from the list of available destination connectors, then select the credential that will be used to connect to the Imagga API, and click Next; or, create a new Imagga API credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Imagga API endpoints. Select the endpoint to which this destination will send data from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

Upload Image File to Imagga

Uploads a local image file to Imagga and receives an upload ID that can be used with all analysis endpoints instead of a public image URL. Use this endpoint when your images are not publicly accessible via URL.

  • Sends a POST request to https://api.imagga.com/v2/uploads with the image file as a multipart form upload.
  • No path parameters are required. The response contains an upload_id that can be referenced in subsequent analysis endpoints (tags, categories, colors, etc.).

Uploaded images are stored temporarily on Imagga's servers. Use the Delete Uploaded Image endpoint to clean up uploads after analysis is complete and to manage storage within your account quota.

Delete Uploaded Image from Imagga

Deletes a previously uploaded image from Imagga's servers. Use this endpoint to clean up temporary uploads after analysis is complete.

  • Sends a DELETE request to https://api.imagga.com/v2/uploads/{'{uploadId}'} with the upload ID in the path.
  • Configure the following parameters: Upload ID — the ID of the previously uploaded image to delete, as returned by the Upload Image File endpoint.

Deleted images cannot be recovered. Confirm that all required analysis operations have been completed before deleting an uploaded image.

Submit Tag Feedback

Submits feedback on tags generated for an image to improve tagging accuracy. Use this endpoint to provide positive or negative signal on Imagga tags as part of a model improvement workflow.

  • Sends a POST request to https://api.imagga.com/v2/tags/feedback with a JSON payload containing the image reference and tag feedback.
  • No path parameters are required; all feedback fields are provided in the request body.

Tag feedback contributes to the overall quality of Imagga's models over time. Consistent feedback on domain-specific images can improve tagging accuracy for your use cases.

Create Face Groupings

Asynchronously groups an unstructured set of faces into visually similar clusters. Returns a ticket ID for polling the result. Use this endpoint to organize face datasets by identity without predefined labels.

  • Sends a POST request to https://api.imagga.com/v2/faces/groupings with a list of face image references in the request body.
  • No path parameters are required. The response contains a ticket_id that can be used with the Get Async Job Ticket endpoint to retrieve results when the grouping job completes.

Face grouping is an asynchronous operation. Use the Get Async Job Ticket source endpoint to poll for completion using the returned ticket ID before attempting to retrieve or use the grouping results.

Manual configuration

Imagga API destinations can also be manually configured to send data to any valid Imagga API endpoint — for example, submitting image URLs stored in a Nexset to the Imagga /tags, /categories, or /uploads endpoints for automated image analysis. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

The Imagga API accepts requests in application/x-www-form-urlencoded format for image URL submissions and multipart/form-data format for binary image uploads — verify the required format against the specific endpoint's requirements in the Imagga API documentation. Common destination endpoints include https://api.imagga.com/v2/tags (image tagging), https://api.imagga.com/v2/categories/{'{categorizer_id}'} (categorization), https://api.imagga.com/v2/uploads (image upload), https://api.imagga.com/v2/categories/nsfw_beta (content moderation), and https://api.imagga.com/v2/faces/detections (face detection). Imagga API endpoints are versioned — all endpoint URLs should begin with the current stable API version, https://api.imagga.com/v2/.

You do not need to include the Authorization header — Nexla automatically constructs and includes the Basic Authentication header using the API Key and API Secret stored in your Imagga API credential. Nexla can also be configured to automatically send the response received from the Imagga API after each call to a new Nexla webhook data source, which is useful for capturing image analysis results, upload IDs, or error messages returned by Imagga.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Imagga API endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to the Imagga API until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.