For the complete documentation index, see llms.txt. This page is also available as Markdown.

Partners

partners api automation

/cloudformation_template

get

Generates CloudFormation template for AWS integration. Creates the necessary IAM role and policy template for setting up AWS access.

Path parameters
org_idstring · uuidRequired
Responses
200

OK

application/json
get/v2/org/{org_id}/partners/onboarding/aws/cloudformation_template
GET /v2/org/{org_id}/partners/onboarding/aws/cloudformation_template HTTP/1.1
Accept: */*
{
  "template": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}

/launch-stack-url

get

Generates AWS CloudFormation launch stack URL. Creates a pre-configured URL to deploy the CloudFormation stack in the AWS console.

Path parameters
org_idstring · uuidRequired
Query parameters
read_onlybooleanOptionalDefault: false
Responses
200

OK

application/json
urlstringRequired
get/v2/org/{org_id}/partners/onboarding/aws/launch-stack-url
GET /v2/org/{org_id}/partners/onboarding/aws/launch-stack-url HTTP/1.1
Accept: */*
{
  "url": "text"
}

/verify

post

Runs AWS onboarding verification process. Creates a new CUR or uses an existing CUR and verifies AWS integration setup and returns validation status for all required features.

Path parameters
org_idstring · uuidRequired
Body
onboarding_idstringOptionalPattern: [0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\Z
account_idstringOptional
read_onlybooleanOptionalDefault: false
Responses
200

OK

application/json
featurestringOptional
statusstring · enumOptionalPossible values:
post/v2/org/{org_id}/partners/onboarding/aws/verify
POST /v2/org/{org_id}/partners/onboarding/aws/verify HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 148

{
  "onboarding_id": "text",
  "account_id": "text",
  "read_only": false,
  "existing_cur": {
    "region": "text",
    "bucket": "text",
    "prefix": "text",
    "report_name": "text"
  }
}
[
  {
    "feature": "text",
    "status": "available",
    "detail": []
  }
]

/auth-url

get

Generates Azure authentication URL for onboarding. Creates or updates Azure onboarding record with tenant and subscription details, then returns the auth URL.

Path parameters
org_idstring · uuidRequired
Query parameters
azure_tenant_idstringRequired
azure_subscription_idstringRequired
read_onlybooleanOptional

Onboard without purchase permissions. The integration can read cost data and existing commitments, but cannot buy or exchange them.

Default: false
Responses
200

OK

application/json
urlstringRequired
prerequisitesstringRequired

What the customer's Azure account must be able to do before consenting. Safe to show them: onboarding fails at /verify if these are not in place.

prerequisites_urlstringRequired
get/v2/org/{org_id}/partners/onboarding/azure/auth-url
GET /v2/org/{org_id}/partners/onboarding/azure/auth-url?azure_tenant_id=text&azure_subscription_id=text HTTP/1.1
Accept: */*
{
  "url": "text",
  "prerequisites": "text",
  "prerequisites_url": "text"
}

/verify

post

Runs Azure onboarding verification process. Executes the complete onboarding workflow and returns validation results for all features.

Path parameters
org_idstring · uuidRequired
Body
azure_account_kindstring · enumOptionalPossible values:
azure_account_idsstring[]Optional
read_onlybooleanOptional

Send false to upgrade an existing read-only integration to write. Omit to leave the permission level alone. Downgrading is not supported: the roles are held per Azure tenant, not per integration.

Responses
200

OK

application/json
featurestringOptional
statusstring · enumOptionalPossible values:
post/v2/org/{org_id}/partners/onboarding/azure/verify
POST /v2/org/{org_id}/partners/onboarding/azure/verify HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 86

{
  "azure_account_kind": "billing_account",
  "azure_account_ids": [
    "text"
  ],
  "read_only": true
}
[
  {
    "feature": "text",
    "status": "available",
    "detail": []
  }
]

/cli-script

get

Returns the az commands a customer runs to grant Archera access without a tenant-wide consent prompt. Use this instead of /auth-url when the customer will not authorize the Archera enterprise app. Call /verify once they have run it.

Path parameters
org_idstring · uuidRequired
Query parameters
azure_tenant_idstringRequired
azure_subscription_idstringRequired
read_onlybooleanRequired

Render the script without purchase permissions. The integration can read cost data and existing commitments, but cannot buy or exchange them.

azure_resource_groupstringOptionalPattern: ^[\w().-]+(?<!\.)$
azure_storage_accountstringOptionalPattern: ^[a-z0-9]{3,24}$
azure_blob_containerstringOptionalPattern: ^[a-z0-9](?!.*--)[a-z0-9-]{1,61}[a-z0-9]$
Responses
200

OK

application/json
scriptstringRequired
get/v2/org/{org_id}/partners/onboarding/azure/cli-script
GET /v2/org/{org_id}/partners/onboarding/azure/cli-script?azure_tenant_id=text&azure_subscription_id=text&read_only=true HTTP/1.1
Accept: */*
{
  "script": "text"
}
Deprecated

/register_child

post

Legacy - use POST /partners/<uuid_str:partner_org_id>/orgs instead. This endpoint will be discontinued soon.

Registers a new child organization under the channel partner. Creates the organization, sets up user memberships, and establishes the partnership relationship.

Path parameters
org_idstring · uuidRequired
Body
companystring · min: 1 · max: 255Required

Name of the child organization. At most 255 characters, and unique across all Archera organizations; a name already in use returns 409. The stored name gains a ' c/o ' suffix, which also counts towards the 255-character limit.

labra_subscription_idstringOptional
emailstring · max: 255 · nullableOptionalDefault: null
Responses
200

OK

application/json
org_idstringOptional
post/v2/org/{org_id}/partners/onboarding/register_child
POST /v2/org/{org_id}/partners/onboarding/register_child HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 62

{
  "company": "text",
  "labra_subscription_id": "text",
  "email": null
}
{
  "org_id": "text"
}

/start

post

Starts the onboarding process for an organization. Creates or retrieves an onboarding record and sets the provider to AWS.

Path parameters
org_idstring · uuidRequired
Responses
200

OK

application/json
onboarding_idstringOptional
post/v2/org/{org_id}/partners/onboarding/start
POST /v2/org/{org_id}/partners/onboarding/start HTTP/1.1
Accept: */*
{
  "onboarding_id": "text"
}

/child-orgs

get

Lists child organizations. This returns all orgs belongs to the channel partner identified by org_id.

Path parameters
org_idstring · uuidRequired
Responses
200

OK

application/json
created_atstring · date-timeRequired
org_idstringRequired
org_namestringRequired
get/v2/org/{org_id}/partners/onboarding/child-orgs
GET /v2/org/{org_id}/partners/onboarding/child-orgs HTTP/1.1
Accept: */*
[
  {
    "created_at": "2026-01-01T00:00:00.000Z",
    "org_id": "text",
    "org_name": "text",
    "org_checklist": [
      {
        "feature": "text",
        "status": "available",
        "detail": []
      }
    ],
    "integration_checklist": {
      "ANY_ADDITIONAL_PROPERTY": [
        {
          "feature": "text",
          "status": "available",
          "detail": []
        }
      ]
    }
  }
]

/account-connection

get

Checks whether a cloud account is already connected to any Archera organization. Call it before creating a customer org to catch accounts that need a re-home.

Path parameters
org_idstring · uuidRequired
Query parameters
providerstring · enumRequiredPossible values:
account_idstringRequired

AWS account ID, Azure tenant ID, or GCP billing account ID.

Responses
200

OK

application/json
providerstring · enumRequiredPossible values:
account_idstringRequired
connectedbooleanRequired
get/v2/org/{org_id}/partners/onboarding/account-connection
GET /v2/org/{org_id}/partners/onboarding/account-connection?provider=aws&account_id=text HTTP/1.1
Accept: */*
{
  "provider": "aws",
  "account_id": "text",
  "connected": true
}
get

Gets recommended purchase plans for a specific provider. Returns the most suitable plan based on the organization and provider requirements.

Path parameters
org_idstring · uuidRequired
Query parameters
providerstring · enumRequiredPossible values:
Responses
200

OK

application/json
executed_viastring,null · enum · nullableRead-onlyRequired

How the plan was submitted. automation means a policy applied it rather than a person, which is what lets a client hide routine automated churn.

Possible values:
submitted_atstring · nullableRead-onlyRequired

When the plan was submitted for purchase. Null while it is a draft. Archera executes submitted plans within 5 business days, so this is the clock a 'where is my purchase' question is measured against.

cancelled_atstring · nullableRead-onlyRequired

When the plan was cancelled; null while it is alive.

cancellation_reasonstring,null · enum · nullableRead-onlyRequired

Why the plan was cancelled: checks_failed, customer_cancelled, duplicate_plan, no_purchasable_orders, partner_cancelled, staff_cancelled or stale_automation. Null while it is alive.

Possible values:
cancellation_messagestring · nullableRead-onlyRequired

Why a cancelled plan closed, in customer terms. Null while the plan is alive. Derived from every check, including the staff-only ones, so the explanation survives without naming a check the caller cannot see.

blockedbooleanRead-onlyRequired

True when the plan is alive but a customer-visible failed check stops it from purchasing until someone acts; see checks. Internal checks do not set this badge. False for cancelled and completed plans.

start_datestring · nullableOptional
end_datestring · nullableOptional
idstring · uuidRequired
data_sourcestring · max: 20Required
namestringRequired
descriptionstring · nullableRequired
segment_idstring · max: 50Required
meta_plan_idstring · nullableRequired
org_idstring · max: 50Required
last_modifiedstring · nullableRequired
plan_typestring · enumRequiredPossible values:
coverage_idstring · nullableRequired
created_atstring · date-timeRequired
is_calculatingbooleanRequired
is_savedbooleanRequired
is_lockedbooleanRequired
max_upfront_costnumberRequired
minimum_upfront_interest_ratenumberRequired
preferred_payment_optionundefined · enumRequiredPossible values:
recommend_within_covered_accountsboolean · nullableRequired
statusstring · enumRequiredPossible values:
is_recommendedbooleanRequired
is_defaultbooleanRequired
is_renewalbooleanRequired
is_cost_estimate_planbooleanRequired
source_cost_estimate_idstring · nullableRequired

Cost estimate this plan was generated from (data_source = 'cost_estimate'); SET NULL survives estimate deletion.

resource_idsstring[]Required
reservation_idsstring[]Required
max_termstringRequired
covered_ondemand_costnumberRequired
before_ondemand_costnumberRequired
before_reserved_costnumberRequired
amortized_costnumberRequired
recurring_costnumberRequired
upfront_costnumberRequired
before_costnumberRequired
after_costnumberRequired
total_costnumberRequired
savingsnumberRequired
feenumberRequired
commitment_coveragenumberRequired
minimum_commitment_costnumberRequired
breakeven_hoursnumberRequired
total_savingsnumberRequired
monthly_savingsnumberRequired
monthly_amortized_costnumberRequired
monthly_feenumberRequired
monthly_before_costnumberRequired
monthly_after_costnumberRequired
total_monthly_before_costnumberRequired
get/v2/org/{org_id}/partners/purchase-plans-v2/recommended
GET /v2/org/{org_id}/partners/purchase-plans-v2/recommended?provider=aws HTTP/1.1
Accept: */*
{
  "executed_via": "user",
  "submitted_at": null,
  "cancelled_at": null,
  "cancellation_reason": "checks_failed",
  "cancellation_message": null,
  "blocked": true,
  "start_date": null,
  "end_date": null,
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "data_source": "text",
  "name": "text",
  "description": null,
  "segment_id": "text",
  "meta_plan_id": null,
  "org_id": "text",
  "last_modified": null,
  "plan_type": "purchase",
  "coverage_id": null,
  "created_at": "2026-01-01T00:00:00.000Z",
  "is_calculating": true,
  "is_saved": true,
  "is_locked": true,
  "max_upfront_cost": 1,
  "minimum_upfront_interest_rate": 1,
  "preferred_payment_option": "No Upfront",
  "included_contract_specs": [
    {
      "commitment_type": "text",
      "properties": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "term": "one_year_gris",
      "payment_option": "no_upfront"
    }
  ],
  "included_contract_terms": [
    "one_year_gris"
  ],
  "recommend_within_covered_accounts": null,
  "status": "new",
  "is_recommended": true,
  "is_default": true,
  "is_renewal": true,
  "is_cost_estimate_plan": true,
  "source_cost_estimate_id": null,
  "source_cost_estimate": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "text",
    "updated_at": "2026-01-01T00:00:00.000Z",
    "deleted_at": null
  },
  "execution_policy": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "org_id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "text",
    "description": null,
    "created_at": "2026-01-01T00:00:00.000Z",
    "last_modified": null,
    "schedule": "quarterly",
    "start_date": null,
    "end_date": null,
    "enabled": true,
    "next_execution_date": null,
    "meta_plan_id": null,
    "segment_id": null,
    "default_plan_name": null,
    "min_savings": null,
    "meta_plan": {
      "id": "text",
      "name": "text",
      "created_at": "2026-01-01T00:00:00.000Z",
      "is_default": true
    },
    "created_by": {
      "id": "text",
      "username": "text",
      "full_name": null
    },
    "plans": [
      {
        "id": "text",
        "name": "text",
        "created_at": "2026-01-01T00:00:00.000Z",
        "executed_via": "user",
        "submitted_at": null,
        "cancelled_at": null,
        "cancellation_reason": "checks_failed",
        "cancellation_message": null,
        "blocked": true,
        "status": "new"
      }
    ],
    "total_savings": null
  },
  "segment": {
    "id": "text",
    "name": "text",
    "created_at": "2026-01-01T00:00:00.000Z",
    "is_default": true,
    "provider": "aws"
  },
  "flagged_actions": [
    {
      "id": "text",
      "org_id": null,
      "user_id": null,
      "provider": null,
      "action_type": null,
      "action_description": null,
      "status": "submitted",
      "creation_time": "2026-01-01T00:00:00.000Z",
      "execution_time": null,
      "execution_info": null,
      "plan_id": "text",
      "plan": {
        "name": "text",
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "is_default": true,
        "status": "new"
      }
    }
  ],
  "created_by": {
    "id": "text",
    "username": "text",
    "full_name": null
  },
  "resource_ids": [
    "text"
  ],
  "reservation_ids": [
    "text"
  ],
  "max_term": "text",
  "all_terms": [
    "one_year_gris"
  ],
  "covered_ondemand_cost": 1,
  "before_ondemand_cost": 1,
  "before_reserved_cost": 1,
  "amortized_cost": 1,
  "recurring_cost": 1,
  "upfront_cost": 1,
  "before_cost": 1,
  "after_cost": 1,
  "total_cost": 1,
  "savings": 1,
  "fee": 1,
  "commitment_coverage": 1,
  "minimum_commitment_cost": 1,
  "breakeven_hours": 1,
  "total_savings": 1,
  "monthly_savings": 1,
  "monthly_amortized_cost": 1,
  "monthly_fee": 1,
  "monthly_before_cost": 1,
  "monthly_after_cost": 1,
  "total_monthly_before_cost": 1,
  "aggregate_metrics": {
    "potential_coverage": 1,
    "current_coverage": 1,
    "summaries": {
      "ANY_ADDITIONAL_PROPERTY": {
        "key": "text",
        "name": "text",
        "provider": "aws",
        "service_name": "text",
        "num_commitments": 1,
        "min_commitment": 1,
        "max_savings": 1,
        "min_savings": 1,
        "upfront_cost": 1,
        "monthly_savings": 1,
        "monthly_commitment": 1,
        "potential_coverage": 1,
        "current_coverage": 1,
        "min_term_hours": 1,
        "max_term_hours": 1,
        "gri_premium": 1
      }
    }
  },
  "summaries": [
    {
      "key": "text",
      "provider": "aws",
      "num_commitments": 1,
      "min_commitment": 1,
      "max_savings": 1,
      "min_savings": 1,
      "upfront_cost": 1,
      "monthly_savings": 1,
      "monthly_commitment": 1,
      "min_term_hours": 1,
      "max_term_hours": 1,
      "gri_premiums": 1,
      "if_all_ondemand_cost": 1,
      "before_ondemand_cost": 1,
      "after_ondemand_cost": 1
    }
  ]
}

