API ReferenceLegacy v1

Sections

Request fields, responses, and examples for v1 sections.

These v1 operations are active. Use an API key for SDK integrations. See authentication for credentials and store selection, or follow the first request guide.

List all sections

GET
/v1/sections

Authorization

bearerAuth storeAuth
AuthorizationBearer <token>

Provide your SellApp API key as a bearer token.

In: header

X-STORE<token>

Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.

In: header

Query Parameters

limit?integer

Number of items to return per page.

Default15
Range1 <= value <= 100
page?integer

Page number to return.

Default1
Range1 <= value

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://sell.app/api/v1/sections"
{
  "data": [
    {
      "id": 1,
      "title": "Dissection",
      "slug": "dissection",
      "hidden": false,
      "order": 1,
      "created_at": "2022-12-12T12:12:12.000000Z",
      "updated_at": "2022-12-12T12:12:12.000000Z",
      "store_id": 1,
      "groups_linked": 1,
      "products_linked": 1,
      "groups": [
        {
          "id": 1,
          "title": "Project Planning Toolkit",
          "group_products": 1
        }
      ],
      "products": [
        {
          "id": "1",
          "title": "Project Planning Guide",
          "description": "Includes practical examples and a downloadable checklist."
        }
      ]
    }
  ],
  "links": {
    "first": "https://sell.app/api/v1/sections?page=1",
    "last": "https://sell.app/api/v1/sections?page=1",
    "prev": null,
    "next": null
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "path": "https://sell.app/api/v1/sections",
    "per_page": 15,
    "to": 1,
    "total": 1,
    "links": [
      {
        "url": null,
        "label": "&laquo; Previous",
        "active": false
      },
      {
        "url": "https://sell.app/api/v1/sections?page=1",
        "label": "1",
        "active": true
      },
      {
        "url": null,
        "label": "Next &raquo;",
        "active": false
      }
    ]
  }
}
{
  "type": "authentication_error",
  "code": "unauthenticated",
  "message": "Unauthenticated.",
  "status": 401,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}
{
  "type": "authorization_error",
  "code": "forbidden",
  "message": "This action is unauthorized.",
  "status": 403,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#forbidden"
}
{
  "type": "validation_error",
  "code": "validation_failed",
  "message": "The selected product variant id is invalid.",
  "status": 422,
  "param": "product_variant_id",
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#validation-failed",
  "errors": {
    "product_variant_id": [
      "The selected product variant id is invalid."
    ]
  }
}
{
  "type": "rate_limit_error",
  "code": "rate_limit_exceeded",
  "message": "Too Many Attempts.",
  "status": 429,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}
{
  "type": "api_error",
  "code": "api_error",
  "message": "Server Error",
  "status": 500,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#api-error"
}

Create a section

POST
/v1/sections

Authorization

bearerAuth storeAuth
AuthorizationBearer <token>

Provide your SellApp API key as a bearer token.

In: header

X-STORE<token>

Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://sell.app/api/v1/sections" \  -H "Content-Type: application/json" \  -d '{    "title": "Founder resources",    "hidden": false  }'
{
  "data": {
    "id": 1,
    "title": "Founder resources",
    "slug": "founder-resources",
    "hidden": false,
    "order": 1,
    "created_at": "2026-08-30T12:00:01.000000Z",
    "updated_at": "2026-08-30T12:00:01.000000Z",
    "store_id": 1,
    "groups_linked": 0,
    "products_linked": 0,
    "groups": [],
    "products": []
  }
}
{
  "type": "authentication_error",
  "code": "unauthenticated",
  "message": "Unauthenticated.",
  "status": 401,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}
{
  "type": "authorization_error",
  "code": "forbidden",
  "message": "This action is unauthorized.",
  "status": 403,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#forbidden"
}
{
  "type": "validation_error",
  "code": "validation_failed",
  "message": "The selected product variant id is invalid.",
  "status": 422,
  "param": "product_variant_id",
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#validation-failed",
  "errors": {
    "product_variant_id": [
      "The selected product variant id is invalid."
    ]
  }
}
{
  "type": "rate_limit_error",
  "code": "rate_limit_exceeded",
  "message": "Too Many Attempts.",
  "status": 429,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}
{
  "type": "api_error",
  "code": "api_error",
  "message": "Server Error",
  "status": 500,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#api-error"
}

