Authentication overview

Izi provides a platform for creating and publishing audio guides and tours for cultural institutions and city operators. Access to Izi's developer resources, primarily focused on content retrieval and integration, is managed through an API key authentication mechanism. This approach ensures that only authorized applications and users can fetch tour data, metadata, and associated media from the Izi content delivery network.

The Izi API is designed for partners who wish to integrate Izi's extensive catalog of tours and cultural content into their own applications or websites. Authentication is a prerequisite for making successful requests to the Izi API, safeguarding the content and ensuring proper usage according to Izi's developer terms. All interactions with the Izi API should occur over HTTPS to protect the transmission of API keys and data in transit, aligning with standard web security practices for API interactions secure web contexts.

Developers interacting with the Izi platform will primarily use the API to:

  • Retrieve lists of available tours and guides.
  • Access detailed information about specific tours, including points of interest.
  • Fetch multimedia assets such as audio files, images, and maps associated with tours.
  • Integrate Izi content seamlessly into third-party applications or content management systems.

The authentication process is streamlined, requiring developers to obtain a unique API key and include it in their API requests. This method is common for read-heavy APIs where the primary concern is controlled access to publicly available or partner-specific content.

Supported authentication methods

Izi primarily supports API key authentication for accessing its developer resources. This method involves generating a unique key from the Izi developer portal and including it in API requests to verify the client's identity. API keys are suitable for client-side applications or server-side integrations where the key can be securely stored and managed.

The use of API keys typically grants access to specific functionalities or data sets as defined by Izi's API policies. For Izi, this generally means read-only access to published tour content and metadata. Direct write operations or user-specific authentication (like OAuth 2.0 for user accounts) are not the primary focus of the public developer API, which emphasizes content syndication and integration.

The following table summarizes the authentication method supported by Izi:

Method When to use Security Level
API Key For server-to-server communication or client applications requiring access to Izi's public content data. Moderate. Relies on secure key storage and HTTPS transmission.

While API keys offer a straightforward authentication mechanism, developers must adhere to best practices for key management to prevent unauthorized access. This includes restricting key usage, rotating keys periodically, and never embedding keys directly into client-side code that can be easily inspected.

Getting your credentials

To access the Izi API and retrieve content, you will need to obtain an API key. The process typically involves registering as a developer or partner on the Izi platform. Specific steps for credential acquisition are provided within the Izi developer documentation.

General steps to acquire an Izi API key:

  1. Register on the Izi Platform: Navigate to the Izi developer portal (Izi Developers documentation) and complete the registration process. This usually involves providing an email address and creating an account.
  2. Access Developer Dashboard: Once registered and logged in, locate the developer or API section within your account dashboard.
  3. Generate API Key: Look for an option to generate a new API key. The platform will typically provide a unique string that serves as your API key. It is crucial to copy and store this key securely immediately after generation, as it may not be retrievable again for security reasons.
  4. Review API Key Permissions: Understand the scope and permissions associated with your generated API key. For Izi, this key generally grants access to retrieve public tour data.
  5. Secure Storage: Store your API key in a secure location. For server-side applications, environment variables or secure configuration files are recommended. Avoid hardcoding API keys directly into your application's source code.

Izi's developer documentation provides detailed instructions and any specific requirements for obtaining and managing your API key within their system. Always refer to the official Izi developer documentation for the most up-to-date and precise instructions on credential management.

Authenticated request example

Once you have obtained your API key, you can use it to make authenticated requests to the Izi API. The API key is typically passed as a query parameter or an HTTP header, depending on the specific API endpoint and its design. For Izi, the API key is generally expected as a query parameter named api_key.

Here's an example of how you might make an authenticated request to retrieve a list of tours using curl, assuming an endpoint like /api/v2/tours:

curl -X GET \
  "https://izi.travel/api/v2/tours?api_key=YOUR_IZI_API_KEY&lang=en&limit=10"

In this example:

  • YOUR_IZI_API_KEY should be replaced with the actual API key you obtained from the Izi developer portal.
  • lang=en specifies the language for the tour content (e.g., English).
  • limit=10 restricts the number of tours returned to 10.

Always ensure that your requests are made over HTTPS to encrypt the communication and protect your API key from interception. The Izi developer documentation provides specific API endpoints and parameters for various content retrieval operations, such as fetching tour details, points of interest, and media files Izi API reference.

When integrating into a programming language, the method remains similar:

import requests

api_key = "YOUR_IZI_API_KEY"
base_url = "https://izi.travel/api/v2"
endpoint = "tours"

params = {
    "api_key": api_key,
    "lang": "en",
    "limit": 10
}

try:
    response = requests.get(f"{base_url}/{endpoint}", params=params)
    response.raise_for_status()  # Raise an exception for HTTP errors
    data = response.json()
    print(data)
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")

This Python example demonstrates constructing a request with the API key as a query parameter and handling the response. It is critical to manage the api_key securely within your application environment.

Security best practices

Securing your Izi API key and integrating with the Izi platform requires adherence to several security best practices:

  • Use HTTPS/TLS for All API Communication: Ensure all requests to the Izi API are made over HTTPS. This encrypts data in transit, protecting your API key and the content you retrieve from eavesdropping. Izi's API endpoints are designed to be accessed via HTTPS, which is a fundamental security measure for any web API RFC 2818 on HTTP over TLS.

  • Secure Storage of API Keys: Never hardcode API keys directly into your application's source code, especially for client-side applications. For server-side applications, store API keys in environment variables, dedicated secrets management services (e.g., AWS Secrets Manager, Google Cloud Secret Manager), or secure configuration files that are not committed to version control. For client-side applications, consider using a backend proxy to make API calls to Izi, thus keeping the API key on your server.

  • Restrict API Key Permissions: While Izi's API keys primarily offer read-only access to content, it's a general best practice to request and use API keys with the minimum necessary permissions. This limits the potential impact if a key is compromised.

  • API Key Rotation: Periodically rotate your API keys. This means generating a new key, updating your applications to use the new key, and then revoking the old key. Regular rotation minimizes the window of opportunity for a compromised key to be exploited.

  • Implement Rate Limiting and Monitoring: Monitor your API usage for unusual patterns that might indicate unauthorized access or abuse. Implement client-side rate limiting where feasible to prevent accidental or malicious overuse of the API, which could lead to service disruptions or unexpected charges if Izi were to introduce transactional pricing.

  • Error Handling and Logging: Implement robust error handling and logging for API requests. Avoid logging sensitive information like API keys in plain text. Detailed error messages can help diagnose issues but should not expose credentials.

  • Validate and Sanitize Inputs: Although Izi's API is primarily for data retrieval, any parameters you send (e.g., language codes, limits) should be validated and sanitized to prevent injection attacks or unexpected behavior.

  • Stay Updated with Izi Documentation: Regularly check the official Izi developer documentation for any updates to their API, security policies, or recommended authentication practices. Izi's developer documentation is the authoritative source for these guidelines Izi Developer Guidelines.