/<uuid:plan_id>/purchase

post

Executes purchase of a specific plan by plan ID. Creates or validates user membership and processes the plan purchase.

Path parameters
org_idstring · uuidRequired
plan_idstring · uuidRequired
Body
emailstring · email · max: 255Required

Email of the user executing the purchase

Responses
200

OK

application/json
executed_viastring,null · enum · nullableRead-onlyRequired

How the plan was submitted. automation means a policy applied it rather than a person, which is what lets a client hide routine automated churn.

Possible values:
submitted_atstring · nullableRead-onlyRequired

When the plan was submitted for purchase. Null while it is a draft. Archera executes submitted plans within 5 business days, so this is the clock a 'where is my purchase' question is measured against.

cancelled_atstring · nullableRead-onlyRequired

When the plan was cancelled; null while it is alive.

cancellation_reasonstring,null · enum · nullableRead-onlyRequired

Why the plan was cancelled: checks_failed, customer_cancelled, duplicate_plan, no_purchasable_orders, partner_cancelled, staff_cancelled or stale_automation. Null while it is alive.

Possible values:
cancellation_messagestring · nullableRead-onlyRequired

Why a cancelled plan closed, in customer terms. Null while the plan is alive. Derived from every check, including the staff-only ones, so the explanation survives without naming a check the caller cannot see.