Retrieve a section

GET
/v1/sections/{section}

Authorization

bearerAuth storeAuth
AuthorizationBearer <token>

Provide your SellApp API key as a bearer token.

In: header

X-STORE<token>

Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.

In: header

Path Parameters

section*integer

The section path parameter.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://sell.app/api/v1/sections/1"
{
  "data": {
    "id": 1,
    "title": "Dissection",
    "slug": "dissection",
    "hidden": false,
    "order": 1,
    "created_at": "2022-12-12T12:12:12.000000Z",
    "updated_at": "2022-12-12T12:12:12.000000Z",
    "store_id": 1,
    "groups_linked": 1,
    "products_linked": 1,
    "groups": [
      {
        "id": 1,
        "title": "Project Planning Toolkit",
        "group_products": 1
      }
    ],
    "products": [
      {
        "id": "1",
        "title": "Project Planning Guide",
        "description": "Includes practical examples and a downloadable checklist."
      }
    ]
  }
}
{
  "type": "authentication_error",
  "code": "unauthenticated",
  "message": "Unauthenticated.",
  "status": 401,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}
{
  "type": "authorization_error",
  "code": "forbidden",
  "message": "This action is unauthorized.",
  "status": 403,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#forbidden"
}
{
  "type": "not_found_error",
  "code": "resource_not_found",
  "message": "Not Found.",
  "status": 404,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#resource-not-found"
}
{
  "type": "validation_error",
  "code": "validation_failed",
  "message": "The selected product variant id is invalid.",
  "status": 422,
  "param": "product_variant_id",
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#validation-failed",
  "errors": {
    "product_variant_id": [
      "The selected product variant id is invalid."
    ]
  }
}
{
  "type": "rate_limit_error",
  "code": "rate_limit_exceeded",
  "message": "Too Many Attempts.",
  "status": 429,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}
{
  "type": "api_error",
  "code": "api_error",
  "message": "Server Error",
  "status": 500,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#api-error"
}

Update a section

PATCH
/v1/sections/{section}

Authorization

bearerAuth storeAuth
AuthorizationBearer <token>

Provide your SellApp API key as a bearer token.

In: header

X-STORE<token>

Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.

In: header

Path Parameters

section*integer

The section path parameter.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://sell.app/api/v1/sections/1" \  -H "Content-Type: application/json" \  -d '{    "title": "Founder resources",    "hidden": false  }'
{
  "data": {
    "id": 1,
    "title": "Founder resources",
    "slug": "dissection",
    "hidden": false,
    "order": 1,
    "created_at": "2022-12-12T12:12:12.000000Z",
    "updated_at": "2026-08-30T12:00:01.000000Z",
    "store_id": 1,
    "groups_linked": 1,
    "products_linked": 1,
    "groups": [
      {
        "id": 1,
        "title": "Project Planning Toolkit",
        "group_products": 1
      }
    ],
    "products": [
      {
        "id": "1",
        "title": "Project Planning Guide",
        "description": "Includes practical examples and a downloadable checklist."
      }
    ]
  }
}
{
  "type": "authentication_error",
  "code": "unauthenticated",
  "message": "Unauthenticated.",
  "status": 401,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}
{
  "type": "authorization_error",
  "code": "forbidden",
  "message": "This action is unauthorized.",
  "status": 403,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#forbidden"
}
{
  "type": "not_found_error",
  "code": "resource_not_found",
  "message": "Not Found.",
  "status": 404,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#resource-not-found"
}
{
  "type": "validation_error",
  "code": "validation_failed",
  "message": "The selected product variant id is invalid.",
  "status": 422,
  "param": "product_variant_id",
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#validation-failed",
  "errors": {
    "product_variant_id": [
      "The selected product variant id is invalid."
    ]
  }
}
{
  "type": "rate_limit_error",
  "code": "rate_limit_exceeded",
  "message": "Too Many Attempts.",
  "status": 429,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}
{
  "type": "api_error",
  "code": "api_error",
  "message": "Server Error",
  "status": 500,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#api-error"
}

Delete a section

DELETE
/v1/sections/{section}

Authorization

