---
title: "Payment Organization Subscriptions Create"
method: POST
path: "/payment/organization-subscriptions/"
tags: ["billing"]
---

# Payment Organization Subscriptions Create

`POST /payment/organization-subscriptions/`

POST handler with superadmin-only field protection.

Strips superadmin-only fields from non-superadmin requests before
delegating to OrganizationInjectionMixin.post() for org injection.

## Headers

- `Authorization` string, required

## Request body

- OrganizationSubscriptionDetailRequest
  - `project` string, nullable
  - `subscription_unique_id` string, nullable
  - `subscribed_at` string, date-time, nullable
  - `free_trial_end_at` string, date-time, nullable
  - `plan` union
    - 'none' | 'starter' | 'team' | 'custom' | 'seat_based_free' | 'seat_based_pro' | 'seat_based_team' | 'seat_based_enterprise' | 'seat_based_custom' | 'respan_team' | 'respan_pro' — * `none` - Default * `starter` - Starter * `team` - Team * `custom` - Custom * `seat_based_free` - Seat Based Free * `seat_based_pro` - Seat Based Pro * `seat_based_team` - Seat Based Team * `seat_based_enterprise` - Seat Based Enterprise * `seat_based_custom` - Seat Based Custom * `respan_team` - Respan Team * `respan_pro` - Respan Pro
    - ''
  - `deal_id` string
  - `monthly_recurring_revenue` number, double
  - `expected_annual_contract_value` number, double
  - `customer_ids` string[]
  - `metered_item_id` string, nullable
  - `seat_based_item_id` string, nullable
  - `base_item_id` string, nullable
  - `stripe_customer_id` string
  - `usage_report_subscription_id` string
  - `subscription_id` string
  - `current_period_start` number, double
  - `current_period_end` number, double
  - `current_usage_period_start` number, double
  - `current_usage_period_end` number, double
  - `usage_in_period` number, double
  - `keywordsai_llm_credentials_usage_in_period` number, double
  - `keywordsai_llm_credentials_usage_last_period` number, double
  - `logs_in_period` integer
  - `logs_in_last_period` integer
  - `logs_three_months_ago` integer
  - `customer_user_count` integer
  - `prompt_count` integer
  - `evals_in_period` integer
  - `evals_in_last_period` integer
  - `member_count` integer
  - `past_billing_periods` unknown[]
    - unknown
  - `last_usage_reported` number, double
  - `last_reconciled_at` number, double, nullable
  - `billing_method` 'stripe' | 'invoice' | 'other' — * `stripe` - Stripe * `invoice` - Invoice * `other` - Other
  - `billing_period` 'monthly' | 'yearly' — * `monthly` - Monthly * `yearly` - Yearly
  - `usage_report_interval` 'monthly' | 'yearly' — * `monthly` - Monthly * `yearly` - Yearly
  - `current_period_invoice_amount` number, double
  - `last_period_invoice_amount` number, double
  - `budget` number, double, nullable
  - `credit_balance` number, double — Current available Keywords AI credit balance in USD
  - `custom_log_limit` integer, nullable
  - `custom_plan_name` string
  - `custom_monthly_cost` number, double, nullable
  - `custom_yearly_cost` number, double, nullable
  - `deprecated_subscription_ids` unknown
  - `subscription_bool` boolean
  - `custom_subscription` unknown
  - `custom_bundle` unknown
  - `accumulative_balance` number, double
  - `periodic_invoice_amount` number, double
  - `org` integer, nullable
  - `company_organization` integer, nullable
  - `billing_subscription` integer, nullable — If set, credits and billing are managed by this subscription (company-level billing). NULL means this subscription manages its own billing (is a primary billing subscription).
  - `organization` integer, nullable

## Response `201`

- OrganizationSubscriptionDetail
  - `id` integer, required
  - `project` string, nullable
  - `subscription_unique_id` string, nullable
  - `created_at` string, date-time, nullable, required
  - `subscribed_at` string, date-time, nullable
  - `free_trial_end_at` string, date-time, nullable
  - `log_visibility_cutoff_at` string, date-time, nullable, required
  - `plan` union
    - 'none' | 'starter' | 'team' | 'custom' | 'seat_based_free' | 'seat_based_pro' | 'seat_based_team' | 'seat_based_enterprise' | 'seat_based_custom' | 'respan_team' | 'respan_pro' — * `none` - Default * `starter` - Starter * `team` - Team * `custom` - Custom * `seat_based_free` - Seat Based Free * `seat_based_pro` - Seat Based Pro * `seat_based_team` - Seat Based Team * `seat_based_enterprise` - Seat Based Enterprise * `seat_based_custom` - Seat Based Custom * `respan_team` - Respan Team * `respan_pro` - Respan Pro
    - ''
  - `deal_id` string
  - `monthly_recurring_revenue` number, double
  - `expected_annual_contract_value` number, double
  - `customer_ids` string[]
  - `metered_item_id` string, nullable
  - `seat_based_item_id` string, nullable
  - `base_item_id` string, nullable
  - `stripe_customer_id` string
  - `usage_report_subscription_id` string
  - `subscription_id` string
  - `current_period_start` number, double
  - `current_period_end` number, double
  - `current_usage_period_start` number, double
  - `current_usage_period_end` number, double
  - `usage_in_period` number, double
  - `keywordsai_llm_credentials_usage_in_period` number, double
  - `keywordsai_llm_credentials_usage_last_period` number, double
  - `logs_in_period` integer
  - `logs_in_last_period` integer
  - `logs_three_months_ago` integer
  - `customer_user_count` integer
  - `prompt_count` integer
  - `evals_in_period` integer
  - `evals_in_last_period` integer
  - `member_count` integer
  - `past_billing_periods` unknown[]
    - unknown
  - `last_usage_reported` number, double
  - `last_reconciled_at` number, double, nullable
  - `billing_method` 'stripe' | 'invoice' | 'other' — * `stripe` - Stripe * `invoice` - Invoice * `other` - Other
  - `billing_period` 'monthly' | 'yearly' — * `monthly` - Monthly * `yearly` - Yearly
  - `usage_report_interval` 'monthly' | 'yearly' — * `monthly` - Monthly * `yearly` - Yearly
  - `current_period_invoice_amount` number, double
  - `last_period_invoice_amount` number, double
  - `budget` number, double, nullable
  - `credit_balance` number, double — Current available Keywords AI credit balance in USD
  - `custom_log_limit` integer, nullable
  - `custom_plan_name` string
  - `custom_monthly_cost` number, double, nullable
  - `custom_yearly_cost` number, double, nullable
  - `deprecated_subscription_ids` unknown
  - `subscription_bool` boolean
  - `custom_subscription` unknown
  - `custom_bundle` unknown
  - `accumulative_balance` number, double
  - `periodic_invoice_amount` number, double
  - `org` integer, nullable
  - `company_organization` integer, nullable
  - `billing_subscription` integer, nullable — If set, credits and billing are managed by this subscription (company-level billing). NULL means this subscription manages its own billing (is a primary billing subscription).
  - `organization` integer, nullable

---

[API](https://skmtc.net/keywordsai/apis/api-reference.md) · [All operations](https://skmtc.net/keywordsai/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/keywordsai/api-reference/versions/c26d550029f8/schema)