blockedbooleanRead-onlyRequired

True when the plan is alive but a customer-visible failed check stops it from purchasing until someone acts; see checks. Internal checks do not set this badge. False for cancelled and completed plans.

start_datestring · nullableOptional
end_datestring · nullableOptional
idstring · uuidRequired
data_sourcestring · max: 20Required
namestringRequired
descriptionstring · nullableRequired
segment_idstring · max: 50Required
meta_plan_idstring · nullableRequired
org_idstring · max: 50Required
last_modifiedstring · nullableRequired
plan_typestring · enumRequiredPossible values:
coverage_idstring · nullableRequired
created_atstring · date-timeRequired
is_calculatingbooleanRequired
is_savedbooleanRequired
is_lockedbooleanRequired
max_upfront_costnumberRequired
minimum_upfront_interest_ratenumberRequired
preferred_payment_optionundefined · enumRequiredPossible values:
recommend_within_covered_accountsboolean · nullableRequired
statusstring · enumRequiredPossible values:
is_recommendedbooleanRequired
is_defaultbooleanRequired
is_renewalbooleanRequired
is_cost_estimate_planbooleanRequired
source_cost_estimate_idstring · nullableRequired

Cost estimate this plan was generated from (data_source = 'cost_estimate'); SET NULL survives estimate deletion.

