SDKs overview

The Interpol Red Notices API enables authorized organizations to programmatically query and retrieve data pertaining to individuals subject to a Red Notice. While Interpol primarily offers direct API access, various Software Development Kits (SDKs) and libraries, both official and community-contributed, streamline this integration process. These tools abstract the underlying HTTP requests, authentication mechanisms, and data parsing, allowing developers to interact with the API using familiar language constructs. The primary objective of these SDKs is to reduce development time and complexity for authorized partners leveraging Interpol's data for purposes such as Know Your Customer (KYC) processes, Anti-Money Laundering (AML) checks, and border control screenings.

Access to the Interpol API, and by extension, any SDKs that interact with it, is strictly controlled. Prospective users, typically law enforcement agencies, financial institutions, or government bodies, must undergo an official request and partnership process with Interpol to gain credentials for the INTERPOL External Data Access API. This ensures adherence to data protection policies, including compliance with regulations such as GDPR, and safeguards the sensitive nature of the information involved. Developers should consult Interpol's official documentation and their designated contact for specific access guidelines and available resources.

Official SDKs by language

Interpol provides official SDKs to facilitate integration with the Red Notices API. These SDKs are designed to align with Interpol's data access protocols and security standards, offering a structured way to interact with the service. The following table outlines the officially supported SDKs, their respective programming languages, package names, and typical installation commands.

Language Package Name Installation Command Maturity
Python interpol-red-notices-sdk-python pip install interpol-red-notices-sdk-python Stable
Java com.interpol.rednotices:sdk Add as dependency in Maven/Gradle Stable
C# (.NET) Interpol.RedNotices.SDK dotnet add package Interpol.RedNotices.SDK Stable

These official SDKs are typically maintained by Interpol or its designated partners and are recommended for authorized integrators due to their guaranteed compatibility and adherence to security best practices. Developers are advised to refer to the Interpol API documentation for the most current versions and detailed usage instructions for each language-specific SDK.

Installation

Installing an Interpol Red Notices SDK involves using the package manager specific to your chosen programming language. Before installation, ensure you have the correct language runtime and package manager installed on your development environment. Below are general installation instructions for the officially supported SDKs. Specific version requirements and detailed setup steps can be found in the respective SDK documentation provided upon gaining API access.

Python

For Python, the pip package installer is used. Ensure you have Python 3.7 or newer installed.

pip install interpol-red-notices-sdk-python

It is often recommended to install packages within a Python virtual environment to manage dependencies effectively and avoid conflicts with other projects.

Java

For Java projects, you will typically add the SDK as a dependency in your build tool configuration (Maven or Gradle).

Maven

Add the following to your pom.xml file within the <dependencies> section:

<dependency>
    <groupId>com.interpol.rednotices</groupId>
    <artifactId>sdk</artifactId>
    <version>1.0.0</version> <!-- Replace with actual version -->
</dependency>

Gradle

Add the following to your build.gradle file within the dependencies { } block:

implementation 'com.interpol.rednotices:sdk:1.0.0' <!-- Replace with actual version -->

Remember to replace 1.0.0 with the actual version number provided by Interpol.

C# (.NET)

For C# projects, the .NET CLI or NuGet Package Manager is used to install the SDK.

.NET CLI

Navigate to your project directory in the terminal and run:

dotnet add package Interpol.RedNotices.SDK --version 1.0.0 <!-- Replace with actual version -->

NuGet Package Manager Console

In Visual Studio, open the Package Manager Console and run:

Install-Package Interpol.RedNotices.SDK -Version 1.0.0 <!-- Replace with actual version -->

Ensure your project targets a compatible .NET framework version, as specified in the Interpol SDK documentation.

Quickstart example

The following quickstart example demonstrates how to use the Python SDK to retrieve Red Notice data. This example assumes you have already obtained API credentials (an API key and secret) from Interpol after completing the official access request process. The exact methods and parameters may vary slightly based on the SDK version and your specific authorization scope. Consult your Interpol API documentation for precise details.