bearerAuth storeAuth
AuthorizationBearer <token>

Provide your SellApp API key as a bearer token.

In: header

X-STORE<token>

Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.

In: header

Path Parameters

section*integer

The section path parameter.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X DELETE "https://sell.app/api/v1/sections/1"
{
  "data": {
    "id": 1,
    "title": "Dissection",
    "slug": "dissection",
    "hidden": false,
    "order": 1,
    "created_at": "2022-12-12T12:12:12.000000Z",
    "updated_at": "2022-12-12T12:12:12.000000Z",
    "store_id": 1,
    "groups_linked": 1,
    "products_linked": 1,
    "groups": [
      {
        "id": 1,
        "title": "Project Planning Toolkit",
        "group_products": 1
      }
    ],
    "products": [
      {
        "id": "1",
        "title": "Project Planning Guide",
        "description": "Includes practical examples and a downloadable checklist."
      }
    ]
  }
}
{
  "type": "authentication_error",
  "code": "unauthenticated",
  "message": "Unauthenticated.",
  "status": 401,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}
{
  "type": "authorization_error",
  "code": "forbidden",
  "message": "This action is unauthorized.",
  "status": 403,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#forbidden"
}
{
  "type": "not_found_error",
  "code": "resource_not_found",
  "message": "Not Found.",
  "status": 404,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#resource-not-found"
}
{
  "type": "validation_error",
  "code": "validation_failed",
  "message": "The selected product variant id is invalid.",
  "status": 422,
  "param": "product_variant_id",
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#validation-failed",
  "errors": {
    "product_variant_id": [
      "The selected product variant id is invalid."
    ]
  }
}
{
  "type": "rate_limit_error",
  "code": "rate_limit_exceeded",
  "message": "Too Many Attempts.",
  "status": 429,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}
{
  "type": "api_error",
  "code": "api_error",
  "message": "Server Error",
  "status": 500,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#api-error"
}

Update a section

PUT
/v1/sections/{section}

Authorization

bearerAuth storeAuth
AuthorizationBearer <token>

Provide your SellApp API key as a bearer token.

In: header

X-STORE<token>

Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.

In: header

Path Parameters

section*integer

The section path parameter.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://sell.app/api/v1/sections/1" \  -H "Content-Type: application/json" \  -d '{    "title": "Founder resources",    "hidden": false  }'
{
  "data": {
    "id": 1,
    "title": "Founder resources",
    "slug": "dissection",
    "hidden": false,
    "order": 1,
    "created_at": "2022-12-12T12:12:12.000000Z",
    "updated_at": "2026-08-30T12:00:01.000000Z",
    "store_id": 1,
    "groups_linked": 1,
    "products_linked": 1,
    "groups": [
      {
        "id": 1,
        "title": "Project Planning Toolkit",
        "group_products": 1
      }
    ],
    "products": [
      {
        "id": "1",
        "title": "Project Planning Guide",
        "description": "Includes practical examples and a downloadable checklist."
      }
    ]
  }
}
{
  "type": "authentication_error",
  "code": "unauthenticated",
  "message": "Unauthenticated.",
  "status": 401,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}
{
  "type": "authorization_error",
  "code": "forbidden",
  "message": "This action is unauthorized.",
  "status": 403,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#forbidden"
}
{
  "type": "not_found_error",
  "code": "resource_not_found",
  "message": "Not Found.",
  "status": 404,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#resource-not-found"
}
{
  "type": "validation_error",
  "code": "validation_failed",
  "message": "The selected product variant id is invalid.",
  "status": 422,
  "param": "product_variant_id",
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#validation-failed",
  "errors": {
    "product_variant_id": [
      "The selected product variant id is invalid."
    ]
  }
}
{
  "type": "rate_limit_error",
  "code": "rate_limit_exceeded",
  "message": "Too Many Attempts.",
  "status": 429,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}
{
  "type": "api_error",
  "code": "api_error",
  "message": "Server Error",
  "status": 500,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#api-error"
}

Replace section order

PUT
/v1/sections/order

Authorization

bearerAuth storeAuth
AuthorizationBearer <token>

Provide your SellApp API key as a bearer token.

In: header

X-STORE<token>

Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

