Skip to content

Create an Account

ShipStation's Partners API allows you to programmatically create ShipStation API accounts for your customers. You can then make ShipStation API calls on behalf of your customers.

You can optionally assign your own unique customer identifier to a ShipStation API account via the external_account_id field, so you can look up the account later.

ShipStation API Login

ShipStation API accounts that are created via the Partners API cannot log in to the ShipStation API dashboard by default. Instead, everything that a user might normally do in the dashboard is done via the API. The most obvious example of this is connecting a carrier account.

Email and Password

You can specify an email and password that will allow direct login access to this account. The password must be at least 7 characters long. The email must be unique and not in use by any other accounts associated with ShipStation API - if the email is already in use by another account, you will receive an error.

Request Body Properties

The following table lists the properties required for this endpoint. To see a sample of a full request, see the Example Request section below.

NameTypeMax LengthDescription
first_namestring24First name of account owner. This will always be null in the response. (Optional)
last_namestring24Last name of account owner. This will always be null in the response. (Optional)
company_namestring50Company name of account owner. This will always be null in the response. (Optional)
external_account_idstring128A unique ID that can be used to list the account. (Optional)
origin_country_codestring2Must be capitalized. Valid values for this field can be found on our supported countries page.
emailstring50A unique email that can be used to log into the ShipStation API dashboard. This will always be null in the response. (Optional)
passwordstring128Minimum 7 characters. A password that can be used to log into the ShipStation API dashboard. This is not in the response. (Optional)

Example Request & Response

To create a ShipStation API account, you'll send a POST request to the /v1/partners/accounts endpoint containing information about your customer's account.

POST /v1/partners/accounts HTTP/1.1
Host: api.shipengine.com
API-Key: __PARTNER_API_KEY_HERE__
Content-Type: application/json

{
  "first_name": "John",
  "last_name": "Doe",
  "company_name": "Acme Corp.",
  "external_account_id": "819748723192",
  "origin_country_code": "US",
  "email": "john.doe@example.com",
  "password": "pa55word"
}

Example response:

{
  "api_key": {
    "encrypted_api_key": "__ACCOUNT_API_KEY_HERE__",
    "created_at": "2024-01-01T00:00:00.000Z",
    "description": "Account API Key",
    "account_id": 123456,
    "api_key_id": 1234
  },
  "account_id": 123456,
  "external_account_id": "819748723192",
  "created_at": "2024-01-01T00:00:00.000Z",
  "modified_at": "2024-01-01T00:00:00.000Z",
  "active": true,
  "email": null,
  "company_name": null,
  "first_name": null,
  "last_name": null,
  "origin_country_code": "US"
}

NOTE: The encrypted_api_key contains the account API key. Despite its name, encrypted_api_key does not need to be decrypted. Send it as-is in your API requests, and store it securely.

Each account is created with an API key you can begin using immediately. If this key is ever compromised, you can always disable it and then create a new one.