---
title: "Create shipping addresses"
method: POST
path: "/contacts/{contact_id}/shipping/addresses"
tags: ["Shipping::Address"]
---

# Create shipping addresses

`POST /contacts/{contact_id}/shipping/addresses`

## Request

- Base URL: `https://myworkspace.myclickfunnels.com/api/v2`
- URL: `https://myworkspace.myclickfunnels.com/api/v2/contacts/{contact_id}/shipping/addresses`
- Auth: one of:
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://accounts.myclickfunnels.com/oauth/authorize`
    - Token URL: `https://accounts.myclickfunnels.com/oauth/token`
- TypeScript: <https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/docs/contacts/:contact_id/shipping/addresses/post.ts> (a function with typed inputs; its response is checked against the schema)

createShippingAddresses

## Path parameters

- `contact_id` string, required

## Request body

- object
  - `shipping_address` ShippingAddressParameters, required: Every create inserts, including duplicate streets. Blank recipient names and phone fall back to the contact. The first entry becomes default. Entries are not checkout-verified and may not prefill checkout.
    - `first_name` string, nullable: First name
    - `last_name` string, nullable: Last name
    - `organization_name` string, nullable: Organization name
    - `phone_number` string, nullable: Phone number
    - `default` boolean: Set true to select this entry. False on the current default returns 422; select another entry instead.
    - `address` object, required: Complete postal street. Row IDs, owner fields, internal geography IDs and checkout verification are read-only and ignored if supplied.
      - `address_one` string, required: Street line 1
      - `address_two` string, nullable: Street line 2
      - `city` string, required: City
      - `region` string, nullable: State code or full region name for the country; unknown values return 422
      - `country_code` string, required: ISO2 country code; unknown values return 422
      - `postal_code` string, required: Postal code, at most 10 characters

## Response `201`

Created

- ShippingAddressAttributes: A shipping entry adds recipient, organization, phone and default selection to its nested postal address. Both the entry and nested address have their own id and public_id.
  - `id` integer
  - `public_id` string: Shipping entry public ID
  - `contact_id` integer
  - `first_name` string, nullable: First name
  - `last_name` string, nullable: Last name
  - `organization_name` string, nullable: Organization name
  - `phone_number` string, nullable: Phone number
  - `default` boolean: Whether the contact's default shipping pointer selects this entry
  - `address` PostalAddressAttributes: Postal street fields shared by contact billing addresses and shipping entries.
    - `id` integer: Postal address row ID
    - `public_id` string: Postal address public ID
    - `address_one` string, nullable: Address one
    - `address_two` string, nullable: Address two
    - `city` string, nullable: City
    - `region` string, nullable: State or region code
    - `region_name` string, nullable: Full region name
    - `country` string, nullable: ISO2 country code
    - `postal_code` string, nullable: Postal code
    - `created_at` string, date-time: Created at
    - `updated_at` string, date-time: Updated at
  - `created_at` string, date-time
  - `updated_at` string, date-time

## Other responses

- `401`: Unauthorized
- `403`: Forbidden — this request's workspace is closed to it. Three cases return this: * The access token is limited to specific workspaces (see the workspace selection made when the key was provisioned, or the workspaces approved on the OAuth consent screen) and the request acts on a workspace outside that set. * The access token is limited to specific workspaces and the request's workspace could not be determined at all. The gate is fail-closed, so a workspace-limited token is denied rather than allowed through when the target workspace is ambiguous. * The workspace's team has no active ClickFunnels subscription: it was canceled, is paused, or is locked out after failed payments. Reads and writes are both refused until the subscription is reactivated, and the body carries `"code": "subscription_inactive"`. A token with no workspace restriction never receives the first two.
- `404`: Not Found
- `422`: Unprocessable Entity

## Changes

- **2026-11-03** `511d88b30aea`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/changes/contacts/:contact_id/shipping/addresses/post.md)

---

[API](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api.md) - [All operations](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/llms.txt) - [OpenAPI document](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/revisions/511d88b30aea?raw)