resources*array<integer>

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://sell.app/api/v1/sections/order" \  -H "Content-Type: application/json" \  -d '{    "resources": [      3,      1,      2    ]  }'
{
  "data": [
    {
      "id": 3,
      "title": "Founder resources 3",
      "slug": "founder-resources-3",
      "hidden": false,
      "order": 1,
      "created_at": "2022-12-12T12:12:12.000000Z",
      "updated_at": "2022-12-12T12:12:12.000000Z",
      "store_id": 1,
      "groups_linked": 1,
      "products_linked": 1,
      "groups": [
        {
          "id": 1,
          "title": "Project Planning Toolkit",
          "group_products": 1
        }
      ],
      "products": [
        {
          "id": "1",
          "title": "Project Planning Guide",
          "description": "Includes practical examples and a downloadable checklist."
        }
      ]
    },
    {
      "id": 1,
      "title": "Founder resources 1",
      "slug": "founder-resources-1",
      "hidden": false,
      "order": 2,
      "created_at": "2022-12-12T12:12:12.000000Z",
      "updated_at": "2022-12-12T12:12:12.000000Z",
      "store_id": 1,
      "groups_linked": 1,
      "products_linked": 1,
      "groups": [
        {
          "id": 1,
          "title": "Project Planning Toolkit",
          "group_products": 1
        }
      ],
      "products": [
        {
          "id": "1",
          "title": "Project Planning Guide",
          "description": "Includes practical examples and a downloadable checklist."
        }
      ]
    },
    {
      "id": 2,
      "title": "Founder resources 2",
      "slug": "founder-resources-2",
      "hidden": false,
      "order": 3,
      "created_at": "2022-12-12T12:12:12.000000Z",
      "updated_at": "2022-12-12T12:12:12.000000Z",
      "store_id": 1,
      "groups_linked": 1,
      "products_linked": 1,
      "groups": [
        {
          "id": 1,
          "title": "Project Planning Toolkit",
          "group_products": 1
        }
      ],
      "products": [
        {
          "id": "1",
          "title": "Project Planning Guide",
          "description": "Includes practical examples and a downloadable checklist."
        }
      ]
    }
  ]
}
{
  "type": "authentication_error",
  "code": "unauthenticated",
  "message": "Unauthenticated.",
  "status": 401,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}
{
  "type": "authorization_error",
  "code": "forbidden",
  "message": "This action is unauthorized.",
  "status": 403,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#forbidden"
}
{
  "type": "validation_error",
  "code": "validation_failed",
  "message": "The selected product variant id is invalid.",
  "status": 422,
  "param": "product_variant_id",
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#validation-failed",
  "errors": {
    "product_variant_id": [
      "The selected product variant id is invalid."
    ]
  }
}
{
  "type": "rate_limit_error",
  "code": "rate_limit_exceeded",
  "message": "Too Many Attempts.",
  "status": 429,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}
{
  "type": "api_error",
  "code": "api_error",
  "message": "Server Error",
  "status": 500,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#api-error"
}

Replace section products

PUT
/v1/sections/{section}/products

Authorization

bearerAuth storeAuth
AuthorizationBearer <token>

Provide your SellApp API key as a bearer token.

In: header

X-STORE<token>

Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.

In: header

Path Parameters

section*integer

The section path parameter.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