resource_idsstring[]Required
reservation_idsstring[]Required
post/v2/org/{org_id}/partners/purchase-plans-v2/{plan_id}/purchase
POST /v2/org/{org_id}/partners/purchase-plans-v2/{plan_id}/purchase HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 26

{
  "email": "name@gmail.com"
}
{
  "executed_via": "user",
  "submitted_at": null,
  "cancelled_at": null,
  "cancellation_reason": "checks_failed",
  "cancellation_message": null,
  "blocked": true,
  "start_date": null,
  "end_date": null,
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "data_source": "text",
  "name": "text",
  "description": null,
  "segment_id": "text",
  "meta_plan_id": null,
  "org_id": "text",
  "last_modified": null,
  "plan_type": "purchase",
  "coverage_id": null,
  "created_at": "2026-01-01T00:00:00.000Z",
  "is_calculating": true,
  "is_saved": true,
  "is_locked": true,
  "max_upfront_cost": 1,
  "minimum_upfront_interest_rate": 1,
  "preferred_payment_option": "No Upfront",
  "included_contract_specs": [
    {
      "commitment_type": "text",
      "properties": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "term": "one_year_gris",
      "payment_option": "no_upfront"
    }
  ],
  "included_contract_terms": [
    "one_year_gris"
  ],
  "recommend_within_covered_accounts": null,
  "status": "new",
  "is_recommended": true,
  "is_default": true,
  "is_renewal": true,
  "is_cost_estimate_plan": true,
  "source_cost_estimate_id": null,
  "source_cost_estimate": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "text",
    "updated_at": "2026-01-01T00:00:00.000Z",
    "deleted_at": null
  },
  "execution_policy": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "org_id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "text",
    "description": null,
    "created_at": "2026-01-01T00:00:00.000Z",
    "last_modified": null,
    "schedule": "quarterly",
    "start_date": null,
    "end_date": null,
    "enabled": true,
    "next_execution_date": null,
    "meta_plan_id": null,
    "segment_id": null,
    "default_plan_name": null,
    "min_savings": null,
    "meta_plan": {
      "id": "text",
      "name": "text",
      "created_at": "2026-01-01T00:00:00.000Z",
      "is_default": true
    },
    "created_by": {
      "id": "text",
      "username": "text",
      "full_name": null
    },
    "plans": [
      {
        "id": "text",
        "name": "text",
        "created_at": "2026-01-01T00:00:00.000Z",
        "executed_via": "user",
        "submitted_at": null,
        "cancelled_at": null,
        "cancellation_reason": "checks_failed",
        "cancellation_message": null,
        "blocked": true,
        "status": "new"
      }
    ],
    "total_savings": null
  },
  "segment": {
    "id": "text",
    "name": "text",
    "created_at": "2026-01-01T00:00:00.000Z",
    "is_default": true,
    "provider": "aws"
  },
  "flagged_actions": [
    {
      "id": "text",
      "org_id": null,
      "user_id": null,
      "provider": null,
      "action_type": null,
      "action_description": null,
      "status": "submitted",
      "creation_time": "2026-01-01T00:00:00.000Z",
      "execution_time": null,
      "execution_info": null,
      "plan_id": "text",
      "plan": {
        "name": "text",
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "is_default": true,
        "status": "new"
      }
    }
  ],
  "created_by": {
    "id": "text",
    "username": "text",
    "full_name": null
  },
  "resource_ids": [
    "text"
  ],
  "reservation_ids": [
    "text"
  ]
}

Partially Update an Organization So far the scope is only limited to marketplace offer links

patch
Path parameters
org_idstring · uuidRequired
Body
aws_marketplace_offer_linkstring · nullableOptional
azure_marketplace_offer_linkstring · nullableOptional
gcp_marketplace_offer_linkstring · nullableOptional
Responses
200

OK

application/json
idstring · uuidRequired
namestringRequired
aws_marketplace_offer_linkstring · nullableRequired
azure_marketplace_offer_linkstring · nullableRequired
gcp_marketplace_offer_linkstring · nullableRequired
patch/v2/org/{org_id}/partners
PATCH /v2/org/{org_id}/partners HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 105

{
  "aws_marketplace_offer_link": null,
  "azure_marketplace_offer_link": null,
  "gcp_marketplace_offer_link": null
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "text",
  "aws_marketplace_offer_link": null,
  "azure_marketplace_offer_link": null,
  "gcp_marketplace_offer_link": null
}

Last updated

Was this helpful?