Get the billing plan details for a specified client account.

Only authorized technology partners have access to partner endpoints. To make authorized calls to partner endpoints, you must include your API key in the x-api-key header and the JSON Web Token (JWT) in the Authorization header. The JWT automatically expires in one hour (3,600 seconds) and cannot be refreshed. You must re-authenticate each time a JWT expires.

Make a GET call to the /partner/accounts/{encoded_account_id}/plan endpoint to get billing details for a single client account.

The following example response body shows billing plan details returned for a client account using GET /partner/accounts/{encoded_account_id}/plan:

    "plan_type": "GOOD",
    "current_tiers": [
            "usage_type": "CONTACTS",
            "current_usage": 1.00000,
            "tier": 1,
            "tier_min": 0.00000,
            "tier_max": 500.00000,
            "price": 20.00000,
            "currency_code": "USD"
    "billing_status": "Open",
    "billing_day_of_month": 29
Property Name Description  
plan_type The billing plan that is associated with a client’s Constant Contact account. The billing plan determines the Constant Contact product features that the client account can access and the total number of contacts permitted.  
  TRIAL: A non-billed account with an expiration date that allows clients to try limited Constant Contact product features.  
  GOOD: A billed Email client account plan.  
  BETTER: A billed Email Plus client account plan.  
  BEST: A billed Personal Marketer client account plan.  
  LITE: A Website Builder client account plan.  
current_tiers Provides billing plan details for a non-trial client account (an account with a billing_status that is not set to Trial):  
  usage_type: The unit on which the tiers are based. By default, tiers are based on the number of active contacts.  
  current_usage: The number of active contacts (default) used within the current tier.  
  tier: The billing tier level (1 to 32) that is associated with a client account. By default, the system determines the tier level to use based on the number of active contacts in a client account at the time of billing and defined as follows (your billing tiers may differ):  
  level 1 = 0 – 500 contacts  
  level 2 = 501 – 1000 contacts  
  level 3 = 1001 – … (continuing on up to tier 32)  
  tier_min: The minimum number of active contacts for the specified tier.  
  tier_max: The maximum number of active contacts for the specified tier.  
  price: The price that the account is charged each month.  
  currency_code: The currency (ISO country code) used to price the tier for a client account.  
billing_status The client’s Constant Contact account billing status. Billing status values include:  
  Trial: This is a non-paying trial client account.  
  Open : This is an active and paying client account.  
  Canceled: The client account was canceled.  
  Trial End: The trial period has ended for this client account.  
billing_day_of_month This property is required if a client account is not set up to use single billing. You can choose to enter a specific day of the month or accept the default value, which is the day on which the plan_type value changes from a Trial plan to a different plan_type. For trial accounts the value defaults to null. You can change the billing_day_of_month only when changing the plan_type value from TRIAL to a different plan_type, otherwise the value you enter is ignored.  


The following header parameters are required:

  • x-api-key: Enter the API key associated with your application.
  • Authorization: Enter the JWT to use.

Example GET Billing Plan Details for a Client Account Request


 $request = new HttpRequest();
   '' => 'a07e1lxtnhz0'
   'cache-control' => 'no-cache',
   'Connection' => 'keep-alive',
   'Accept-Encoding' => 'gzip, deflate',
   'Host' => '',
   'Cache-Control' => 'no-cache',
   'x-api-key' => '40a0b12-342b-436d-97c3-000000000000',
   'Authorization' => 'xxxxxxxxxxxxxWQzZGTG9DS0RGTkYzT2w0XC9KaDU2TUFtc3RnQT0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI2cjZ0bzVmb2UxZ2luNWt0N3Y2Y2JoanNjcyIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoidjNhcGlcL2dlbmVyYWwucGFydG5lciIsImF1dGhfdGltZSI6MTU5MTEwMTg4OCwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tXC91cy1lYXN0LTFfTUd4alFNTTRQIiwiZXhwIjoxNTkxMTA1NDg4LCJpYXQiOjE1OTExMDE4ODgsInZlcnNpb24iOjIsImp0aSI6IjdmOWFiODI3LWIwZjktNDRmYi1iZTcwLTc3OGE5MTg0Y2MwMyIsImNsaWVudF9pZCI6IjZyNnRvNWZvZTFnaW41a3Q3djZjYmhqc2NzIn0.lLvhRdv_k1swxxxxxxxxxxxxxxxxxxxxxxxa3ZjMU4KAXitot-3VCOZ_95rErSmP7aST2oAENKiVEbttq2QJaJqVvuce2sJSx9dstWzlXixeQt5MFwkrzC3vBpT02qBotAUpoEz28zcRft5LFYxFs4Z5ycTzkgmBCdX6GtHL8bj6QihYrsi5wKdO0JatMlyt2cv1qRwN_dAKFrPx9QuXdz2x7Xnip0g7jCZDEJpYFJVe_aAoiutRGJNtpemI70_A42MU9XDTuXg0i75ISStcnjYP27SNtgKyg6So3EOnZLR5nyHeYUE3wTZfMt13wBUIsKvX_SgMgdQLOC7lOhsix8okA,xxxxxxx3N2Yxxxxxxxxxxxxxxxxxx',
   'Content-Type' => 'application/json',
   'Accept' => '*/*'
 try {
   $response = $request->send();
   echo $response->getBody();
 } catch (HttpException $ex) {
   echo $ex;
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .addHeader("Accept", "*/*")
  .addHeader("Content-Type", "application/json")
  .addHeader("Authorization", "xxxxxxxxxxxxxWQzZGTG9DS0RGTkYzT2w0XC9KaDU2TUFtc3RnQT0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI2cjZ0bzVmb2UxZ2luNWt0N3Y2Y2JoanNjcyIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoidjNhcGlcL2dlbmVyYWwucGFydG5lciIsImF1dGhfdGltZSI6MTU5MTEwMTg4OCwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tXC91cy1lYXN0LTFfTUd4alFNTTRQIiwiZXhwIjoxNTkxMTA1NDg4LCJpYXQiOjE1OTExMDE4ODgsInZlcnNpb24iOjIsImp0aSI6IjdmOWFiODI3LWIwZjktNDRmYi1iZTcwLTc3OGE5MTg0Y2MwMyIsImNsaWVudF9pZCI6IjZyNnRvNWZvZTFnaW41a3Q3djZjYmhqc2NzIn0.lLvhRdv_k1swxxxxxxxxxxxxxxxxxxxxxxxa3ZjMU4KAXitot-3VCOZ_95rErSmP7aST2oAENKiVEbttq2QJaJqVvuce2sJSx9dstWzlXixeQt5MFwkrzC3vBpT02qBotAUpoEz28zcRft5LFYxFs4Z5ycTzkgmBCdX6GtHL8bj6QihYrsi5wKdO0JatMlyt2cv1qRwN_dAKFrPx9QuXdz2x7Xnip0g7jCZDEJpYFJVe_aAoiutRGJNtpemI70_A42MU9XDTuXg0i75ISStcnjYP27SNtgKyg6So3EOnZLR5nyHeYUE3wTZfMt13wBUIsKvX_SgMgdQLOC7lOhsix8okA,xxxxxxx3N2Yxxxxxxxxxxxxxxxxxx")
  .addHeader("x-api-key", "40a0b12-342b-436d-97c3-000000000000")
  .addHeader("Cache-Control", "no-cache")
  .addHeader("Host", "")
  .addHeader("Accept-Encoding", "gzip, deflate")
  .addHeader("Connection", "keep-alive")
  .addHeader("cache-control", "no-cache")

Response response = client.newCall(request).execute();
curl -X GET \
  '{encoded_account_id}/plan' \
  -H 'Accept: */*' \
  -H 'Accept-Encoding: gzip, deflate' \
  -H 'Authorization: xxxxxxxxxxxxxWQzZGTG9DS0RGTkYzT2w0XC9KaDU2TUFtc3RnQT0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI2cjZ0bzVmb2UxZ2luNWt0N3Y2Y2JoanNjcyIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoidjNhcGlcL2dlbmVyYWwucGFydG5lciIsImF1dGhfdGltZSI6MTU5MTEwMTg4OCwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tXC91cy1lYXN0LTFfTUd4alFNTTRQIiwiZXhwIjoxNTkxMTA1NDg4LCJpYXQiOjE1OTExMDE4ODgsInZlcnNpb24iOjIsImp0aSI6IjdmOWFiODI3LWIwZjktNDRmYi1iZTcwLTc3OGE5MTg0Y2MwMyIsImNsaWVudF9pZCI6IjZyNnRvNWZvZTFnaW41a3Q3djZjYmhqc2NzIn0.lLvhRdv_k1swxxxxxxxxxxxxxxxxxxxxxxxa3ZjMU4KAXitot-3VCOZ_95rErSmP7aST2oAENKiVEbttq2QJaJqVvuce2sJSx9dstWzlXixeQt5MFwkrzC3vBpT02qBotAUpoEz28zcRft5LFYxFs4Z5ycTzkgmBCdX6GtHL8bj6QihYrsi5wKdO0JatMlyt2cv1qRwN_dAKFrPx9QuXdz2x7Xnip0g7jCZDEJpYFJVe_aAoiutRGJNtpemI70_A42MU9XDTuXg0i75ISStcnjYP27SNtgKyg6So3EOnZLR5nyHeYUE3wTZfMt13wBUIsKvX_SgMgdQLOC7lOhsix8okA,xxxxxxx3N2Yxxxxxxxxxxxxxxxxxx' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Content-Type: application/json' \
  -H 'Host:' \
  -H 'cache-control: no-cache' \
  -H 'x-api-key: 40a0b12-342b-436d-97c3-000000000000'

View it! Although technology partner endpoints cannot be tested using our API Reference Tester, response samples and schema are available to view for this endpoint.