Fetching Adaptix Contacts with Advanced Filters and Basic Authentication
PHP example
This PHP script demonstrates how to connect to a Adaptix API endpoint using GuzzleHttp. It authenticates via Basic Authentication, constructs advanced filter parameters (such as filtering contacts by email address), and retrieves contact data in JSON format.
Using Guzzle, install it via Composer
|  | composer require guzzlehttp/guzzle
 | 
|  | <?php
require __DIR__ . '/vendor/autoload.php';
use GuzzleHttp\Client;
$baseUrl = 'https://instance.adaptix.ai'; // Update with your instance URL
$client = new Client();
$query = [
    'where[0][col]' => 'email',
    'where[0][expr]' => 'eq',
    'where[0][val]' => 'john+doe@mydomain.com',
];
try {
    $response = $client->request('GET', $baseUrl . '/api/contacts', [
        'auth' => ['username', 'password'], // Basic Auth
        'query' => $query,
        'headers' => [
            'Accept' => 'application/json',
        ]
    ]);
    $contacts = $response->getBody()->getContents();
    print_r(json_decode($contacts, true));
} catch (\Exception $e) {
    echo 'Error: ' . $e->getMessage();
}
 | 
Java example
Here’s the Java version using the popular HttpClient from Java 11+ for making the GET request with Basic Authentication and query parameters:
|  | import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class AdaptixApiRequest {
    public static void main(String[] args) {
        try {
            String baseUrl = 'https://instance.adaptix.ai'; // Update with your instance URL
            String email = "john+doe@mydomain.com";
            String query = String.format("where[0][col]=%s&where[0][expr]=%s&where[0][val]=%s",
                    URLEncoder.encode("email", StandardCharsets.UTF_8),
                    URLEncoder.encode("eq", StandardCharsets.UTF_8),
                    URLEncoder.encode(email, StandardCharsets.UTF_8));
            String url = baseUrl + "/api/contacts?" + query;
            String username = "username";
            String password = "password";
            String auth = Base64.getEncoder().encodeToString((username + ":" + password).getBytes());
            HttpClient client = HttpClient.newHttpClient();
            HttpRequest request = HttpRequest.newBuilder()
                    .uri(URI.create(url))
                    .header("Authorization", "Basic " + auth)
                    .header("Accept", "application/json")
                    .GET()
                    .build();
            HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
            System.out.println("Response:");
            System.out.println(response.body());
        } catch (Exception e) {
            System.out.println("Error: " + e.getMessage());
        }
    }
}
 | 
Python example
This Python script uses the popular requests library to perform a Basic Authentication request to the Adaptix API and apply advanced contact filtering:
|  | import requests
from requests.auth import HTTPBasicAuth
base_url = 'https://instance.adaptix.ai'  # Update with your instance URL
username = 'username'
password = 'password'
query_params = {
    'where[0][col]': 'email',
    'where[0][expr]': 'eq',
    'where[0][val]': 'john+doe@mydomain.com',
}
try:
    response = requests.get(
        f"{base_url}/api/contacts",
        auth=HTTPBasicAuth(username, password),
        params=query_params,
        headers={
            'Accept': 'application/json'
        }
    )
    response.raise_for_status()  # Raise exception for HTTP errors
    contacts = response.json()
    print(contacts)
except requests.exceptions.RequestException as e:
    print(f"Error: {e}")
 |