resources*array<integer>

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://sell.app/api/v1/sections/0/products" \  -H "Content-Type: application/json" \  -d '{    "resources": [      3,      1,      2    ]  }'
{
  "data": {
    "id": 1,
    "title": "Dissection",
    "slug": "dissection",
    "hidden": false,
    "order": 1,
    "created_at": "2022-12-12T12:12:12.000000Z",
    "updated_at": "2022-12-12T12:12:12.000000Z",
    "store_id": 1,
    "groups_linked": 1,
    "products_linked": 3,
    "groups": [
      {
        "id": 1,
        "title": "Project Planning Toolkit",
        "group_products": 1
      }
    ],
    "products": [
      {
        "id": "3",
        "title": "Project Planning Guide",
        "description": "Includes practical examples and a downloadable checklist."
      },
      {
        "id": "1",
        "title": "Project Planning Guide",
        "description": "Includes practical examples and a downloadable checklist."
      },
      {
        "id": "2",
        "title": "Project Planning Guide",
        "description": "Includes practical examples and a downloadable checklist."
      }
    ]
  }
}
{
  "type": "authentication_error",
  "code": "unauthenticated",
  "message": "Unauthenticated.",
  "status": 401,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}
{
  "type": "authorization_error",
  "code": "forbidden",
  "message": "This action is unauthorized.",
  "status": 403,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#forbidden"
}
{
  "type": "not_found_error",
  "code": "resource_not_found",
  "message": "Not Found.",
  "status": 404,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#resource-not-found"
}
{
  "type": "validation_error",
  "code": "validation_failed",
  "message": "The selected product variant id is invalid.",
  "status": 422,
  "param": "product_variant_id",
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#validation-failed",
  "errors": {
    "product_variant_id": [
      "The selected product variant id is invalid."
    ]
  }
}
{
  "type": "rate_limit_error",
  "code": "rate_limit_exceeded",
  "message": "Too Many Attempts.",
  "status": 429,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}
{
  "type": "api_error",
  "code": "api_error",
  "message": "Server Error",
  "status": 500,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#api-error"
}

Replace section groups

PUT
/v1/sections/{section}/groups

Authorization

bearerAuth storeAuth
AuthorizationBearer <token>

Provide your SellApp API key as a bearer token.

In: header

X-STORE<token>

Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.

In: header

Path Parameters

section*integer

The section path parameter.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

resources*array<integer>

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://sell.app/api/v1/sections/0/groups" \  -H "Content-Type: application/json" \  -d '{    "resources": [      3,      1,      2    ]  }'
{
  "data": {
    "id": 1,
    "title": "Dissection",
    "slug": "dissection",
    "hidden": false,
    "order": 1,
    "created_at": "2022-12-12T12:12:12.000000Z",
    "updated_at": "2022-12-12T12:12:12.000000Z",
    "store_id": 1,
    "groups_linked": 3,
    "products_linked": 1,
    "groups": [
      {
        "id": 3,
        "title": "Project Planning Toolkit",
        "group_products": 1
      },
      {
        "id": 1,
        "title": "Project Planning Toolkit",
        "group_products": 1
      },
      {
        "id": 2,
        "title": "Project Planning Toolkit",
        "group_products": 1
      }
    ],
    "products": [
      {
        "id": "1",
        "title": "Project Planning Guide",
        "description": "Includes practical examples and a downloadable checklist."
      }
    ]
  }
}
{
  "type": "authentication_error",
  "code": "unauthenticated",
  "message": "Unauthenticated.",
  "status": 401,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}
{
  "type": "authorization_error",
  "code": "forbidden",
  "message": "This action is unauthorized.",
  "status": 403,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#forbidden"
}
{
  "type": "not_found_error",
  "code": "resource_not_found",
  "message": "Not Found.",
  "status": 404,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#resource-not-found"
}
{
  "type": "validation_error",
  "code": "validation_failed",
  "message": "The selected product variant id is invalid.",
  "status": 422,
  "param": "product_variant_id",
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#validation-failed",
  "errors": {
    "product_variant_id": [
      "The selected product variant id is invalid."
    ]
  }
}
{
  "type": "rate_limit_error",
  "code": "rate_limit_exceeded",
  "message": "Too Many Attempts.",
  "status": 429,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}
{
  "type": "api_error",
  "code": "api_error",
  "message": "Server Error",
  "status": 500,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#api-error"
}

Search sections

POST
/v1/sections/search

Authorization

bearerAuth storeAuth
AuthorizationBearer <token>

Provide your SellApp API key as a bearer token.

In: header