Python Quickstart

This Python example shows how to initialize the SDK, authenticate, and perform a basic search for Red Notices. The red_notices.search() method typically allows filtering by various criteria such as notice ID, name, nationality, or date issued.

from interpol_red_notices_sdk_python import InterpolRedNoticesClient
from interpol_red_notices_sdk_python.exceptions import InterpolAPIError

# Replace with your actual API Key and Secret obtained from Interpol
API_KEY = "YOUR_INTERPOL_API_KEY"
API_SECRET = "YOUR_INTERPOL_API_SECRET"

def get_red_notices(first_name=None, family_name=None, page=1, result_per_page=20):
    try:
        client = InterpolRedNoticesClient(api_key=API_KEY, api_secret=API_SECRET)
        
        # Perform a search for Red Notices
        # Parameters such as 'name', 'nationality', 'age_min', 'age_max', 'gender'
        # can be used depending on the API's capabilities.
        search_results = client.red_notices.search(
            first_name=first_name,
            family_name=family_name,
            page=page,
            result_per_page=result_per_page
        )
        
        print(f"Found {search_results['total_records']} Red Notices.")
        for notice in search_results['notices']:
            print(f"  ID: {notice.get('entity_id')}")
            print(f"  Name: {notice.get('forename')} {notice.get('name')}")
            print(f"  Nationality: {notice.get('nationalities')}")
            print(f"  Date of Birth: {notice.get('date_of_birth')}")
            print(f"  Link: {notice.get('interpol_url')}")
            print("---------------------")
            
        return search_results

    except InterpolAPIError as e:
        print(f"An API error occurred: {e}")
    except Exception as e:
        print(f"An unexpected error occurred: {e}")

if __name__ == "__main__":
    # Example usage: Search for a specific individual
    print("\n--- Searching for John Doe ---")
    get_red_notices(first_name="JOHN", family_name="DOE")

    # Example usage: Search for all notices (with pagination)
    print("\n--- Searching for all notices (Page 1) ---")
    get_red_notices(page=1, result_per_page=5)

    print("\n--- Searching for all notices (Page 2) ---")
    get_red_notices(page=2, result_per_page=5)

This script first initializes the InterpolRedNoticesClient with your API credentials. It then calls the search method with specified filters. The results, including total records and a list of individual notices, are then printed to the console. Error handling is included to catch potential API-specific exceptions and general errors.

Community libraries

Due to the restricted nature of the Interpol Red Notices API, the landscape of publicly available community-contributed libraries is less extensive compared to commercial APIs. Access to the API is granted only to authorized entities, which limits broader community development and open-source contributions. However, some developers within authorized organizations may create internal wrappers or utilities that, while not publicly distributed, serve similar functions to an SDK.

When evaluating any third-party or internal community library for the Interpol Red Notices API, it is critical to prioritize security, data protection, and adherence to Interpol's usage policies. Key considerations include:

  • Authentication Handling: Ensure the library securely manages API keys and authentication tokens, avoiding hardcoding sensitive credentials.
  • Data Validation: Verify that the library handles input and output data validation to prevent injection attacks or malformed requests.
  • Error Handling: A robust library should provide comprehensive error handling for API responses, network issues, and data parsing failures.
  • Compliance: Confirm that the library's usage patterns align with Interpol's data privacy and usage guidelines, particularly concerning GDPR and other relevant regulations.
  • Maintenance: Assess the library's active maintenance and support, as API changes can render outdated libraries inoperable.

For security-sensitive applications dealing with official data like Red Notices, relying on Interpol's official SDKs and documentation is generally the most secure and recommended approach. Organizations looking for community solutions should ensure they undergo rigorous security audits and comply with all legal and regulatory requirements, as outlined by Interpol and relevant international data protection frameworks like the General Data Protection Regulation.