---
title: "Create"
method: POST
path: "/v2/issuers/{organizationId}/contentStrategies"
tags: ["Organizations > ContentStrategies"]
---

# Create

`POST /v2/issuers/{organizationId}/contentStrategies`

## Request

- Base URL: `https://rewards-api.getkard.com`
- URL: `https://rewards-api.getkard.com/v2/issuers/{organizationId}/contentStrategies`
- Auth: HTTP bearer

Create a content strategy for the organization. The strategy name must be unique within the organization.

## Path parameters

- `organizationId` string, required

## Request body

- OrganizationsContentStrategiesCreateContentStrategyRequestBody: Request body for creating a content strategy
  - `data` OrganizationsContentStrategiesCreateContentStrategyRequestData, required: Content strategy data structure for creation
    - `type` 'contentStrategy', required: Resource type identifier
    - `attributes` OrganizationsContentStrategiesCreateContentStrategyAttributes, required: Attributes for creating a content strategy
      - `name` string, required: Name of the content strategy (unique within an organization)
      - `sort` 'NEWLY_LIVE' | 'EXPIRING_SOON' | 'HIGHEST_CASHBACK' | 'PERSONALIZED' | 'OFFERS_NEAR_YOU': Sort applied to the offers selected by a content strategy. A strategy may have at most one sort. The v1 starter set covers newly-live, expiring-soon, highest-cashback, personalized, and offers-near-you selections.
      - `filters` OrganizationsContentStrategiesContentStrategyFilters, required: Filters applied when selecting offers for a content strategy
        - `categories` string[]: Merchant categories to include
        - `categoryExclusions` string[]: Merchant categories to exclude
        - `merchants` string[]: Merchant IDs to include
        - `merchantExclusions` string[]: Merchant IDs to exclude
        - `offerFeatures` OrganizationsContentStrategiesOfferFeatures[]: Offer features to filter by
      - `categories` CommonsCategoryOption[], required: Merchant categories to include
      - `categoryExclusions` CommonsCategoryOption[], required: Merchant categories to exclude
      - `merchantExclusions` string[], required: Merchant IDs to exclude

## Response `201`

Created content strategy resource

- OrganizationsContentStrategiesContentStrategyResponse: Content strategy resource response
  - `type` 'contentStrategy', required
  - `id` string, required: Unique identifier of the content strategy (UUID v7)
  - `attributes` OrganizationsContentStrategiesContentStrategyAttributes, required: Attributes for a content strategy
    - `name` string, required: Name of the content strategy (unique within an organization)
    - `organizationId` string, required: ID of the organization this content strategy belongs to
    - `sort` 'NEWLY_LIVE' | 'EXPIRING_SOON' | 'HIGHEST_CASHBACK' | 'PERSONALIZED' | 'OFFERS_NEAR_YOU': Sort applied to the offers selected by a content strategy. A strategy may have at most one sort. The v1 starter set covers newly-live, expiring-soon, highest-cashback, personalized, and offers-near-you selections.
    - `filters` OrganizationsContentStrategiesContentStrategyFilters, required: Filters applied when selecting offers for a content strategy
      - `categories` string[]: Merchant categories to include
      - `categoryExclusions` string[]: Merchant categories to exclude
      - `merchants` string[]: Merchant IDs to include
      - `merchantExclusions` string[]: Merchant IDs to exclude
      - `offerFeatures` OrganizationsContentStrategiesOfferFeatures[]: Offer features to filter by
    - `categories` CommonsCategoryOption[], required: Merchant categories to include
    - `categoryExclusions` CommonsCategoryOption[], required: Merchant categories to exclude
    - `merchantExclusions` string[], required: Merchant IDs to exclude

## Other responses

- `400`: Error response with status 400
- `401`: Error response with status 401
- `403`: Error response with status 403
- `404`: Error response with status 404
- `409`: Error response with status 409
- `429`: The issuer's traffic grew faster than its allowed rate, or the endpoint's own limit was reached. If the response includes a `Retry-After` header, wait that many seconds before retrying. See [Rate Limits](/2024-10-01/api/integration-guides/rate-limits).
- `500`: Error response with status 500

## Changes

- **2026-10-22** `4e87fc8b018b`: 3 info
  - added the new optional request property `data/attributes/filters/merchants`
  - added the non-success response with the status `429`
  - added the optional property `attributes/filters/merchants` to the response with the `201` status

[Operation history](https://skmtc.dev/getkard/apis/getkard-2/changes/v2/issuers/:organizationId/contentStrategies/post.md)

---

[API](https://skmtc.dev/getkard/apis/getkard-2.md) - [All operations](https://skmtc.dev/getkard/apis/getkard-2/llms.txt) - [OpenAPI document](https://skmtc.dev/getkard/apis/getkard-2/revisions/bd47764afa21?raw)
