> ## Documentation Index > Fetch the complete documentation index at: https://openrouter.ai/docs/llms.txt > Use this file to discover all available pages before exploring further. # CreatePrivateEndpointRequest ## Example Usage ```typescript theme={null} import { CreatePrivateEndpointRequest } from "@openrouter/sdk/models/operations"; let value: CreatePrivateEndpointRequest = { createPrivateEndpointRequest: { modelPermaslug: "openai/gpt-4o-2024-08-06", providerSlug: "azure", upstreamModelId: "gpt-4o-prod", }, }; ``` ## Fields | Field | Type | Required | Description | Example | | - | - | - | - | - | | `httpReferer` | *string* | ➖ | The app identifier should be your app's URL and is used as the primary identifier for rankings. This is used to track API usage per application. | | | `appTitle` | *string* | ➖ | The app display name allows you to customize how your app appears in OpenRouter's dashboard. | | | `appCategories` | *string* | ➖ | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings. | | | `idempotencyKey` | *string* | ➖ | Retry-safe create: a repeated create with the same key from the same organization returns the endpoint the first request created instead of creating another. The endpoint is returned as it is now. Reusing a key with a different request body (model, provider, base URL, upstream model ID, declared ZDR or region, pricing, or declared parameters) is rejected with 422 `idempotency_key_reused`. Declared parameters are compared as a set, so a retry that reorders or repeats a name replays the endpoint. `activate` and `settings` are not compared, and later edits to the endpoint do not affect the comparison. `settings` is still validated before the replay, so a retry with invalid settings returns 400 `settings_invalid` instead of the endpoint. | wayfair-gpt-4o-eastus-2026-09 | | `createPrivateEndpointRequest` | [models.CreatePrivateEndpointRequest](../../models/createprivateendpointrequest.mdx) | ✔️ | N/A | |