personalize.marketing
GuidesCode

Java Integration

How to use the personalize.marketing API with Java

Java Integration

Increase Timeout to 5 Minutes

The API analyzes influencer profiles in real-time, which can take up to 300 seconds per request. Set your HTTP client timeout to at least 300 seconds (5 minutes) to avoid premature timeouts.

Prerequisites

You need an API key. See Get Started for instructions.

Security Tip

Store your API key in environment variables to avoid accidentally committing it to git. Never hardcode API keys in your source code.

Example

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

public class PersonalizeExample {
    // ============ CONFIGURE THESE ============
    private static final String API_KEY = System.getenv("PERSONALIZE_API_KEY");
    private static final String PROFILE_URL = "https://linkedin.com/in/arnold-schwarzenegger/";
    private static final String TEMPLATE = """
        Hey {{first name}},

        Love what you are building with {{their company or product}}. We make fitness supplements that would pair perfectly with your brand.

        Worth a quick chat?""";
    private static final String BRAND_CONTEXT = "We are a fitness supplement brand targeting health-conscious entrepreneurs";
    private static final String AI_INSTRUCTIONS = "Keep the tone professional but friendly";
    // =========================================

    public static void main(String[] args) throws Exception {
        HttpClient client = HttpClient.newBuilder()
            .connectTimeout(Duration.ofMinutes(5))
            .build();

        String jsonBody = String.format("""
            {
                "profile_url": "%s",
                "template": "%s",
                "brand_context": "%s",
                "ai_instructions": "%s",
                "enable_brand_fit_score": false,
                "include_profile_report": false,
                "include_raw_data": false
            }
            """, PROFILE_URL, TEMPLATE.replace("\n", "\\n").replace("\"", "\\\""), BRAND_CONTEXT, AI_INSTRUCTIONS);

        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://personalize.marketing/api/v1/personalize-api"))
            .timeout(Duration.ofMinutes(5))
            .header("Authorization", "Bearer " + API_KEY)
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(jsonBody))
            .build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}

Response:

{
  "success": true,
  "personalized_text": "Hey Arnold,\n\nLove what you are building with The Pump app. We make fitness supplements that would pair perfectly with your brand.\n\nWorth a quick chat?",
  "profile_url": "https://linkedin.com/in/arnold-schwarzenegger/",
  "brand_fit_score": 9,
  "profile_report": "Arnold Schwarzenegger is an entrepreneur, actor, and fitness icon with 500K+ LinkedIn followers. He actively promotes his businesses including The Pump app and his daily newsletter. His content focuses on fitness, motivation, and health advice. High engagement rates with a professional, health-conscious audience.",
  "raw_data": {
    "profile": {
      "firstName": "Arnold",
      "lastName": "Schwarzenegger",
      "headline": "Businessman | Founder of The Pump",
      "followerCount": 500000
    },
    "posts": ["..."]
  }
}

Request Fields

FieldRequiredDescription
profile_urlYesLinkedIn, Instagram, or TikTok profile URL
templateYesYour message with {{instruction}} placeholders (e.g., {{first name}})
ai_instructionsNoCustom tone/style instructions for the AI
brand_contextNoYour brand description for better post matching
enable_variationsNoRephrase output to avoid spam detection
enable_brand_fit_scoreNoGet 1-10 brand fit score
include_profile_reportNoGet detailed influencer analysis
include_raw_dataNoGet raw profile data (unstable, for debugging only)

See API Reference for complete documentation.

On this page