X-STORE<token>

Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://sell.app/api/v1/sections/search" \  -H "Content-Type: application/json" \  -d '{    "filters": [      {        "field": "id",        "operator": "=",        "value": 1      }    ],    "sort": [      {        "field": "created_at",        "direction": "desc"      }    ]  }'
{
  "data": [
    {
      "id": 1,
      "title": "Dissection",
      "slug": "dissection",
      "hidden": false,
      "order": 1,
      "created_at": "2022-12-12T12:12:12.000000Z",
      "updated_at": "2022-12-12T12:12:12.000000Z",
      "store_id": 1,
      "groups_linked": 1,
      "products_linked": 1,
      "groups": [
        {
          "id": 1,
          "title": "Project Planning Toolkit",
          "group_products": 1
        }
      ],
      "products": [
        {
          "id": "1",
          "title": "Project Planning Guide",
          "description": "Includes practical examples and a downloadable checklist."
        }
      ]
    }
  ],
  "links": {
    "first": "https://sell.app/api/v1/sections/search?page=1",
    "last": "https://sell.app/api/v1/sections/search?page=1",
    "prev": null,
    "next": null
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "path": "https://sell.app/api/v1/sections/search",
    "per_page": 20,
    "to": 1,
    "total": 1,
    "links": [
      {
        "url": null,
        "label": "&laquo; Previous",
        "active": false
      },
      {
        "url": "https://sell.app/api/v1/sections/search?page=1",
        "label": "1",
        "active": true
      },
      {
        "url": null,
        "label": "Next &raquo;",
        "active": false
      }
    ]
  }
}
{
  "type": "authentication_error",
  "code": "unauthenticated",
  "message": "Unauthenticated.",
  "status": 401,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}
{
  "type": "authorization_error",
  "code": "forbidden",
  "message": "This action is unauthorized.",
  "status": 403,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#forbidden"
}
{
  "type": "validation_error",
  "code": "validation_failed",
  "message": "The selected product variant id is invalid.",
  "status": 422,
  "param": "product_variant_id",
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#validation-failed",
  "errors": {
    "product_variant_id": [
      "The selected product variant id is invalid."
    ]
  }
}
{
  "type": "rate_limit_error",
  "code": "rate_limit_exceeded",
  "message": "Too Many Attempts.",
  "status": 429,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}
{
  "type": "api_error",
  "code": "api_error",
  "message": "Server Error",
  "status": 500,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#api-error"
}

Batch create sections

POST
/v1/sections/batch

Authorization

bearerAuth storeAuth
AuthorizationBearer <token>

Provide your SellApp API key as a bearer token.

In: header

X-STORE<token>

Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://sell.app/api/v1/sections/batch" \  -H "Content-Type: application/json" \  -d '{    "resources": [      {        "title": "Featured",        "hidden": false      }    ]  }'
{
  "data": [
    {
      "id": 1,
      "title": "Featured",
      "slug": "featured",
      "hidden": false,
      "order": 1,
      "created_at": "2026-08-30T12:00:01.000000Z",
      "updated_at": "2026-08-30T12:00:01.000000Z",
      "store_id": 1,
      "groups_linked": 0,
      "products_linked": 0,
      "groups": [],
      "products": []
    }
  ]
}
{
  "data": [
    {
      "id": 1,
      "title": "Featured",
      "slug": "featured",
      "hidden": false,
      "order": 1,
      "created_at": "2026-08-30T12:00:01.000000Z",
      "updated_at": "2026-08-30T12:00:01.000000Z",
      "store_id": 1,
      "groups_linked": 0,
      "products_linked": 0,
      "groups": [],
      "products": []
    }
  ]
}
{
  "type": "authentication_error",
  "code": "unauthenticated",
  "message": "Unauthenticated.",
  "status": 401,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}
{
  "type": "authorization_error",
  "code": "forbidden",
  "message": "This action is unauthorized.",
  "status": 403,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#forbidden"
}
{
  "type": "validation_error",
  "code": "validation_failed",
  "message": "The selected product variant id is invalid.",
  "status": 422,
  "param": "product_variant_id",
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#validation-failed",
  "errors": {
    "product_variant_id": [
      "The selected product variant id is invalid."
    ]
  }
}
{
  "type": "rate_limit_error",
  "code": "rate_limit_exceeded",
  "message": "Too Many Attempts.",
  "status": 429,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}
{
  "type": "api_error",
  "code": "api_error",
  "message": "Server Error",
  "status": 500,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#api-error"
}

Batch update sections

PATCH
/v1/sections/batch

Authorization

bearerAuth storeAuth
AuthorizationBearer <token>

Provide your SellApp API key as a bearer token.

In: header

