networking

Create a PrivateLink endpoint

Changed on

Creates a PrivateLink endpoint for a project. Changes to endpoints of the same project are serialized. If another change holds them for too long, the request fails with 503 service_unavailable and can be retried. If the change may have completed but the outcome is unknown, it fails with 409 uncertain_outcome; read the endpoint before retrying.

post/v1/networking/privatelink/endpoints

Request

  • Base URL: https://api.vercel.com
  • URL: https://api.vercel.com/v1/networking/privatelink/endpoints
  • Auth: HTTP bearer

Query parameters

teamIdstring
Example:team_1a2b3c4d5e6f7g8h9i0j1k2l

The Team identifier to perform the request on behalf of.

slugstring
Example:my-team-url-slug

The Team slug to perform the request on behalf of.

Request body

projectIdstring required

The project ID to create the PrivateLink endpoint for.

namestring required

The name of the PrivateLink endpoint, used as its label in the Vercel dashboard.

vercelRegionstring required

The Vercel region to provision the endpoint in. Advanced Networking must be enabled for the project in that region. The endpoint service itself may live in another AWS region.

awsServiceNamestring required

The name of the AWS VPC endpoint service to connect to. Its AWS region is read from the name; when that region differs from the one behind vercelRegion, the service must allow cross-region access.

enablePrivateDnsboolean

Whether to resolve the endpoint service through its private DNS names, which are then returned in privateDnsNames. Defaults to false, in which case the endpoint is reachable through the DNS names in awsDnsEntries.

Example request

{
  "projectId": "prj_a1b2c3d4e5f6g7h8",
  "name": "payments-db",
  "vercelRegion": "iad1",
  "awsServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-0123456789abcdef0"
}

Response

The PrivateLink endpoint was created and is being provisioned.

awsDnsEntriesstring[]

The regional DNS names assigned to the endpoint by AWS. Use these to reach the service when private DNS is not enabled.

awsServiceNamestring required

The AWS VPC endpoint service the endpoint connects to.

createdAtnumber required

Timestamp in milliseconds since the UNIX epoch for when the endpoint was created.

endpointIdstring required

The unique identifier of the PrivateLink endpoint.

namestring required

The name of the PrivateLink endpoint, shown in the Vercel dashboard.

privateDnsNamesstring[]

The private DNS names of the endpoint service, populated when private DNS is enabled for the endpoint.

projectIdstring required

The identifier of the project the PrivateLink endpoint belongs to.

status'available' | 'creating' | 'deleting' | 'failed' | 'pending-acceptance' | 'provisioning' | 'rejected' required

The current state of the endpoint. - creating: the endpoint is being created. - pending-acceptance: waiting for the endpoint service owner to accept the connection. Only occurs for services that require manual acceptance. - provisioning: the connection was accepted and AWS is finishing setup. - available: the endpoint is fully provisioned and ready to use. - rejected: the endpoint service owner rejected the connection. - failed: the endpoint could not be provisioned. - deleting: the endpoint is being deleted.

statusMessagestring

A human-readable explanation of why the endpoint could not be provisioned. Only set when status is failed, and absent for every other status including rejected, since AWS does not report a rejection reason.

teamIdstring required

The identifier of the team that owns the PrivateLink endpoint.

updatedAtnumber required

Timestamp in milliseconds since the UNIX epoch for when the endpoint was last updated.

vercelRegionstring required

The Vercel region the endpoint is provisioned in.

vpcEndpointIdstring

The identifier of the underlying AWS VPC endpoint. Absent until AWS has created the endpoint.

Example response

{
  "awsDnsEntries": [
    "vpce-0123456789abcdef0-a1b2c3d4.vpce-svc-0123456789abcdef0.us-east-1.vpce.amazonaws.com"
  ],
  "awsServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-0123456789abcdef0",
  "createdAt": 1610963878358,
  "endpointId": "ple_a1b2c3d4e5f6g7h8",
  "name": "payments-db",
  "privateDnsNames": [
    "payments.internal.example.com"
  ],
  "projectId": "prj_a1b2c3d4e5f6g7h8",
  "status": "available",
  "statusMessage": "Endpoint did not become available in time. Try deleting and recreating, or visit https://vercel.com/help if the issue persists.",
  "teamId": "team_a1b2c3d4e5f6g7h8",
  "updatedAt": 1610963878358,
  "vercelRegion": "iad1",
  "vpcEndpointId": "vpce-0123456789abcdef0"
}

Changes