X-STORE<token>

Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://sell.app/api/v1/sections/batch" \  -H "Content-Type: application/json" \  -d '{    "resources": {      "1": {        "title": "Featured",        "hidden": false      }    }  }'
{
  "data": [
    {
      "id": 1,
      "title": "Featured",
      "slug": "dissection",
      "hidden": false,
      "order": 1,
      "created_at": "2022-12-12T12:12:12.000000Z",
      "updated_at": "2026-08-30T12:00:01.000000Z",
      "store_id": 1,
      "groups_linked": 1,
      "products_linked": 1,
      "groups": [
        {
          "id": 1,
          "title": "Project Planning Toolkit",
          "group_products": 1
        }
      ],
      "products": [
        {
          "id": "1",
          "title": "Project Planning Guide",
          "description": "Includes practical examples and a downloadable checklist."
        }
      ]
    }
  ]
}
{
  "type": "authentication_error",
  "code": "unauthenticated",
  "message": "Unauthenticated.",
  "status": 401,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}
{
  "type": "authorization_error",
  "code": "forbidden",
  "message": "This action is unauthorized.",
  "status": 403,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#forbidden"
}
{
  "type": "validation_error",
  "code": "validation_failed",
  "message": "The selected product variant id is invalid.",
  "status": 422,
  "param": "product_variant_id",
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#validation-failed",
  "errors": {
    "product_variant_id": [
      "The selected product variant id is invalid."
    ]
  }
}
{
  "type": "rate_limit_error",
  "code": "rate_limit_exceeded",
  "message": "Too Many Attempts.",
  "status": 429,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}
{
  "type": "api_error",
  "code": "api_error",
  "message": "Server Error",
  "status": 500,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#api-error"
}

Batch delete sections

DELETE
/v1/sections/batch

Authorization

bearerAuth storeAuth
AuthorizationBearer <token>

Provide your SellApp API key as a bearer token.

In: header

X-STORE<token>

Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

resources*array<integer>

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X DELETE "https://sell.app/api/v1/sections/batch" \  -H "Content-Type: application/json" \  -d '{    "resources": [      1,      2    ]  }'
{
  "data": [
    {
      "id": 1,
      "title": "Dissection",
      "slug": "dissection",
      "hidden": false,
      "order": 1,
      "created_at": "2022-12-12T12:12:12.000000Z",
      "updated_at": "2026-08-30T12:00:01.000000Z",
      "store_id": 1,
      "groups_linked": 1,
      "products_linked": 1,
      "groups": [
        {
          "id": 1,
          "title": "Project Planning Toolkit",
          "group_products": 1
        }
      ],
      "products": [
        {
          "id": "1",
          "title": "Project Planning Guide",
          "description": "Includes practical examples and a downloadable checklist."
        }
      ],
      "deleted_at": "2026-08-30T12:00:01.000000Z"
    },
    {
      "id": 2,
      "title": "Dissection",
      "slug": "dissection-2",
      "hidden": false,
      "order": 1,
      "created_at": "2022-12-12T12:12:12.000000Z",
      "updated_at": "2026-08-30T12:00:01.000000Z",
      "store_id": 1,
      "groups_linked": 1,
      "products_linked": 1,
      "groups": [
        {
          "id": 1,
          "title": "Project Planning Toolkit",
          "group_products": 1
        }
      ],
      "products": [
        {
          "id": "1",
          "title": "Project Planning Guide",
          "description": "Includes practical examples and a downloadable checklist."
        }
      ],
      "deleted_at": "2026-08-30T12:00:01.000000Z"
    }
  ]
}
{
  "type": "authentication_error",
  "code": "unauthenticated",
  "message": "Unauthenticated.",
  "status": 401,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}
{
  "type": "authorization_error",
  "code": "forbidden",
  "message": "This action is unauthorized.",
  "status": 403,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#forbidden"
}
{
  "type": "validation_error",
  "code": "validation_failed",
  "message": "The selected product variant id is invalid.",
  "status": 422,
  "param": "product_variant_id",
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#validation-failed",
  "errors": {
    "product_variant_id": [
      "The selected product variant id is invalid."
    ]
  }
}
{
  "type": "rate_limit_error",
  "code": "rate_limit_exceeded",
  "message": "Too Many Attempts.",
  "status": 429,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}
{
  "type": "api_error",
  "code": "api_error",
  "message": "Server Error",
  "status": 500,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#api-error"
}