Sherpo customer API

Every operation acts for one signed-in customer of one store, under /v1/stores/{store}, where {store} is one of the store's hostnames; those that also take a publishable key read the store as a visitor does, before anyone signs in. Start with authentication; failures follow the errors guide.

checkout

POST/v1/stores/{store}/checkouts

Opens a cart in one currency. Scope checkout:write.

ParameterIn
storepathrequiredA hostname of the store.

Body

Schema
{
  "type": "object",
  "properties": {
    "currency": {
      "type": "string",
      "minLength": 3,
      "maxLength": 3,
      "pattern": "^[A-Za-z]{3}$"
    }
  },
  "required": [
    "currency"
  ],
  "additionalProperties": false
}

201

Schema
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "x-extensible-enum": [
        "paid",
        "expired",
        "open",
        "frozen",
        "abandoned"
      ]
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "product": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "category": {
                    "type": "string"
                  },
                  "deleted": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "slug",
                  "title",
                  "category",
                  "deleted"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "price_id": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          },
          "amount": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "discount_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "total": {
            "type": "number"
          },
          "mode": {
            "type": "string",
            "x-extensible-enum": [
              "purchase",
              "upgrade",
              "renewal"
            ]
          }
        },
        "required": [
          "product",
          "id",
          "product_id",
          "price_id",
          "quantity",
          "amount",
          "discount",
          "discount_id",
          "total",
          "mode"
        ]
      }
    },
    "totals": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "number"
        },
        "discount": {
          "type": "number"
        },
        "total": {
          "type": "number"
        }
      },
      "required": [
        "amount",
        "discount",
        "total"
      ]
    },
    "id": {
      "type": "string"
    },
    "currency": {
      "type": "string"
    },
    "exponent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "coupon": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "refund_waiver": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "policy": {
              "description": "The strictest policy among the lines, the one consented to.",
              "type": "string"
            },
            "accepted_at": {
              "type": "string"
            }
          },
          "required": [
            "policy",
            "accepted_at"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "expires_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "status",
    "items",
    "totals",
    "id",
    "currency",
    "exponent",
    "coupon",
    "refund_waiver",
    "expires_at",
    "created_at",
    "updated_at"
  ]
}

PUT/v1/stores/{store}/checkouts/{checkout}/items

Puts a price in a cart at the offer the customer gets now; zero removes the line. Scope checkout:write.

ParameterIn
storepathrequiredA hostname of the store.
checkoutpathrequired

Body

Schema
{
  "type": "object",
  "properties": {
    "price": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512
        }
      },
      "required": [
        "id"
      ],
      "additionalProperties": false
    },
    "quantity": {
      "description": "Zero removes the line.",
      "type": "integer",
      "minimum": 0,
      "maximum": 99
    }
  },
  "required": [
    "price"
  ],
  "additionalProperties": false
}

200

Schema
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "x-extensible-enum": [
        "paid",
        "expired",
        "open",
        "frozen",
        "abandoned"
      ]
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "product": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "category": {
                    "type": "string"
                  },
                  "deleted": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "slug",
                  "title",
                  "category",
                  "deleted"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "price_id": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          },
          "amount": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "discount_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "total": {
            "type": "number"
          },
          "mode": {
            "type": "string",
            "x-extensible-enum": [
              "purchase",
              "upgrade",
              "renewal"
            ]
          }
        },
        "required": [
          "product",
          "id",
          "product_id",
          "price_id",
          "quantity",
          "amount",
          "discount",
          "discount_id",
          "total",
          "mode"
        ]
      }
    },
    "totals": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "number"
        },
        "discount": {
          "type": "number"
        },
        "total": {
          "type": "number"
        }
      },
      "required": [
        "amount",
        "discount",
        "total"
      ]
    },
    "id": {
      "type": "string"
    },
    "currency": {
      "type": "string"
    },
    "exponent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "coupon": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "refund_waiver": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "policy": {
              "description": "The strictest policy among the lines, the one consented to.",
              "type": "string"
            },
            "accepted_at": {
              "type": "string"
            }
          },
          "required": [
            "policy",
            "accepted_at"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "expires_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "status",
    "items",
    "totals",
    "id",
    "currency",
    "exponent",
    "coupon",
    "refund_waiver",
    "expires_at",
    "created_at",
    "updated_at"
  ]
}

PUT/v1/stores/{store}/checkouts/{checkout}/coupon

Names a coupon on a cart, or takes it off with null. Scope checkout:write.

ParameterIn
storepathrequiredA hostname of the store.
checkoutpathrequired

Body

Schema
{
  "type": "object",
  "properties": {
    "code": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "code"
  ],
  "additionalProperties": false
}

200

Schema
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "x-extensible-enum": [
        "paid",
        "expired",
        "open",
        "frozen",
        "abandoned"
      ]
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "product": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "category": {
                    "type": "string"
                  },
                  "deleted": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "slug",
                  "title",
                  "category",
                  "deleted"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "price_id": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          },
          "amount": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "discount_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "total": {
            "type": "number"
          },
          "mode": {
            "type": "string",
            "x-extensible-enum": [
              "purchase",
              "upgrade",
              "renewal"
            ]
          }
        },
        "required": [
          "product",
          "id",
          "product_id",
          "price_id",
          "quantity",
          "amount",
          "discount",
          "discount_id",
          "total",
          "mode"
        ]
      }
    },
    "totals": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "number"
        },
        "discount": {
          "type": "number"
        },
        "total": {
          "type": "number"
        }
      },
      "required": [
        "amount",
        "discount",
        "total"
      ]
    },
    "id": {
      "type": "string"
    },
    "currency": {
      "type": "string"
    },
    "exponent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "coupon": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "refund_waiver": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "policy": {
              "description": "The strictest policy among the lines, the one consented to.",
              "type": "string"
            },
            "accepted_at": {
              "type": "string"
            }
          },
          "required": [
            "policy",
            "accepted_at"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "expires_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "status",
    "items",
    "totals",
    "id",
    "currency",
    "exponent",
    "coupon",
    "refund_waiver",
    "expires_at",
    "created_at",
    "updated_at"
  ]
}

POST/v1/stores/{store}/checkouts/{checkout}/freeze

Presents a cart for payment: its lines must still price as frozen, then it stops changing. Scope checkout:write.

ParameterIn
storepathrequiredA hostname of the store.
checkoutpathrequired

Body

Schema
{
  "type": "object",
  "properties": {
    "refund_waiver": {
      "description": "The buyer's consent to a refund policy shorter than the statutory window.",
      "type": "boolean"
    }
  },
  "additionalProperties": false
}

200

Schema
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "x-extensible-enum": [
        "paid",
        "expired",
        "open",
        "frozen",
        "abandoned"
      ]
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "product": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "category": {
                    "type": "string"
                  },
                  "deleted": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "slug",
                  "title",
                  "category",
                  "deleted"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "price_id": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          },
          "amount": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "discount_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "total": {
            "type": "number"
          },
          "mode": {
            "type": "string",
            "x-extensible-enum": [
              "purchase",
              "upgrade",
              "renewal"
            ]
          }
        },
        "required": [
          "product",
          "id",
          "product_id",
          "price_id",
          "quantity",
          "amount",
          "discount",
          "discount_id",
          "total",
          "mode"
        ]
      }
    },
    "totals": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "number"
        },
        "discount": {
          "type": "number"
        },
        "total": {
          "type": "number"
        }
      },
      "required": [
        "amount",
        "discount",
        "total"
      ]
    },
    "id": {
      "type": "string"
    },
    "currency": {
      "type": "string"
    },
    "exponent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "coupon": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "refund_waiver": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "policy": {
              "description": "The strictest policy among the lines, the one consented to.",
              "type": "string"
            },
            "accepted_at": {
              "type": "string"
            }
          },
          "required": [
            "policy",
            "accepted_at"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "expires_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "status",
    "items",
    "totals",
    "id",
    "currency",
    "exponent",
    "coupon",
    "refund_waiver",
    "expires_at",
    "created_at",
    "updated_at"
  ]
}

POST/v1/stores/{store}/checkouts/{checkout}/abandon

Gives a cart up; a frozen one hands its coupons back. Scope checkout:write.

ParameterIn
storepathrequiredA hostname of the store.
checkoutpathrequired

Body

Schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

200

Schema
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "x-extensible-enum": [
        "paid",
        "expired",
        "open",
        "frozen",
        "abandoned"
      ]
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "product": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "category": {
                    "type": "string"
                  },
                  "deleted": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "slug",
                  "title",
                  "category",
                  "deleted"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "price_id": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          },
          "amount": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "discount_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "total": {
            "type": "number"
          },
          "mode": {
            "type": "string",
            "x-extensible-enum": [
              "purchase",
              "upgrade",
              "renewal"
            ]
          }
        },
        "required": [
          "product",
          "id",
          "product_id",
          "price_id",
          "quantity",
          "amount",
          "discount",
          "discount_id",
          "total",
          "mode"
        ]
      }
    },
    "totals": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "number"
        },
        "discount": {
          "type": "number"
        },
        "total": {
          "type": "number"
        }
      },
      "required": [
        "amount",
        "discount",
        "total"
      ]
    },
    "id": {
      "type": "string"
    },
    "currency": {
      "type": "string"
    },
    "exponent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "coupon": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "refund_waiver": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "policy": {
              "description": "The strictest policy among the lines, the one consented to.",
              "type": "string"
            },
            "accepted_at": {
              "type": "string"
            }
          },
          "required": [
            "policy",
            "accepted_at"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "expires_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "status",
    "items",
    "totals",
    "id",
    "currency",
    "exponent",
    "coupon",
    "refund_waiver",
    "expires_at",
    "created_at",
    "updated_at"
  ]
}

POST/v1/stores/{store}/checkouts/{checkout}/pay

Starts paying a frozen cart, answering what the buyer's page confirms with the processor, or the order when nothing is due. Scope checkout:write.

ParameterIn
storepathrequiredA hostname of the store.
checkoutpathrequired

Body

Schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

200

Schema
{
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "paid"
        },
        "order": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "number": {
              "type": "number"
            }
          },
          "required": [
            "id",
            "number"
          ]
        }
      },
      "required": [
        "status",
        "order"
      ]
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "x-extensible-enum": [
            "requires_payment",
            "processing"
          ]
        },
        "payment": {
          "type": "object",
          "properties": {
            "processor": {
              "type": "string",
              "x-extensible-enum": [
                "stripe"
              ]
            },
            "client_secret": {
              "type": "string"
            },
            "publishable_key": {
              "type": "string"
            },
            "account": {
              "type": "string"
            },
            "amount": {
              "type": "number"
            },
            "currency": {
              "type": "string"
            },
            "exponent": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "processor",
            "client_secret",
            "publishable_key",
            "account",
            "amount",
            "currency",
            "exponent"
          ]
        }
      },
      "required": [
        "status",
        "payment"
      ]
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "x-extensible-enum": [
            "cancelled",
            "refunded",
            "refund_pending",
            "refund_failed"
          ]
        }
      },
      "required": [
        "status"
      ]
    }
  ]
}

POST/v1/stores/{store}/checkouts/{checkout}/confirm

Reads a cart's payment back after the buyer's page confirmed it, answering the order once it is paid. Scope checkout:write.

ParameterIn
storepathrequiredA hostname of the store.
checkoutpathrequired

Body

Schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

200

Schema
{
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "paid"
        },
        "order": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "number": {
              "type": "number"
            }
          },
          "required": [
            "id",
            "number"
          ]
        }
      },
      "required": [
        "status",
        "order"
      ]
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "x-extensible-enum": [
            "requires_payment",
            "processing"
          ]
        },
        "payment": {
          "type": "object",
          "properties": {
            "processor": {
              "type": "string",
              "x-extensible-enum": [
                "stripe"
              ]
            },
            "client_secret": {
              "type": "string"
            },
            "publishable_key": {
              "type": "string"
            },
            "account": {
              "type": "string"
            },
            "amount": {
              "type": "number"
            },
            "currency": {
              "type": "string"
            },
            "exponent": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "processor",
            "client_secret",
            "publishable_key",
            "account",
            "amount",
            "currency",
            "exponent"
          ]
        }
      },
      "required": [
        "status",
        "payment"
      ]
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "x-extensible-enum": [
            "cancelled",
            "refunded",
            "refund_pending",
            "refund_failed"
          ]
        }
      },
      "required": [
        "status"
      ]
    }
  ]
}

contact

POST/v1/stores/{store}/contacts/add

Adds an email address to the customer and mails it a code to prove it. Scope contact:write.

ParameterIn
storepathrequiredA hostname of the store.

Body

Schema
{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "const": "email"
    },
    "value": {
      "type": "string",
      "minLength": 1,
      "maxLength": 254,
      "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$"
    }
  },
  "required": [
    "kind",
    "value"
  ],
  "additionalProperties": false
}

200

Schema
{
  "type": "object",
  "properties": {
    "expires_at": {
      "type": "string"
    }
  },
  "required": [
    "expires_at"
  ]
}

POST/v1/stores/{store}/contacts/verify

Proves an email address with the code mailed to it. Scope contact:write.

ParameterIn
storepathrequiredA hostname of the store.

Body

Schema
{
  "type": "object",
  "properties": {
    "value": {
      "type": "string",
      "minLength": 1,
      "maxLength": 254,
      "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$"
    },
    "code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    }
  },
  "required": [
    "value",
    "code"
  ],
  "additionalProperties": false
}

200

Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "kind": {
        "type": "string",
        "x-extensible-enum": [
          "email",
          "phone"
        ]
      },
      "value": {
        "type": "string"
      },
      "verified_at": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      }
    },
    "required": [
      "kind",
      "value",
      "verified_at"
    ]
  }
}

POST/v1/stores/{store}/contacts/remove

Removes one of the customer's email addresses, never the last proven one. Scope contact:write.

ParameterIn
storepathrequiredA hostname of the store.

Body

Schema
{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "const": "email"
    },
    "value": {
      "type": "string",
      "minLength": 1,
      "maxLength": 254,
      "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$"
    }
  },
  "required": [
    "kind",
    "value"
  ],
  "additionalProperties": false
}

200

Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "kind": {
        "type": "string",
        "x-extensible-enum": [
          "email",
          "phone"
        ]
      },
      "value": {
        "type": "string"
      },
      "verified_at": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      }
    },
    "required": [
      "kind",
      "value",
      "verified_at"
    ]
  }
}

profile

PATCH/v1/stores/{store}/profile

Updates the customer's name and preferences. Scope profile:write.

ParameterIn
storepathrequiredA hostname of the store.

Body

Schema
{
  "type": "object",
  "properties": {
    "display_name": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        {
          "type": "null"
        }
      ]
    },
    "locale": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 35
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "additionalProperties": false
}

200

Schema
{
  "type": "object",
  "properties": {
    "contacts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "x-extensible-enum": [
              "email",
              "phone"
            ]
          },
          "value": {
            "type": "string"
          },
          "verified_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "kind",
          "value",
          "verified_at"
        ]
      }
    },
    "id": {
      "type": "string"
    },
    "display_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "locale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "country": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "contacts",
    "id",
    "display_name",
    "locale",
    "country",
    "created_at"
  ]
}

progress

POST/v1/stores/{store}/entries/{entry}/complete

Marks an entry complete for the customer. Scope progress:write.

ParameterIn
storepathrequiredA hostname of the store.
entrypathrequired

Body

Schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

200

Schema
{
  "type": "object",
  "properties": {
    "entry_id": {
      "type": "string"
    },
    "product_id": {
      "type": "string"
    },
    "completed_at": {
      "type": "string"
    },
    "certificates": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "certificate_id": {
            "type": "string"
          },
          "score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "attempt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "issued_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "certificate_id",
          "score",
          "attempt",
          "issued_at"
        ]
      }
    }
  },
  "required": [
    "entry_id",
    "product_id",
    "completed_at",
    "certificates"
  ]
}

quiz

POST/v1/stores/{store}/quizzes/{quiz}/attempts

Starts an attempt at a quiz. Scope quiz:write.

ParameterIn
storepathrequiredA hostname of the store.
quizpathrequired

Body

Schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

200

Schema
{
  "type": "object",
  "properties": {
    "attempt": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "quiz_id": {
          "type": "string"
        },
        "entry_id": {
          "type": "string"
        },
        "attempt": {
          "type": "number"
        },
        "status": {
          "type": "string",
          "x-extensible-enum": [
            "failed",
            "started",
            "submitted",
            "passed",
            "forfeited"
          ]
        },
        "score": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ]
        },
        "correct": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ]
        },
        "started_at": {
          "type": "string"
        },
        "finished_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "id",
        "quiz_id",
        "entry_id",
        "attempt",
        "status",
        "score",
        "correct",
        "started_at",
        "finished_at"
      ]
    },
    "questions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "question": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "content": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "options": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "text": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "text"
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "min": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "max": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "weight": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "hint": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "type",
          "id",
          "question",
          "content",
          "options",
          "min",
          "max",
          "weight",
          "hint"
        ]
      }
    },
    "attachments": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "access": {
            "type": "string",
            "x-extensible-enum": [
              "locked",
              "unlocked",
              "bypassed"
            ]
          },
          "id": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "x-extensible-enum": [
              "body",
              "staged",
              "staged_file",
              "prose",
              "teaser",
              "embed",
              "deliverable",
              "poster",
              "logo",
              "prompt",
              "stylesheet"
            ]
          },
          "delivery": {
            "type": "string",
            "x-extensible-enum": [
              "inline",
              "download",
              "stream"
            ]
          },
          "preview_only": {
            "type": "boolean"
          },
          "position": {
            "type": "number"
          },
          "asset": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "title": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "ext": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "mime": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "bytes": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "storage": {
                "type": "string",
                "x-extensible-enum": [
                  "r2",
                  "s3",
                  "inline"
                ]
              },
              "enforcement": {
                "type": "string",
                "x-extensible-enum": [
                  "public",
                  "external",
                  "signed"
                ]
              },
              "locator": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "metadata": {
                "type": "object",
                "properties": {
                  "width": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "height": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "duration": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "pages": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "width",
                  "height",
                  "duration",
                  "pages"
                ]
              },
              "status": {
                "type": "string",
                "x-extensible-enum": [
                  "pending",
                  "ready",
                  "failed",
                  "unavailable"
                ]
              }
            },
            "required": [
              "id",
              "name",
              "title",
              "ext",
              "description",
              "mime",
              "bytes",
              "storage",
              "enforcement",
              "locator",
              "metadata",
              "status"
            ]
          }
        },
        "required": [
          "access",
          "id",
          "role",
          "delivery",
          "preview_only",
          "position",
          "asset"
        ]
      }
    },
    "files": {
      "type": "object",
      "properties": {},
      "additionalProperties": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "x-extensible-enum": [
              "video",
              "audio",
              "image",
              "pdf",
              "file"
            ]
          },
          "mime": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "bytes": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "width": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "height": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "duration": {
            "description": "Seconds.",
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "pages": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "type": "string",
            "x-extensible-enum": [
              "pending",
              "ready",
              "failed",
              "unavailable"
            ]
          },
          "url": {
            "description": "A public file's lasting URL; null for a private one, or one whose bytes haven't landed.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "attachment_id": {
            "description": "The binding a private file opens through; null when the reader can't open it.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "kind",
          "mime",
          "name",
          "bytes",
          "width",
          "height",
          "duration",
          "pages",
          "status",
          "url",
          "attachment_id"
        ]
      }
    }
  },
  "required": [
    "attempt",
    "questions",
    "attachments",
    "files"
  ]
}

POST/v1/stores/{store}/attempts/{attempt}/submit

Submits answers to an attempt and grades it. Scope quiz:write.

ParameterIn
storepathrequiredA hostname of the store.
attemptpathrequired

Body

Schema
{
  "type": "object",
  "properties": {
    "answers": {
      "description": "Each text answer at most 4000 characters.",
      "type": "object",
      "properties": {},
      "additionalProperties": {
        "anyOf": [
          {
            "type": "boolean"
          },
          {
            "type": "string",
            "maxLength": 4000
          },
          {
            "type": "number"
          },
          {
            "type": "null"
          }
        ]
      },
      "maxProperties": 500
    }
  },
  "required": [
    "answers"
  ],
  "additionalProperties": false
}

200

Schema
{
  "type": "object",
  "properties": {
    "attempt": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "quiz_id": {
          "type": "string"
        },
        "entry_id": {
          "type": "string"
        },
        "attempt": {
          "type": "number"
        },
        "status": {
          "type": "string",
          "x-extensible-enum": [
            "failed",
            "started",
            "submitted",
            "passed",
            "forfeited"
          ]
        },
        "score": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ]
        },
        "correct": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ]
        },
        "started_at": {
          "type": "string"
        },
        "finished_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "id",
        "quiz_id",
        "entry_id",
        "attempt",
        "status",
        "score",
        "correct",
        "started_at",
        "finished_at"
      ]
    },
    "score": {
      "type": "number"
    },
    "correct": {
      "type": "number"
    },
    "total": {
      "type": "number"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "question_id": {
            "type": "string"
          },
          "answer": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "correct": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "key": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "correct_option_id": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "correct_answer": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "correct_value": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "accepted_answers": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "explanation": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "correct_option_id",
                  "correct_answer",
                  "correct_value",
                  "accepted_answers",
                  "explanation"
                ]
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "question_id",
          "answer",
          "correct",
          "key"
        ]
      }
    },
    "certificate": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "certificate_id": {
              "type": "string"
            },
            "score": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "attempt": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "issued_at": {
              "type": "string"
            }
          },
          "required": [
            "id",
            "certificate_id",
            "score",
            "attempt",
            "issued_at"
          ]
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "attempt",
    "score",
    "correct",
    "total",
    "results",
    "certificate"
  ]
}

POST/v1/stores/{store}/quizzes/{quiz}/forfeit

Gives up the open attempt at a quiz. Scope quiz:write.

ParameterIn
storepathrequiredA hostname of the store.
quizpathrequired

Body

Schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

200

Schema
{
  "type": "object",
  "properties": {
    "attempt": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "quiz_id": {
          "type": "string"
        },
        "entry_id": {
          "type": "string"
        },
        "attempt": {
          "type": "number"
        },
        "status": {
          "type": "string",
          "x-extensible-enum": [
            "failed",
            "started",
            "submitted",
            "passed",
            "forfeited"
          ]
        },
        "score": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ]
        },
        "correct": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ]
        },
        "started_at": {
          "type": "string"
        },
        "finished_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "id",
        "quiz_id",
        "entry_id",
        "attempt",
        "status",
        "score",
        "correct",
        "started_at",
        "finished_at"
      ]
    },
    "certificate": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "certificate_id": {
              "type": "string"
            },
            "score": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "attempt": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "issued_at": {
              "type": "string"
            }
          },
          "required": [
            "id",
            "certificate_id",
            "score",
            "attempt",
            "issued_at"
          ]
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "attempt",
    "certificate"
  ]
}

read

GET/v1/stores/{store}/profile

Reads the customer's profile. Scope read.

ParameterIn
storepathrequiredA hostname of the store.

200

Schema
{
  "type": "object",
  "properties": {
    "contacts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "x-extensible-enum": [
              "email",
              "phone"
            ]
          },
          "value": {
            "type": "string"
          },
          "verified_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "kind",
          "value",
          "verified_at"
        ]
      }
    },
    "id": {
      "type": "string"
    },
    "display_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "locale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "country": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "contacts",
    "id",
    "display_name",
    "locale",
    "country",
    "created_at"
  ]
}

GET/v1/stores/{store}/contacts

Lists the customer's email addresses and phones. Scope read.

ParameterIn
storepathrequiredA hostname of the store.

200

Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "kind": {
        "type": "string",
        "x-extensible-enum": [
          "email",
          "phone"
        ]
      },
      "value": {
        "type": "string"
      },
      "verified_at": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      }
    },
    "required": [
      "kind",
      "value",
      "verified_at"
    ]
  }
}

GET/v1/stores/{store}/billing_profile

Reads the customer's saved payment methods with each processor on the store's account. Scope read.

ParameterIn
storepathrequiredA hostname of the store.

200

Schema
{
  "type": "object",
  "properties": {
    "processors": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "processor": {
            "type": "string",
            "x-extensible-enum": [
              "stripe"
            ]
          },
          "customer_ref": {
            "type": "string"
          },
          "instruments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                },
                "display": {
                  "type": "object",
                  "properties": {
                    "brand": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "last4": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "expiration": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "month": {
                              "type": "number"
                            },
                            "year": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "month",
                            "year"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "brand",
                    "last4",
                    "expiration"
                  ]
                },
                "is_default": {
                  "type": "boolean"
                },
                "created_at": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "id",
                "type",
                "display",
                "is_default",
                "created_at"
              ]
            }
          }
        },
        "required": [
          "processor",
          "customer_ref",
          "instruments"
        ]
      }
    }
  },
  "required": [
    "processors"
  ]
}

GET/v1/stores/{store}/products

Pages the store's products with what the customer holds of each. Scope read. Also takes a publishable key.

ParameterIn
storepathrequiredA hostname of the store.
filterqueryfilter[<field>]=<value> is an equality, filter[<field>][<op>]=<value> names the operator; in repeats the parameter.
sortquery
directionquery
limitquery
cursorquery
countquery
searchquery
couponquery

200

Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "category": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "discountable": {
                    "type": "boolean"
                  },
                  "subscribable": {
                    "type": "boolean"
                  },
                  "reviewable": {
                    "type": "boolean"
                  },
                  "repeatable": {
                    "description": "Bought again and again: a coffee, a donation, an invoice, a seat, a slot.",
                    "type": "boolean"
                  },
                  "aside_size": {
                    "type": "string",
                    "x-extensible-enum": [
                      "small",
                      "none",
                      "large"
                    ]
                  }
                },
                "required": [
                  "id",
                  "label",
                  "discountable",
                  "subscribable",
                  "reviewable",
                  "repeatable",
                  "aside_size"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "access": {
            "type": "string",
            "x-extensible-enum": [
              "locked",
              "unlocked",
              "bypassed"
            ]
          },
          "offers": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "tier": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "rank": {
                          "type": "number"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "rank",
                        "name"
                      ]
                    },
                    "currency": {
                      "type": "string"
                    },
                    "exponent": {
                      "description": "Null when central does not know the currency.",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "amount": {
                      "description": "The list amount, or the frozen plan amount on a renewal.",
                      "type": "number"
                    },
                    "discounted": {
                      "description": "After the discount that applies.",
                      "type": "number"
                    },
                    "charge": {
                      "description": "What the caller pays now; nothing on an upgrade granted free.",
                      "type": "number"
                    },
                    "highlighted": {
                      "type": "boolean"
                    },
                    "title": {
                      "description": "Shown in place of the tier's name when set.",
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "description": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "settings": {
                      "type": "object",
                      "properties": {
                        "refund_policy": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "autorenew": {
                          "type": "boolean"
                        },
                        "renewal_discount": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "refund_policy",
                        "autorenew",
                        "renewal_discount"
                      ]
                    },
                    "discount": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string"
                            },
                            "code": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "code"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "kind": {
                      "type": "string",
                      "const": "one_time"
                    },
                    "period": {
                      "type": "null"
                    },
                    "mode": {
                      "type": "string",
                      "x-extensible-enum": [
                        "purchase",
                        "renewal"
                      ]
                    },
                    "upgrade": {
                      "type": "null"
                    }
                  },
                  "required": [
                    "id",
                    "tier",
                    "currency",
                    "exponent",
                    "amount",
                    "discounted",
                    "charge",
                    "highlighted",
                    "title",
                    "description",
                    "settings",
                    "discount",
                    "kind",
                    "period",
                    "mode",
                    "upgrade"
                  ]
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "tier": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "rank": {
                          "type": "number"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "rank",
                        "name"
                      ]
                    },
                    "currency": {
                      "type": "string"
                    },
                    "exponent": {
                      "description": "Null when central does not know the currency.",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "amount": {
                      "description": "The list amount, or the frozen plan amount on a renewal.",
                      "type": "number"
                    },
                    "discounted": {
                      "description": "After the discount that applies.",
                      "type": "number"
                    },
                    "charge": {
                      "description": "What the caller pays now; nothing on an upgrade granted free.",
                      "type": "number"
                    },
                    "highlighted": {
                      "type": "boolean"
                    },
                    "title": {
                      "description": "Shown in place of the tier's name when set.",
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "description": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "settings": {
                      "type": "object",
                      "properties": {
                        "refund_policy": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "autorenew": {
                          "type": "boolean"
                        },
                        "renewal_discount": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "refund_policy",
                        "autorenew",
                        "renewal_discount"
                      ]
                    },
                    "discount": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string"
                            },
                            "code": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "code"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "kind": {
                      "type": "string",
                      "const": "one_time"
                    },
                    "period": {
                      "type": "null"
                    },
                    "mode": {
                      "type": "string",
                      "const": "upgrade"
                    },
                    "upgrade": {
                      "type": "object",
                      "properties": {
                        "from_rank": {
                          "type": "number"
                        },
                        "credit": {
                          "type": "number"
                        },
                        "effective_credit": {
                          "type": "number"
                        },
                        "free": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "from_rank",
                        "credit",
                        "effective_credit",
                        "free"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "tier",
                    "currency",
                    "exponent",
                    "amount",
                    "discounted",
                    "charge",
                    "highlighted",
                    "title",
                    "description",
                    "settings",
                    "discount",
                    "kind",
                    "period",
                    "mode",
                    "upgrade"
                  ]
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "tier": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "rank": {
                          "type": "number"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "rank",
                        "name"
                      ]
                    },
                    "currency": {
                      "type": "string"
                    },
                    "exponent": {
                      "description": "Null when central does not know the currency.",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "amount": {
                      "description": "The list amount, or the frozen plan amount on a renewal.",
                      "type": "number"
                    },
                    "discounted": {
                      "description": "After the discount that applies.",
                      "type": "number"
                    },
                    "charge": {
                      "description": "What the caller pays now; nothing on an upgrade granted free.",
                      "type": "number"
                    },
                    "highlighted": {
                      "type": "boolean"
                    },
                    "title": {
                      "description": "Shown in place of the tier's name when set.",
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "description": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "settings": {
                      "type": "object",
                      "properties": {
                        "refund_policy": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "autorenew": {
                          "type": "boolean"
                        },
                        "renewal_discount": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "refund_policy",
                        "autorenew",
                        "renewal_discount"
                      ]
                    },
                    "discount": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string"
                            },
                            "code": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "code"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "kind": {
                      "type": "string",
                      "const": "recurring"
                    },
                    "period": {
                      "type": "object",
                      "properties": {
                        "unit": {
                          "type": "string",
                          "x-extensible-enum": [
                            "day",
                            "week",
                            "month",
                            "year"
                          ]
                        },
                        "multiplier": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "unit",
                        "multiplier"
                      ]
                    },
                    "mode": {
                      "type": "string",
                      "x-extensible-enum": [
                        "purchase",
                        "renewal"
                      ]
                    },
                    "upgrade": {
                      "type": "null"
                    }
                  },
                  "required": [
                    "id",
                    "tier",
                    "currency",
                    "exponent",
                    "amount",
                    "discounted",
                    "charge",
                    "highlighted",
                    "title",
                    "description",
                    "settings",
                    "discount",
                    "kind",
                    "period",
                    "mode",
                    "upgrade"
                  ]
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "tier": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "rank": {
                          "type": "number"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "rank",
                        "name"
                      ]
                    },
                    "currency": {
                      "type": "string"
                    },
                    "exponent": {
                      "description": "Null when central does not know the currency.",
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "amount": {
                      "description": "The list amount, or the frozen plan amount on a renewal.",
                      "type": "number"
                    },
                    "discounted": {
                      "description": "After the discount that applies.",
                      "type": "number"
                    },
                    "charge": {
                      "description": "What the caller pays now; nothing on an upgrade granted free.",
                      "type": "number"
                    },
                    "highlighted": {
                      "type": "boolean"
                    },
                    "title": {
                      "description": "Shown in place of the tier's name when set.",
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "description": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "settings": {
                      "type": "object",
                      "properties": {
                        "refund_policy": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "autorenew": {
                          "type": "boolean"
                        },
                        "renewal_discount": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "refund_policy",
                        "autorenew",
                        "renewal_discount"
                      ]
                    },
                    "discount": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string"
                            },
                            "code": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "code"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "kind": {
                      "type": "string",
                      "const": "recurring"
                    },
                    "period": {
                      "type": "object",
                      "properties": {
                        "unit": {
                          "type": "string",
                          "x-extensible-enum": [
                            "day",
                            "week",
                            "month",
                            "year"
                          ]
                        },
                        "multiplier": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "unit",
                        "multiplier"
                      ]
                    },
                    "mode": {
                      "type": "string",
                      "const": "upgrade"
                    },
                    "upgrade": {
                      "type": "object",
                      "properties": {
                        "from_rank": {
                          "type": "number"
                        },
                        "credit": {
                          "type": "number"
                        },
                        "effective_credit": {
                          "type": "number"
                        },
                        "free": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "from_rank",
                        "credit",
                        "effective_credit",
                        "free"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "tier",
                    "currency",
                    "exponent",
                    "amount",
                    "discounted",
                    "charge",
                    "highlighted",
                    "title",
                    "description",
                    "settings",
                    "discount",
                    "kind",
                    "period",
                    "mode",
                    "upgrade"
                  ]
                }
              ]
            }
          },
          "owned": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "tier_rank": {
                    "type": "number"
                  },
                  "source": {
                    "type": "string",
                    "x-extensible-enum": [
                      "subscription",
                      "grant"
                    ]
                  },
                  "tier_expires_at": {
                    "description": "When the held rank ends.",
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "expires_at": {
                    "description": "When every grant has ended.",
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "tier_rank",
                  "source",
                  "tier_expires_at",
                  "expires_at"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "poster": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "access": {
                    "type": "string",
                    "x-extensible-enum": [
                      "locked",
                      "unlocked",
                      "bypassed"
                    ]
                  },
                  "id": {
                    "type": "string"
                  },
                  "role": {
                    "type": "string",
                    "x-extensible-enum": [
                      "body",
                      "staged",
                      "staged_file",
                      "prose",
                      "teaser",
                      "embed",
                      "deliverable",
                      "poster",
                      "logo",
                      "prompt",
                      "stylesheet"
                    ]
                  },
                  "delivery": {
                    "type": "string",
                    "x-extensible-enum": [
                      "inline",
                      "download",
                      "stream"
                    ]
                  },
                  "preview_only": {
                    "type": "boolean"
                  },
                  "position": {
                    "type": "number"
                  },
                  "asset": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "name": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "title": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "ext": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "description": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "mime": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "bytes": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "storage": {
                        "type": "string",
                        "x-extensible-enum": [
                          "r2",
                          "s3",
                          "inline"
                        ]
                      },
                      "enforcement": {
                        "type": "string",
                        "x-extensible-enum": [
                          "public",
                          "external",
                          "signed"
                        ]
                      },
                      "locator": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "metadata": {
                        "type": "object",
                        "properties": {
                          "width": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "height": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "duration": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "pages": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "width",
                          "height",
                          "duration",
                          "pages"
                        ]
                      },
                      "status": {
                        "type": "string",
                        "x-extensible-enum": [
                          "pending",
                          "ready",
                          "failed",
                          "unavailable"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "title",
                      "ext",
                      "description",
                      "mime",
                      "bytes",
                      "storage",
                      "enforcement",
                      "locator",
                      "metadata",
                      "status"
                    ]
                  }
                },
                "required": [
                  "access",
                  "id",
                  "role",
                  "delivery",
                  "preview_only",
                  "position",
                  "asset"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "stats": {
            "type": "object",
            "properties": {
              "sales": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raised": {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "currency": {
                          "type": "string"
                        },
                        "exponent": {
                          "anyOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "amount": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "currency",
                        "exponent",
                        "amount"
                      ]
                    }
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "sales",
              "raised"
            ]
          },
          "rating": {
            "type": "object",
            "properties": {
              "count": {
                "type": "number"
              },
              "average": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "histogram": {
                "type": "object",
                "properties": {
                  "1": {
                    "type": "number"
                  },
                  "2": {
                    "type": "number"
                  },
                  "3": {
                    "type": "number"
                  },
                  "4": {
                    "type": "number"
                  },
                  "5": {
                    "type": "number"
                  }
                },
                "required": [
                  "1",
                  "2",
                  "3",
                  "4",
                  "5"
                ]
              },
              "summary": {
                "description": "The generated summary of what reviews say; null while the seller hides it or none is written.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "count",
              "average",
              "histogram",
              "summary"
            ]
          },
          "id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "listing": {
            "type": "string",
            "x-extensible-enum": [
              "primary",
              "secondary"
            ]
          },
          "priority": {
            "type": "number"
          },
          "published_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "discontinued_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "unlisted_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "settings": {
            "type": "object",
            "properties": {
              "refund_policy": {
                "anyOf": [
                  {
                    "type": "string",
                    "x-extensible-enum": [
                      "none",
                      "24h",
                      "72h",
                      "7d",
                      "14d",
                      "30d"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "progress_tracking": {
                "type": "string",
                "x-extensible-enum": [
                  "manual",
                  "on_open",
                  "on_complete",
                  "disabled"
                ]
              },
              "reviews_enabled": {
                "type": "boolean"
              },
              "purchase_note": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "calendar": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "calcom": {
                        "type": "object",
                        "properties": {
                          "username": {
                            "type": "string"
                          },
                          "event_slug": {
                            "type": "string"
                          }
                        }
                      },
                      "host": {
                        "type": "object",
                        "properties": {
                          "title": {
                            "type": "string"
                          },
                          "subtitle": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          },
                          "tags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "icon": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "coffee": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "emoji": {
                        "type": "string"
                      },
                      "descriptor": {
                        "type": "string",
                        "minLength": 3,
                        "maxLength": 15,
                        "pattern": "^\\S(.*\\S)?$"
                      }
                    }
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "fundraising": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "goal": {
                        "type": "integer",
                        "minimum": 1
                      },
                      "currency": {
                        "type": "string",
                        "minLength": 3,
                        "maxLength": 3
                      }
                    },
                    "required": [
                      "goal",
                      "currency"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "storefront": {
                "type": "object",
                "properties": {
                  "sales_counter": {
                    "type": "boolean"
                  },
                  "background_poster": {
                    "type": "boolean"
                  },
                  "require_dark": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "sales_counter",
                  "background_poster",
                  "require_dark"
                ]
              }
            },
            "required": [
              "refund_policy",
              "progress_tracking",
              "reviews_enabled",
              "purchase_note",
              "calendar",
              "coffee",
              "fundraising",
              "storefront"
            ]
          }
        },
        "required": [
          "category",
          "access",
          "offers",
          "owned",
          "poster",
          "stats",
          "rating",
          "id",
          "slug",
          "title",
          "description",
          "listing",
          "priority",
          "published_at",
          "discontinued_at",
          "unlisted_at",
          "created_at",
          "updated_at",
          "settings"
        ]
      }
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "items",
    "cursor"
  ]
}

GET/v1/stores/{store}/products/{product}

Reads one product with its offers and access. Scope read. Also takes a publishable key.

ParameterIn
storepathrequiredA hostname of the store.
productpathrequiredAn id, or slug:<slug>.
couponquery
previewquery

200

Schema
{
  "type": "object",
  "properties": {
    "files": {
      "type": "object",
      "properties": {},
      "additionalProperties": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "x-extensible-enum": [
              "video",
              "audio",
              "image",
              "pdf",
              "file"
            ]
          },
          "mime": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "bytes": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "width": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "height": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "duration": {
            "description": "Seconds.",
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "pages": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "type": "string",
            "x-extensible-enum": [
              "pending",
              "ready",
              "failed",
              "unavailable"
            ]
          },
          "url": {
            "description": "A public file's lasting URL; null for a private one, or one whose bytes haven't landed.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "attachment_id": {
            "description": "The binding a private file opens through; null when the reader can't open it.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "kind",
          "mime",
          "name",
          "bytes",
          "width",
          "height",
          "duration",
          "pages",
          "status",
          "url",
          "attachment_id"
        ]
      }
    },
    "entries": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "access": {
            "type": "string",
            "x-extensible-enum": [
              "locked",
              "unlocked",
              "bypassed"
            ]
          },
          "files": {
            "type": "object",
            "properties": {},
            "additionalProperties": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "kind": {
                  "type": "string",
                  "x-extensible-enum": [
                    "video",
                    "audio",
                    "image",
                    "pdf",
                    "file"
                  ]
                },
                "mime": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "bytes": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "width": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "height": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "duration": {
                  "description": "Seconds.",
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "pages": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "status": {
                  "type": "string",
                  "x-extensible-enum": [
                    "pending",
                    "ready",
                    "failed",
                    "unavailable"
                  ]
                },
                "url": {
                  "description": "A public file's lasting URL; null for a private one, or one whose bytes haven't landed.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "attachment_id": {
                  "description": "The binding a private file opens through; null when the reader can't open it.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "id",
                "kind",
                "mime",
                "name",
                "bytes",
                "width",
                "height",
                "duration",
                "pages",
                "status",
                "url",
                "attachment_id"
              ]
            }
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "subtitle": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "section": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "preview": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "position": {
            "type": "number"
          },
          "published_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "settings": {
            "type": "object",
            "properties": {
              "ai_generated": {
                "type": "boolean"
              }
            },
            "required": [
              "ai_generated"
            ]
          }
        },
        "required": [
          "access",
          "files",
          "completed_at",
          "id",
          "product_id",
          "slug",
          "title",
          "subtitle",
          "section",
          "preview",
          "position",
          "published_at",
          "created_at",
          "updated_at",
          "settings"
        ]
      }
    },
    "body": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "access": {
              "type": "string",
              "x-extensible-enum": [
                "locked",
                "unlocked",
                "bypassed"
              ]
            },
            "id": {
              "type": "string"
            },
            "role": {
              "type": "string",
              "x-extensible-enum": [
                "body",
                "staged",
                "staged_file",
                "prose",
                "teaser",
                "embed",
                "deliverable",
                "poster",
                "logo",
                "prompt",
                "stylesheet"
              ]
            },
            "delivery": {
              "type": "string",
              "x-extensible-enum": [
                "inline",
                "download",
                "stream"
              ]
            },
            "preview_only": {
              "type": "boolean"
            },
            "position": {
              "type": "number"
            },
            "asset": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "ext": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "description": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "mime": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "bytes": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "storage": {
                  "type": "string",
                  "x-extensible-enum": [
                    "r2",
                    "s3",
                    "inline"
                  ]
                },
                "enforcement": {
                  "type": "string",
                  "x-extensible-enum": [
                    "public",
                    "external",
                    "signed"
                  ]
                },
                "locator": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "metadata": {
                  "type": "object",
                  "properties": {
                    "width": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "height": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "duration": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "pages": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "width",
                    "height",
                    "duration",
                    "pages"
                  ]
                },
                "status": {
                  "type": "string",
                  "x-extensible-enum": [
                    "pending",
                    "ready",
                    "failed",
                    "unavailable"
                  ]
                }
              },
              "required": [
                "id",
                "name",
                "title",
                "ext",
                "description",
                "mime",
                "bytes",
                "storage",
                "enforcement",
                "locator",
                "metadata",
                "status"
              ]
            }
          },
          "required": [
            "access",
            "id",
            "role",
            "delivery",
            "preview_only",
            "position",
            "asset"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "attachments": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "access": {
            "type": "string",
            "x-extensible-enum": [
              "locked",
              "unlocked",
              "bypassed"
            ]
          },
          "id": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "x-extensible-enum": [
              "body",
              "staged",
              "staged_file",
              "prose",
              "teaser",
              "embed",
              "deliverable",
              "poster",
              "logo",
              "prompt",
              "stylesheet"
            ]
          },
          "delivery": {
            "type": "string",
            "x-extensible-enum": [
              "inline",
              "download",
              "stream"
            ]
          },
          "preview_only": {
            "type": "boolean"
          },
          "position": {
            "type": "number"
          },
          "asset": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "title": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "ext": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "mime": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "bytes": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "storage": {
                "type": "string",
                "x-extensible-enum": [
                  "r2",
                  "s3",
                  "inline"
                ]
              },
              "enforcement": {
                "type": "string",
                "x-extensible-enum": [
                  "public",
                  "external",
                  "signed"
                ]
              },
              "locator": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "metadata": {
                "type": "object",
                "properties": {
                  "width": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "height": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "duration": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "pages": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "width",
                  "height",
                  "duration",
                  "pages"
                ]
              },
              "status": {
                "type": "string",
                "x-extensible-enum": [
                  "pending",
                  "ready",
                  "failed",
                  "unavailable"
                ]
              }
            },
            "required": [
              "id",
              "name",
              "title",
              "ext",
              "description",
              "mime",
              "bytes",
              "storage",
              "enforcement",
              "locator",
              "metadata",
              "status"
            ]
          }
        },
        "required": [
          "access",
          "id",
          "role",
          "delivery",
          "preview_only",
          "position",
          "asset"
        ]
      }
    },
    "tiers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "rank": {
            "type": "number"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "rank",
          "name"
        ]
      }
    },
    "text": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "what_you_get": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "category": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "discountable": {
              "type": "boolean"
            },
            "subscribable": {
              "type": "boolean"
            },
            "reviewable": {
              "type": "boolean"
            },
            "repeatable": {
              "description": "Bought again and again: a coffee, a donation, an invoice, a seat, a slot.",
              "type": "boolean"
            },
            "aside_size": {
              "type": "string",
              "x-extensible-enum": [
                "small",
                "none",
                "large"
              ]
            }
          },
          "required": [
            "id",
            "label",
            "discountable",
            "subscribable",
            "reviewable",
            "repeatable",
            "aside_size"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "access": {
      "type": "string",
      "x-extensible-enum": [
        "locked",
        "unlocked",
        "bypassed"
      ]
    },
    "offers": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "tier": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "rank": {
                    "type": "number"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "rank",
                  "name"
                ]
              },
              "currency": {
                "type": "string"
              },
              "exponent": {
                "description": "Null when central does not know the currency.",
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "amount": {
                "description": "The list amount, or the frozen plan amount on a renewal.",
                "type": "number"
              },
              "discounted": {
                "description": "After the discount that applies.",
                "type": "number"
              },
              "charge": {
                "description": "What the caller pays now; nothing on an upgrade granted free.",
                "type": "number"
              },
              "highlighted": {
                "type": "boolean"
              },
              "title": {
                "description": "Shown in place of the tier's name when set.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "settings": {
                "type": "object",
                "properties": {
                  "refund_policy": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "autorenew": {
                    "type": "boolean"
                  },
                  "renewal_discount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "refund_policy",
                  "autorenew",
                  "renewal_discount"
                ]
              },
              "discount": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "code": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "code"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "kind": {
                "type": "string",
                "const": "one_time"
              },
              "period": {
                "type": "null"
              },
              "mode": {
                "type": "string",
                "x-extensible-enum": [
                  "purchase",
                  "renewal"
                ]
              },
              "upgrade": {
                "type": "null"
              }
            },
            "required": [
              "id",
              "tier",
              "currency",
              "exponent",
              "amount",
              "discounted",
              "charge",
              "highlighted",
              "title",
              "description",
              "settings",
              "discount",
              "kind",
              "period",
              "mode",
              "upgrade"
            ]
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "tier": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "rank": {
                    "type": "number"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "rank",
                  "name"
                ]
              },
              "currency": {
                "type": "string"
              },
              "exponent": {
                "description": "Null when central does not know the currency.",
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "amount": {
                "description": "The list amount, or the frozen plan amount on a renewal.",
                "type": "number"
              },
              "discounted": {
                "description": "After the discount that applies.",
                "type": "number"
              },
              "charge": {
                "description": "What the caller pays now; nothing on an upgrade granted free.",
                "type": "number"
              },
              "highlighted": {
                "type": "boolean"
              },
              "title": {
                "description": "Shown in place of the tier's name when set.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "settings": {
                "type": "object",
                "properties": {
                  "refund_policy": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "autorenew": {
                    "type": "boolean"
                  },
                  "renewal_discount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "refund_policy",
                  "autorenew",
                  "renewal_discount"
                ]
              },
              "discount": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "code": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "code"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "kind": {
                "type": "string",
                "const": "one_time"
              },
              "period": {
                "type": "null"
              },
              "mode": {
                "type": "string",
                "const": "upgrade"
              },
              "upgrade": {
                "type": "object",
                "properties": {
                  "from_rank": {
                    "type": "number"
                  },
                  "credit": {
                    "type": "number"
                  },
                  "effective_credit": {
                    "type": "number"
                  },
                  "free": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "from_rank",
                  "credit",
                  "effective_credit",
                  "free"
                ]
              }
            },
            "required": [
              "id",
              "tier",
              "currency",
              "exponent",
              "amount",
              "discounted",
              "charge",
              "highlighted",
              "title",
              "description",
              "settings",
              "discount",
              "kind",
              "period",
              "mode",
              "upgrade"
            ]
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "tier": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "rank": {
                    "type": "number"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "rank",
                  "name"
                ]
              },
              "currency": {
                "type": "string"
              },
              "exponent": {
                "description": "Null when central does not know the currency.",
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "amount": {
                "description": "The list amount, or the frozen plan amount on a renewal.",
                "type": "number"
              },
              "discounted": {
                "description": "After the discount that applies.",
                "type": "number"
              },
              "charge": {
                "description": "What the caller pays now; nothing on an upgrade granted free.",
                "type": "number"
              },
              "highlighted": {
                "type": "boolean"
              },
              "title": {
                "description": "Shown in place of the tier's name when set.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "settings": {
                "type": "object",
                "properties": {
                  "refund_policy": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "autorenew": {
                    "type": "boolean"
                  },
                  "renewal_discount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "refund_policy",
                  "autorenew",
                  "renewal_discount"
                ]
              },
              "discount": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "code": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "code"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "kind": {
                "type": "string",
                "const": "recurring"
              },
              "period": {
                "type": "object",
                "properties": {
                  "unit": {
                    "type": "string",
                    "x-extensible-enum": [
                      "day",
                      "week",
                      "month",
                      "year"
                    ]
                  },
                  "multiplier": {
                    "type": "number"
                  }
                },
                "required": [
                  "unit",
                  "multiplier"
                ]
              },
              "mode": {
                "type": "string",
                "x-extensible-enum": [
                  "purchase",
                  "renewal"
                ]
              },
              "upgrade": {
                "type": "null"
              }
            },
            "required": [
              "id",
              "tier",
              "currency",
              "exponent",
              "amount",
              "discounted",
              "charge",
              "highlighted",
              "title",
              "description",
              "settings",
              "discount",
              "kind",
              "period",
              "mode",
              "upgrade"
            ]
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "tier": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "rank": {
                    "type": "number"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "rank",
                  "name"
                ]
              },
              "currency": {
                "type": "string"
              },
              "exponent": {
                "description": "Null when central does not know the currency.",
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "amount": {
                "description": "The list amount, or the frozen plan amount on a renewal.",
                "type": "number"
              },
              "discounted": {
                "description": "After the discount that applies.",
                "type": "number"
              },
              "charge": {
                "description": "What the caller pays now; nothing on an upgrade granted free.",
                "type": "number"
              },
              "highlighted": {
                "type": "boolean"
              },
              "title": {
                "description": "Shown in place of the tier's name when set.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "settings": {
                "type": "object",
                "properties": {
                  "refund_policy": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "autorenew": {
                    "type": "boolean"
                  },
                  "renewal_discount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "refund_policy",
                  "autorenew",
                  "renewal_discount"
                ]
              },
              "discount": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "code": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "code"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "kind": {
                "type": "string",
                "const": "recurring"
              },
              "period": {
                "type": "object",
                "properties": {
                  "unit": {
                    "type": "string",
                    "x-extensible-enum": [
                      "day",
                      "week",
                      "month",
                      "year"
                    ]
                  },
                  "multiplier": {
                    "type": "number"
                  }
                },
                "required": [
                  "unit",
                  "multiplier"
                ]
              },
              "mode": {
                "type": "string",
                "const": "upgrade"
              },
              "upgrade": {
                "type": "object",
                "properties": {
                  "from_rank": {
                    "type": "number"
                  },
                  "credit": {
                    "type": "number"
                  },
                  "effective_credit": {
                    "type": "number"
                  },
                  "free": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "from_rank",
                  "credit",
                  "effective_credit",
                  "free"
                ]
              }
            },
            "required": [
              "id",
              "tier",
              "currency",
              "exponent",
              "amount",
              "discounted",
              "charge",
              "highlighted",
              "title",
              "description",
              "settings",
              "discount",
              "kind",
              "period",
              "mode",
              "upgrade"
            ]
          }
        ]
      }
    },
    "owned": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "tier_rank": {
              "type": "number"
            },
            "source": {
              "type": "string",
              "x-extensible-enum": [
                "subscription",
                "grant"
              ]
            },
            "tier_expires_at": {
              "description": "When the held rank ends.",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "expires_at": {
              "description": "When every grant has ended.",
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "tier_rank",
            "source",
            "tier_expires_at",
            "expires_at"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "poster": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "access": {
              "type": "string",
              "x-extensible-enum": [
                "locked",
                "unlocked",
                "bypassed"
              ]
            },
            "id": {
              "type": "string"
            },
            "role": {
              "type": "string",
              "x-extensible-enum": [
                "body",
                "staged",
                "staged_file",
                "prose",
                "teaser",
                "embed",
                "deliverable",
                "poster",
                "logo",
                "prompt",
                "stylesheet"
              ]
            },
            "delivery": {
              "type": "string",
              "x-extensible-enum": [
                "inline",
                "download",
                "stream"
              ]
            },
            "preview_only": {
              "type": "boolean"
            },
            "position": {
              "type": "number"
            },
            "asset": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "ext": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "description": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "mime": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "bytes": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "storage": {
                  "type": "string",
                  "x-extensible-enum": [
                    "r2",
                    "s3",
                    "inline"
                  ]
                },
                "enforcement": {
                  "type": "string",
                  "x-extensible-enum": [
                    "public",
                    "external",
                    "signed"
                  ]
                },
                "locator": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "metadata": {
                  "type": "object",
                  "properties": {
                    "width": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "height": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "duration": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "pages": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "width",
                    "height",
                    "duration",
                    "pages"
                  ]
                },
                "status": {
                  "type": "string",
                  "x-extensible-enum": [
                    "pending",
                    "ready",
                    "failed",
                    "unavailable"
                  ]
                }
              },
              "required": [
                "id",
                "name",
                "title",
                "ext",
                "description",
                "mime",
                "bytes",
                "storage",
                "enforcement",
                "locator",
                "metadata",
                "status"
              ]
            }
          },
          "required": [
            "access",
            "id",
            "role",
            "delivery",
            "preview_only",
            "position",
            "asset"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "stats": {
      "type": "object",
      "properties": {
        "sales": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ]
        },
        "raised": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "currency": {
                    "type": "string"
                  },
                  "exponent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "amount": {
                    "type": "number"
                  }
                },
                "required": [
                  "currency",
                  "exponent",
                  "amount"
                ]
              }
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "sales",
        "raised"
      ]
    },
    "rating": {
      "type": "object",
      "properties": {
        "count": {
          "type": "number"
        },
        "average": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ]
        },
        "histogram": {
          "type": "object",
          "properties": {
            "1": {
              "type": "number"
            },
            "2": {
              "type": "number"
            },
            "3": {
              "type": "number"
            },
            "4": {
              "type": "number"
            },
            "5": {
              "type": "number"
            }
          },
          "required": [
            "1",
            "2",
            "3",
            "4",
            "5"
          ]
        },
        "summary": {
          "description": "The generated summary of what reviews say; null while the seller hides it or none is written.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "count",
        "average",
        "histogram",
        "summary"
      ]
    },
    "id": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "listing": {
      "type": "string",
      "x-extensible-enum": [
        "primary",
        "secondary"
      ]
    },
    "priority": {
      "type": "number"
    },
    "published_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "discontinued_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "unlisted_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "settings": {
      "type": "object",
      "properties": {
        "refund_policy": {
          "anyOf": [
            {
              "type": "string",
              "x-extensible-enum": [
                "none",
                "24h",
                "72h",
                "7d",
                "14d",
                "30d"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "progress_tracking": {
          "type": "string",
          "x-extensible-enum": [
            "manual",
            "on_open",
            "on_complete",
            "disabled"
          ]
        },
        "reviews_enabled": {
          "type": "boolean"
        },
        "purchase_note": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "calendar": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "calcom": {
                  "type": "object",
                  "properties": {
                    "username": {
                      "type": "string"
                    },
                    "event_slug": {
                      "type": "string"
                    }
                  }
                },
                "host": {
                  "type": "object",
                  "properties": {
                    "title": {
                      "type": "string"
                    },
                    "subtitle": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "tags": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "icon": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            {
              "type": "null"
            }
          ]
        },
        "coffee": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "emoji": {
                  "type": "string"
                },
                "descriptor": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 15,
                  "pattern": "^\\S(.*\\S)?$"
                }
              }
            },
            {
              "type": "null"
            }
          ]
        },
        "fundraising": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "goal": {
                  "type": "integer",
                  "minimum": 1
                },
                "currency": {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 3
                }
              },
              "required": [
                "goal",
                "currency"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "storefront": {
          "type": "object",
          "properties": {
            "sales_counter": {
              "type": "boolean"
            },
            "background_poster": {
              "type": "boolean"
            },
            "require_dark": {
              "type": "boolean"
            }
          },
          "required": [
            "sales_counter",
            "background_poster",
            "require_dark"
          ]
        }
      },
      "required": [
        "refund_policy",
        "progress_tracking",
        "reviews_enabled",
        "purchase_note",
        "calendar",
        "coffee",
        "fundraising",
        "storefront"
      ]
    }
  },
  "required": [
    "files",
    "entries",
    "body",
    "attachments",
    "tiers",
    "text",
    "what_you_get",
    "category",
    "access",
    "offers",
    "owned",
    "poster",
    "stats",
    "rating",
    "id",
    "slug",
    "title",
    "description",
    "listing",
    "priority",
    "published_at",
    "discontinued_at",
    "unlisted_at",
    "created_at",
    "updated_at",
    "settings"
  ]
}

GET/v1/stores/{store}/products/{product}/entries

Pages a product's entries with their access. Scope read. Also takes a publishable key.

ParameterIn
storepathrequiredA hostname of the store.
productpathrequiredAn id, or slug:<slug>.
filterqueryfilter[<field>]=<value> is an equality, filter[<field>][<op>]=<value> names the operator; in repeats the parameter.
sortquery
directionquery
limitquery
cursorquery
countquery
searchquery

200

Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "access": {
            "type": "string",
            "x-extensible-enum": [
              "locked",
              "unlocked",
              "bypassed"
            ]
          },
          "poster": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "access": {
                    "type": "string",
                    "x-extensible-enum": [
                      "locked",
                      "unlocked",
                      "bypassed"
                    ]
                  },
                  "id": {
                    "type": "string"
                  },
                  "role": {
                    "type": "string",
                    "x-extensible-enum": [
                      "body",
                      "staged",
                      "staged_file",
                      "prose",
                      "teaser",
                      "embed",
                      "deliverable",
                      "poster",
                      "logo",
                      "prompt",
                      "stylesheet"
                    ]
                  },
                  "delivery": {
                    "type": "string",
                    "x-extensible-enum": [
                      "inline",
                      "download",
                      "stream"
                    ]
                  },
                  "preview_only": {
                    "type": "boolean"
                  },
                  "position": {
                    "type": "number"
                  },
                  "asset": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "name": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "title": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "ext": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "description": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "mime": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "bytes": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "storage": {
                        "type": "string",
                        "x-extensible-enum": [
                          "r2",
                          "s3",
                          "inline"
                        ]
                      },
                      "enforcement": {
                        "type": "string",
                        "x-extensible-enum": [
                          "public",
                          "external",
                          "signed"
                        ]
                      },
                      "locator": {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "metadata": {
                        "type": "object",
                        "properties": {
                          "width": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "height": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "duration": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "pages": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "width",
                          "height",
                          "duration",
                          "pages"
                        ]
                      },
                      "status": {
                        "type": "string",
                        "x-extensible-enum": [
                          "pending",
                          "ready",
                          "failed",
                          "unavailable"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "title",
                      "ext",
                      "description",
                      "mime",
                      "bytes",
                      "storage",
                      "enforcement",
                      "locator",
                      "metadata",
                      "status"
                    ]
                  }
                },
                "required": [
                  "access",
                  "id",
                  "role",
                  "delivery",
                  "preview_only",
                  "position",
                  "asset"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "files": {
            "type": "object",
            "properties": {},
            "additionalProperties": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "kind": {
                  "type": "string",
                  "x-extensible-enum": [
                    "video",
                    "audio",
                    "image",
                    "pdf",
                    "file"
                  ]
                },
                "mime": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "bytes": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "width": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "height": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "duration": {
                  "description": "Seconds.",
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "pages": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "status": {
                  "type": "string",
                  "x-extensible-enum": [
                    "pending",
                    "ready",
                    "failed",
                    "unavailable"
                  ]
                },
                "url": {
                  "description": "A public file's lasting URL; null for a private one, or one whose bytes haven't landed.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "attachment_id": {
                  "description": "The binding a private file opens through; null when the reader can't open it.",
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "id",
                "kind",
                "mime",
                "name",
                "bytes",
                "width",
                "height",
                "duration",
                "pages",
                "status",
                "url",
                "attachment_id"
              ]
            }
          },
          "completed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "subtitle": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "section": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "preview": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "position": {
            "type": "number"
          },
          "published_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "settings": {
            "type": "object",
            "properties": {
              "ai_generated": {
                "type": "boolean"
              }
            },
            "required": [
              "ai_generated"
            ]
          }
        },
        "required": [
          "access",
          "poster",
          "files",
          "completed_at",
          "id",
          "product_id",
          "slug",
          "title",
          "subtitle",
          "section",
          "preview",
          "position",
          "published_at",
          "created_at",
          "updated_at",
          "settings"
        ]
      }
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "items",
    "cursor"
  ]
}

GET/v1/stores/{store}/entries/{entry}

Reads one entry with its access. Scope read. Also takes a publishable key.

ParameterIn
storepathrequiredA hostname of the store.
entrypathrequired

200

Schema
{
  "type": "object",
  "properties": {
    "files": {
      "type": "object",
      "properties": {},
      "additionalProperties": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "x-extensible-enum": [
              "video",
              "audio",
              "image",
              "pdf",
              "file"
            ]
          },
          "mime": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "bytes": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "width": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "height": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "duration": {
            "description": "Seconds.",
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "pages": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "type": "string",
            "x-extensible-enum": [
              "pending",
              "ready",
              "failed",
              "unavailable"
            ]
          },
          "url": {
            "description": "A public file's lasting URL; null for a private one, or one whose bytes haven't landed.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "attachment_id": {
            "description": "The binding a private file opens through; null when the reader can't open it.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "kind",
          "mime",
          "name",
          "bytes",
          "width",
          "height",
          "duration",
          "pages",
          "status",
          "url",
          "attachment_id"
        ]
      }
    },
    "quiz": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "version": {
              "type": "number"
            },
            "settings": {
              "type": "object",
              "properties": {
                "attempts_allowed": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "pass_mark": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "show_answers": {
                  "type": "boolean"
                }
              },
              "required": [
                "attempts_allowed",
                "pass_mark",
                "show_answers"
              ]
            },
            "access": {
              "type": "string",
              "x-extensible-enum": [
                "locked",
                "unlocked",
                "bypassed"
              ]
            }
          },
          "required": [
            "id",
            "version",
            "settings",
            "access"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "body": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "access": {
              "type": "string",
              "x-extensible-enum": [
                "locked",
                "unlocked",
                "bypassed"
              ]
            },
            "id": {
              "type": "string"
            },
            "role": {
              "type": "string",
              "x-extensible-enum": [
                "body",
                "staged",
                "staged_file",
                "prose",
                "teaser",
                "embed",
                "deliverable",
                "poster",
                "logo",
                "prompt",
                "stylesheet"
              ]
            },
            "delivery": {
              "type": "string",
              "x-extensible-enum": [
                "inline",
                "download",
                "stream"
              ]
            },
            "preview_only": {
              "type": "boolean"
            },
            "position": {
              "type": "number"
            },
            "asset": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "ext": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "description": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "mime": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "bytes": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "storage": {
                  "type": "string",
                  "x-extensible-enum": [
                    "r2",
                    "s3",
                    "inline"
                  ]
                },
                "enforcement": {
                  "type": "string",
                  "x-extensible-enum": [
                    "public",
                    "external",
                    "signed"
                  ]
                },
                "locator": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "metadata": {
                  "type": "object",
                  "properties": {
                    "width": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "height": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "duration": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "pages": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "width",
                    "height",
                    "duration",
                    "pages"
                  ]
                },
                "status": {
                  "type": "string",
                  "x-extensible-enum": [
                    "pending",
                    "ready",
                    "failed",
                    "unavailable"
                  ]
                }
              },
              "required": [
                "id",
                "name",
                "title",
                "ext",
                "description",
                "mime",
                "bytes",
                "storage",
                "enforcement",
                "locator",
                "metadata",
                "status"
              ]
            }
          },
          "required": [
            "access",
            "id",
            "role",
            "delivery",
            "preview_only",
            "position",
            "asset"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "attachments": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "access": {
            "type": "string",
            "x-extensible-enum": [
              "locked",
              "unlocked",
              "bypassed"
            ]
          },
          "id": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "x-extensible-enum": [
              "body",
              "staged",
              "staged_file",
              "prose",
              "teaser",
              "embed",
              "deliverable",
              "poster",
              "logo",
              "prompt",
              "stylesheet"
            ]
          },
          "delivery": {
            "type": "string",
            "x-extensible-enum": [
              "inline",
              "download",
              "stream"
            ]
          },
          "preview_only": {
            "type": "boolean"
          },
          "position": {
            "type": "number"
          },
          "asset": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "title": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "ext": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "mime": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "bytes": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "storage": {
                "type": "string",
                "x-extensible-enum": [
                  "r2",
                  "s3",
                  "inline"
                ]
              },
              "enforcement": {
                "type": "string",
                "x-extensible-enum": [
                  "public",
                  "external",
                  "signed"
                ]
              },
              "locator": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "metadata": {
                "type": "object",
                "properties": {
                  "width": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "height": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "duration": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "pages": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "width",
                  "height",
                  "duration",
                  "pages"
                ]
              },
              "status": {
                "type": "string",
                "x-extensible-enum": [
                  "pending",
                  "ready",
                  "failed",
                  "unavailable"
                ]
              }
            },
            "required": [
              "id",
              "name",
              "title",
              "ext",
              "description",
              "mime",
              "bytes",
              "storage",
              "enforcement",
              "locator",
              "metadata",
              "status"
            ]
          }
        },
        "required": [
          "access",
          "id",
          "role",
          "delivery",
          "preview_only",
          "position",
          "asset"
        ]
      }
    },
    "access": {
      "type": "string",
      "x-extensible-enum": [
        "locked",
        "unlocked",
        "bypassed"
      ]
    },
    "completed_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "product": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "progress_tracking": {
          "type": "string",
          "x-extensible-enum": [
            "manual",
            "on_open",
            "on_complete",
            "disabled"
          ]
        }
      },
      "required": [
        "id",
        "slug",
        "title",
        "progress_tracking"
      ]
    },
    "id": {
      "type": "string"
    },
    "product_id": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "subtitle": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "section": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "preview": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "position": {
      "type": "number"
    },
    "published_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "settings": {
      "type": "object",
      "properties": {
        "ai_generated": {
          "type": "boolean"
        }
      },
      "required": [
        "ai_generated"
      ]
    }
  },
  "required": [
    "files",
    "quiz",
    "body",
    "attachments",
    "access",
    "completed_at",
    "product",
    "id",
    "product_id",
    "slug",
    "title",
    "subtitle",
    "section",
    "preview",
    "position",
    "published_at",
    "created_at",
    "updated_at",
    "settings"
  ]
}

GET/v1/stores/{store}/pages

Pages the store's custom pages. Scope read. Also takes a publishable key.

ParameterIn
storepathrequiredA hostname of the store.
filterqueryfilter[<field>]=<value> is an equality, filter[<field>][<op>]=<value> names the operator; in repeats the parameter.
sortquery
directionquery
limitquery
cursorquery
countquery
searchquery

200

Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "access": {
            "type": "string",
            "x-extensible-enum": [
              "locked",
              "unlocked",
              "bypassed"
            ]
          },
          "id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "menu_position": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "published_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "settings": {
            "type": "object",
            "properties": {
              "storefront": {
                "type": "object",
                "properties": {
                  "no_index": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "no_index"
                ]
              }
            },
            "required": [
              "storefront"
            ]
          }
        },
        "required": [
          "access",
          "id",
          "slug",
          "title",
          "description",
          "menu_position",
          "published_at",
          "created_at",
          "updated_at",
          "settings"
        ]
      }
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "items",
    "cursor"
  ]
}

GET/v1/stores/{store}/pages/{page}

Reads one custom page. Scope read. Also takes a publishable key.

ParameterIn
storepathrequiredA hostname of the store.
pagepathrequiredAn id, or slug:<slug>.
previewquery

200

Schema
{
  "type": "object",
  "properties": {
    "files": {
      "type": "object",
      "properties": {},
      "additionalProperties": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "x-extensible-enum": [
              "video",
              "audio",
              "image",
              "pdf",
              "file"
            ]
          },
          "mime": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "bytes": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "width": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "height": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "duration": {
            "description": "Seconds.",
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "pages": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "type": "string",
            "x-extensible-enum": [
              "pending",
              "ready",
              "failed",
              "unavailable"
            ]
          },
          "url": {
            "description": "A public file's lasting URL; null for a private one, or one whose bytes haven't landed.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "attachment_id": {
            "description": "The binding a private file opens through; null when the reader can't open it.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "kind",
          "mime",
          "name",
          "bytes",
          "width",
          "height",
          "duration",
          "pages",
          "status",
          "url",
          "attachment_id"
        ]
      }
    },
    "body": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "access": {
              "type": "string",
              "x-extensible-enum": [
                "locked",
                "unlocked",
                "bypassed"
              ]
            },
            "id": {
              "type": "string"
            },
            "role": {
              "type": "string",
              "x-extensible-enum": [
                "body",
                "staged",
                "staged_file",
                "prose",
                "teaser",
                "embed",
                "deliverable",
                "poster",
                "logo",
                "prompt",
                "stylesheet"
              ]
            },
            "delivery": {
              "type": "string",
              "x-extensible-enum": [
                "inline",
                "download",
                "stream"
              ]
            },
            "preview_only": {
              "type": "boolean"
            },
            "position": {
              "type": "number"
            },
            "asset": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "ext": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "description": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "mime": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "bytes": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "storage": {
                  "type": "string",
                  "x-extensible-enum": [
                    "r2",
                    "s3",
                    "inline"
                  ]
                },
                "enforcement": {
                  "type": "string",
                  "x-extensible-enum": [
                    "public",
                    "external",
                    "signed"
                  ]
                },
                "locator": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "metadata": {
                  "type": "object",
                  "properties": {
                    "width": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "height": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "duration": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "pages": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "width",
                    "height",
                    "duration",
                    "pages"
                  ]
                },
                "status": {
                  "type": "string",
                  "x-extensible-enum": [
                    "pending",
                    "ready",
                    "failed",
                    "unavailable"
                  ]
                }
              },
              "required": [
                "id",
                "name",
                "title",
                "ext",
                "description",
                "mime",
                "bytes",
                "storage",
                "enforcement",
                "locator",
                "metadata",
                "status"
              ]
            }
          },
          "required": [
            "access",
            "id",
            "role",
            "delivery",
            "preview_only",
            "position",
            "asset"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "attachments": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "access": {
            "type": "string",
            "x-extensible-enum": [
              "locked",
              "unlocked",
              "bypassed"
            ]
          },
          "id": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "x-extensible-enum": [
              "body",
              "staged",
              "staged_file",
              "prose",
              "teaser",
              "embed",
              "deliverable",
              "poster",
              "logo",
              "prompt",
              "stylesheet"
            ]
          },
          "delivery": {
            "type": "string",
            "x-extensible-enum": [
              "inline",
              "download",
              "stream"
            ]
          },
          "preview_only": {
            "type": "boolean"
          },
          "position": {
            "type": "number"
          },
          "asset": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "title": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "ext": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "mime": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "bytes": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "storage": {
                "type": "string",
                "x-extensible-enum": [
                  "r2",
                  "s3",
                  "inline"
                ]
              },
              "enforcement": {
                "type": "string",
                "x-extensible-enum": [
                  "public",
                  "external",
                  "signed"
                ]
              },
              "locator": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "metadata": {
                "type": "object",
                "properties": {
                  "width": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "height": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "duration": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "pages": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "width",
                  "height",
                  "duration",
                  "pages"
                ]
              },
              "status": {
                "type": "string",
                "x-extensible-enum": [
                  "pending",
                  "ready",
                  "failed",
                  "unavailable"
                ]
              }
            },
            "required": [
              "id",
              "name",
              "title",
              "ext",
              "description",
              "mime",
              "bytes",
              "storage",
              "enforcement",
              "locator",
              "metadata",
              "status"
            ]
          }
        },
        "required": [
          "access",
          "id",
          "role",
          "delivery",
          "preview_only",
          "position",
          "asset"
        ]
      }
    },
    "access": {
      "type": "string",
      "x-extensible-enum": [
        "locked",
        "unlocked",
        "bypassed"
      ]
    },
    "id": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "menu_position": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "published_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "settings": {
      "type": "object",
      "properties": {
        "storefront": {
          "type": "object",
          "properties": {
            "no_index": {
              "type": "boolean"
            }
          },
          "required": [
            "no_index"
          ]
        }
      },
      "required": [
        "storefront"
      ]
    }
  },
  "required": [
    "files",
    "body",
    "attachments",
    "access",
    "id",
    "slug",
    "title",
    "description",
    "menu_position",
    "published_at",
    "created_at",
    "updated_at",
    "settings"
  ]
}

GET/v1/stores/{store}/body

Reads a product's, entry's or page's body, where the customer may. Scope read. Also takes a publishable key.

ParameterIn
storepathrequiredA hostname of the store.
targetqueryrequired
previewquery

200

Schema
{
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "content": {
          "type": "null"
        },
        "files": {
          "type": "object",
          "properties": {},
          "additionalProperties": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "kind": {
                "type": "string",
                "x-extensible-enum": [
                  "video",
                  "audio",
                  "image",
                  "pdf",
                  "file"
                ]
              },
              "mime": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "name": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "bytes": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "width": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "height": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "duration": {
                "description": "Seconds.",
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "pages": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "status": {
                "type": "string",
                "x-extensible-enum": [
                  "pending",
                  "ready",
                  "failed",
                  "unavailable"
                ]
              },
              "url": {
                "description": "A public file's lasting URL; null for a private one, or one whose bytes haven't landed.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "attachment_id": {
                "description": "The binding a private file opens through; null when the reader can't open it.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "id",
              "kind",
              "mime",
              "name",
              "bytes",
              "width",
              "height",
              "duration",
              "pages",
              "status",
              "url",
              "attachment_id"
            ]
          }
        },
        "access": {
          "type": "string",
          "x-extensible-enum": [
            "locked",
            "unlocked",
            "bypassed"
          ]
        },
        "id": {
          "type": "string"
        },
        "role": {
          "type": "string",
          "x-extensible-enum": [
            "body",
            "staged",
            "staged_file",
            "prose",
            "teaser",
            "embed",
            "deliverable",
            "poster",
            "logo",
            "prompt",
            "stylesheet"
          ]
        },
        "delivery": {
          "type": "string",
          "x-extensible-enum": [
            "inline",
            "download",
            "stream"
          ]
        },
        "preview_only": {
          "type": "boolean"
        },
        "position": {
          "type": "number"
        },
        "asset": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "title": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "ext": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "description": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "mime": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "bytes": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "storage": {
              "type": "string",
              "x-extensible-enum": [
                "r2",
                "s3",
                "inline"
              ]
            },
            "enforcement": {
              "type": "string",
              "x-extensible-enum": [
                "public",
                "external",
                "signed"
              ]
            },
            "locator": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "metadata": {
              "type": "object",
              "properties": {
                "width": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "height": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "duration": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "pages": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "width",
                "height",
                "duration",
                "pages"
              ]
            },
            "status": {
              "type": "string",
              "x-extensible-enum": [
                "pending",
                "ready",
                "failed",
                "unavailable"
              ]
            }
          },
          "required": [
            "id",
            "name",
            "title",
            "ext",
            "description",
            "mime",
            "bytes",
            "storage",
            "enforcement",
            "locator",
            "metadata",
            "status"
          ]
        }
      },
      "required": [
        "content",
        "files",
        "access",
        "id",
        "role",
        "delivery",
        "preview_only",
        "position",
        "asset"
      ]
    },
    {
      "type": "object",
      "properties": {
        "content": {
          "type": "string"
        },
        "files": {
          "type": "object",
          "properties": {},
          "additionalProperties": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "kind": {
                "type": "string",
                "x-extensible-enum": [
                  "video",
                  "audio",
                  "image",
                  "pdf",
                  "file"
                ]
              },
              "mime": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "name": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "bytes": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "width": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "height": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "duration": {
                "description": "Seconds.",
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "pages": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "status": {
                "type": "string",
                "x-extensible-enum": [
                  "pending",
                  "ready",
                  "failed",
                  "unavailable"
                ]
              },
              "url": {
                "description": "A public file's lasting URL; null for a private one, or one whose bytes haven't landed.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "attachment_id": {
                "description": "The binding a private file opens through; null when the reader can't open it.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "id",
              "kind",
              "mime",
              "name",
              "bytes",
              "width",
              "height",
              "duration",
              "pages",
              "status",
              "url",
              "attachment_id"
            ]
          }
        },
        "access": {
          "type": "string",
          "x-extensible-enum": [
            "locked",
            "unlocked",
            "bypassed"
          ]
        },
        "id": {
          "type": "string"
        },
        "role": {
          "type": "string",
          "x-extensible-enum": [
            "body",
            "staged",
            "staged_file",
            "prose",
            "teaser",
            "embed",
            "deliverable",
            "poster",
            "logo",
            "prompt",
            "stylesheet"
          ]
        },
        "delivery": {
          "type": "string",
          "x-extensible-enum": [
            "inline",
            "download",
            "stream"
          ]
        },
        "preview_only": {
          "type": "boolean"
        },
        "position": {
          "type": "number"
        },
        "asset": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "title": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "ext": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "description": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "mime": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "bytes": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "storage": {
              "type": "string",
              "x-extensible-enum": [
                "r2",
                "s3",
                "inline"
              ]
            },
            "enforcement": {
              "type": "string",
              "x-extensible-enum": [
                "public",
                "external",
                "signed"
              ]
            },
            "locator": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "metadata": {
              "type": "object",
              "properties": {
                "width": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "height": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "duration": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "pages": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "width",
                "height",
                "duration",
                "pages"
              ]
            },
            "status": {
              "type": "string",
              "x-extensible-enum": [
                "pending",
                "ready",
                "failed",
                "unavailable"
              ]
            }
          },
          "required": [
            "id",
            "name",
            "title",
            "ext",
            "description",
            "mime",
            "bytes",
            "storage",
            "enforcement",
            "locator",
            "metadata",
            "status"
          ]
        }
      },
      "required": [
        "content",
        "files",
        "access",
        "id",
        "role",
        "delivery",
        "preview_only",
        "position",
        "asset"
      ]
    },
    {
      "type": "null"
    }
  ]
}

GET/v1/stores/{store}/prompts

Lists the MCP prompts of one product, or of every product the customer holds, with what each asks and whether the customer may run it. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
productqueryAn id, or slug:<slug>.
runnablequery

200

Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "arguments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "description": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "required": {
                  "type": "boolean"
                }
              },
              "required": [
                "name",
                "description",
                "required"
              ]
            }
          },
          "product": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "slug": {
                "type": "string"
              },
              "title": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "slug",
              "title"
            ]
          },
          "access": {
            "type": "string",
            "x-extensible-enum": [
              "locked",
              "unlocked",
              "bypassed"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "title",
          "description",
          "arguments",
          "product",
          "access"
        ]
      }
    },
    "truncated": {
      "type": "boolean"
    }
  },
  "required": [
    "items",
    "truncated"
  ]
}

GET/v1/stores/{store}/prompts/{prompt}

Reads one prompt by its id or name, its text filled in with the arguments given where the customer may run it. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
promptpathrequired
argumentsquery

200

Schema
{
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "text": {
          "type": "null"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "arguments": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "required": {
                "type": "boolean"
              }
            },
            "required": [
              "name",
              "description",
              "required"
            ]
          }
        },
        "product": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            },
            "title": {
              "type": "string"
            }
          },
          "required": [
            "id",
            "slug",
            "title"
          ]
        },
        "access": {
          "type": "string",
          "x-extensible-enum": [
            "locked",
            "unlocked",
            "bypassed"
          ]
        }
      },
      "required": [
        "text",
        "id",
        "name",
        "title",
        "description",
        "arguments",
        "product",
        "access"
      ]
    },
    {
      "type": "object",
      "properties": {
        "text": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "arguments": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "required": {
                "type": "boolean"
              }
            },
            "required": [
              "name",
              "description",
              "required"
            ]
          }
        },
        "product": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            },
            "title": {
              "type": "string"
            }
          },
          "required": [
            "id",
            "slug",
            "title"
          ]
        },
        "access": {
          "type": "string",
          "x-extensible-enum": [
            "locked",
            "unlocked",
            "bypassed"
          ]
        }
      },
      "required": [
        "text",
        "id",
        "name",
        "title",
        "description",
        "arguments",
        "product",
        "access"
      ]
    }
  ]
}

POST/v1/stores/{store}/attachments/url

Mints a short-lived URL to an attachment's file, where the customer may reach it. Scope read. Also takes a publishable key.

ParameterIn
storepathrequiredA hostname of the store.

Body

Schema
{
  "type": "object",
  "properties": {
    "attachment": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512
    },
    "renew": {
      "type": "boolean"
    },
    "intent": {
      "description": "For a lesson's slides: shown in the player, or downloaded where the caller may; none serves them as bound.",
      "type": "string",
      "enum": [
        "download",
        "view"
      ]
    }
  },
  "required": [
    "attachment"
  ],
  "additionalProperties": false
}

200

Schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string"
    },
    "expires_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "url",
    "expires_at"
  ]
}

GET/v1/stores/{store}/completions

Pages the customer's completed entries. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
filterqueryfilter[<field>]=<value> is an equality, filter[<field>][<op>]=<value> names the operator; in repeats the parameter.
sortquery
directionquery
limitquery
cursorquery
countquery

200

Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "entry_id": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "completed_at": {
            "type": "string"
          }
        },
        "required": [
          "entry_id",
          "product_id",
          "completed_at"
        ]
      }
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "total": {
      "type": "number"
    },
    "facets": {
      "type": "object",
      "properties": {},
      "additionalProperties": {
        "type": "object",
        "properties": {},
        "additionalProperties": {
          "type": "number"
        }
      }
    }
  },
  "required": [
    "items",
    "cursor"
  ]
}

GET/v1/stores/{store}/checkouts

Pages the customer's checkouts. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
filterqueryfilter[<field>]=<value> is an equality, filter[<field>][<op>]=<value> names the operator; in repeats the parameter.
sortquery
directionquery
limitquery
cursorquery
countquery

200

Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "x-extensible-enum": [
              "paid",
              "expired",
              "open",
              "frozen",
              "abandoned"
            ]
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "product": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "slug": {
                          "type": "string"
                        },
                        "title": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string"
                        },
                        "deleted": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "id",
                        "slug",
                        "title",
                        "category",
                        "deleted"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "id": {
                  "type": "string"
                },
                "product_id": {
                  "type": "string"
                },
                "price_id": {
                  "type": "string"
                },
                "quantity": {
                  "type": "number"
                },
                "amount": {
                  "type": "number"
                },
                "discount": {
                  "type": "number"
                },
                "discount_id": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "total": {
                  "type": "number"
                },
                "mode": {
                  "type": "string",
                  "x-extensible-enum": [
                    "purchase",
                    "upgrade",
                    "renewal"
                  ]
                }
              },
              "required": [
                "product",
                "id",
                "product_id",
                "price_id",
                "quantity",
                "amount",
                "discount",
                "discount_id",
                "total",
                "mode"
              ]
            }
          },
          "totals": {
            "type": "object",
            "properties": {
              "amount": {
                "type": "number"
              },
              "discount": {
                "type": "number"
              },
              "total": {
                "type": "number"
              }
            },
            "required": [
              "amount",
              "discount",
              "total"
            ]
          },
          "id": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "exponent": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "coupon": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "refund_waiver": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "policy": {
                    "description": "The strictest policy among the lines, the one consented to.",
                    "type": "string"
                  },
                  "accepted_at": {
                    "type": "string"
                  }
                },
                "required": [
                  "policy",
                  "accepted_at"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "status",
          "items",
          "totals",
          "id",
          "currency",
          "exponent",
          "coupon",
          "refund_waiver",
          "expires_at",
          "created_at",
          "updated_at"
        ]
      }
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "items",
    "cursor"
  ]
}

GET/v1/stores/{store}/checkouts/{checkout}

Reads one of the customer's checkouts. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
checkoutpathrequired

200

Schema
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "x-extensible-enum": [
        "paid",
        "expired",
        "open",
        "frozen",
        "abandoned"
      ]
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "product": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "category": {
                    "type": "string"
                  },
                  "deleted": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "slug",
                  "title",
                  "category",
                  "deleted"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "price_id": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          },
          "amount": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "discount_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "total": {
            "type": "number"
          },
          "mode": {
            "type": "string",
            "x-extensible-enum": [
              "purchase",
              "upgrade",
              "renewal"
            ]
          }
        },
        "required": [
          "product",
          "id",
          "product_id",
          "price_id",
          "quantity",
          "amount",
          "discount",
          "discount_id",
          "total",
          "mode"
        ]
      }
    },
    "totals": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "number"
        },
        "discount": {
          "type": "number"
        },
        "total": {
          "type": "number"
        }
      },
      "required": [
        "amount",
        "discount",
        "total"
      ]
    },
    "id": {
      "type": "string"
    },
    "currency": {
      "type": "string"
    },
    "exponent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "coupon": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "refund_waiver": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "policy": {
              "description": "The strictest policy among the lines, the one consented to.",
              "type": "string"
            },
            "accepted_at": {
              "type": "string"
            }
          },
          "required": [
            "policy",
            "accepted_at"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "expires_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "status",
    "items",
    "totals",
    "id",
    "currency",
    "exponent",
    "coupon",
    "refund_waiver",
    "expires_at",
    "created_at",
    "updated_at"
  ]
}

GET/v1/stores/{store}/orders

Pages the customer's orders. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
filterqueryfilter[<field>]=<value> is an equality, filter[<field>][<op>]=<value> names the operator; in repeats the parameter.
sortquery
directionquery
limitquery
cursorquery
countquery

200

Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "item_count": {
            "type": "number"
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "product": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "slug": {
                          "type": "string"
                        },
                        "title": {
                          "type": "string"
                        },
                        "category": {
                          "type": "string"
                        },
                        "deleted": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "id",
                        "slug",
                        "title",
                        "category",
                        "deleted"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "id": {
                  "type": "string"
                },
                "order_id": {
                  "type": "string"
                },
                "product_id": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "tier_id": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "price_id": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "position": {
                  "type": "number"
                },
                "quantity": {
                  "type": "number"
                },
                "amount": {
                  "type": "number"
                },
                "discount": {
                  "type": "number"
                },
                "total": {
                  "type": "number"
                },
                "descriptor": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "price": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "tier": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "coupon": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "product",
                    "price",
                    "tier",
                    "coupon"
                  ]
                }
              },
              "required": [
                "product",
                "id",
                "order_id",
                "product_id",
                "tier_id",
                "price_id",
                "position",
                "quantity",
                "amount",
                "discount",
                "total",
                "descriptor"
              ]
            }
          },
          "refund_count": {
            "type": "number"
          },
          "refunds": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "order_id": {
                  "type": "string"
                },
                "amount": {
                  "type": "number"
                },
                "currency": {
                  "type": "string"
                },
                "reason": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "occurred_at": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "id",
                "order_id",
                "amount",
                "currency",
                "reason",
                "occurred_at"
              ]
            }
          },
          "id": {
            "type": "string"
          },
          "number": {
            "type": "number"
          },
          "currency": {
            "type": "string"
          },
          "exponent": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "amount": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "total": {
            "type": "number"
          },
          "source": {
            "type": "string",
            "x-extensible-enum": [
              "checkout",
              "api",
              "import",
              "manual"
            ]
          },
          "note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "statements": {
            "type": "object",
            "properties": {
              "coupon": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "method": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "refund_waiver": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "policy": {
                        "description": "The strictest policy among the lines, the one consented to.",
                        "type": "string"
                      },
                      "accepted_at": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "policy",
                      "accepted_at"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "coupon",
              "method",
              "refund_waiver"
            ]
          },
          "occurred_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "item_count",
          "items",
          "refund_count",
          "refunds",
          "id",
          "number",
          "currency",
          "exponent",
          "amount",
          "discount",
          "total",
          "source",
          "note",
          "statements",
          "occurred_at"
        ]
      }
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "items",
    "cursor"
  ]
}

GET/v1/stores/{store}/orders/{order}

Reads one of the customer's orders. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
orderpathrequired

200

Schema
{
  "type": "object",
  "properties": {
    "item_count": {
      "type": "number"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "product": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "category": {
                    "type": "string"
                  },
                  "deleted": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "slug",
                  "title",
                  "category",
                  "deleted"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "order_id": {
            "type": "string"
          },
          "product_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "tier_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "price_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "position": {
            "type": "number"
          },
          "quantity": {
            "type": "number"
          },
          "amount": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "total": {
            "type": "number"
          },
          "descriptor": {
            "type": "object",
            "properties": {
              "product": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "price": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "tier": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "coupon": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "product",
              "price",
              "tier",
              "coupon"
            ]
          }
        },
        "required": [
          "product",
          "id",
          "order_id",
          "product_id",
          "tier_id",
          "price_id",
          "position",
          "quantity",
          "amount",
          "discount",
          "total",
          "descriptor"
        ]
      }
    },
    "refund_count": {
      "type": "number"
    },
    "refunds": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "order_id": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "currency": {
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "occurred_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "order_id",
          "amount",
          "currency",
          "reason",
          "occurred_at"
        ]
      }
    },
    "id": {
      "type": "string"
    },
    "number": {
      "type": "number"
    },
    "currency": {
      "type": "string"
    },
    "exponent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "amount": {
      "type": "number"
    },
    "discount": {
      "type": "number"
    },
    "total": {
      "type": "number"
    },
    "source": {
      "type": "string",
      "x-extensible-enum": [
        "checkout",
        "api",
        "import",
        "manual"
      ]
    },
    "note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "statements": {
      "type": "object",
      "properties": {
        "coupon": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "method": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "refund_waiver": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "policy": {
                  "description": "The strictest policy among the lines, the one consented to.",
                  "type": "string"
                },
                "accepted_at": {
                  "type": "string"
                }
              },
              "required": [
                "policy",
                "accepted_at"
              ]
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "coupon",
        "method",
        "refund_waiver"
      ]
    },
    "occurred_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "item_count",
    "items",
    "refund_count",
    "refunds",
    "id",
    "number",
    "currency",
    "exponent",
    "amount",
    "discount",
    "total",
    "source",
    "note",
    "statements",
    "occurred_at"
  ]
}

GET/v1/stores/{store}/orders/{order}/items

Pages an order's lines. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
orderpathrequired
filterqueryfilter[<field>]=<value> is an equality, filter[<field>][<op>]=<value> names the operator; in repeats the parameter.
sortquery
directionquery
limitquery
cursorquery
countquery

200

Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "product": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "category": {
                    "type": "string"
                  },
                  "deleted": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "slug",
                  "title",
                  "category",
                  "deleted"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "order_id": {
            "type": "string"
          },
          "product_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "tier_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "price_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "position": {
            "type": "number"
          },
          "quantity": {
            "type": "number"
          },
          "amount": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "total": {
            "type": "number"
          },
          "descriptor": {
            "type": "object",
            "properties": {
              "product": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "price": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "tier": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "coupon": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "product",
              "price",
              "tier",
              "coupon"
            ]
          }
        },
        "required": [
          "product",
          "id",
          "order_id",
          "product_id",
          "tier_id",
          "price_id",
          "position",
          "quantity",
          "amount",
          "discount",
          "total",
          "descriptor"
        ]
      }
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "currency": {
      "type": "string"
    },
    "exponent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "items",
    "cursor",
    "currency",
    "exponent"
  ]
}

GET/v1/stores/{store}/orders/{order}/refunds

Pages an order's refunds. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
orderpathrequired
filterqueryfilter[<field>]=<value> is an equality, filter[<field>][<op>]=<value> names the operator; in repeats the parameter.
sortquery
directionquery
limitquery
cursorquery
countquery

200

Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "order_id": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "currency": {
            "type": "string"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "occurred_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "order_id",
          "amount",
          "currency",
          "reason",
          "occurred_at"
        ]
      }
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "currency": {
      "type": "string"
    },
    "exponent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "items",
    "cursor",
    "currency",
    "exponent"
  ]
}

GET/v1/stores/{store}/subscriptions

Pages the customer's subscriptions. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
filterqueryfilter[<field>]=<value> is an equality, filter[<field>][<op>]=<value> names the operator; in repeats the parameter.
sortquery
directionquery
limitquery
cursorquery
countquery

200

Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "product": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "category": {
                    "type": "string"
                  },
                  "deleted": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "slug",
                  "title",
                  "category",
                  "deleted"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "plan": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "price_id": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "number"
                  },
                  "currency": {
                    "type": "string"
                  },
                  "exponent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "period": {
                    "type": "object",
                    "properties": {
                      "unit": {
                        "type": "string",
                        "x-extensible-enum": [
                          "day",
                          "week",
                          "month",
                          "year"
                        ]
                      },
                      "multiplier": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "unit",
                      "multiplier"
                    ]
                  },
                  "autorenew": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "price_id",
                  "amount",
                  "currency",
                  "exponent",
                  "period",
                  "autorenew"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "current_period": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "starts_at": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "ends_at": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "status": {
                    "type": "string",
                    "x-extensible-enum": [
                      "pending",
                      "failed",
                      "paid",
                      "refunded"
                    ]
                  }
                },
                "required": [
                  "id",
                  "starts_at",
                  "ends_at",
                  "status"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "x-extensible-enum": [
              "unpaid",
              "active",
              "past_due",
              "paused",
              "cancelled",
              "ended"
            ]
          },
          "cancel_at_period_end": {
            "type": "boolean"
          },
          "cancel_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "billing_managed": {
            "type": "boolean"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ended_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "product",
          "plan",
          "current_period",
          "id",
          "product_id",
          "status",
          "cancel_at_period_end",
          "cancel_reason",
          "billing_managed",
          "created_at",
          "ended_at"
        ]
      }
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "items",
    "cursor"
  ]
}

GET/v1/stores/{store}/subscriptions/{subscription}

Reads one of the customer's subscriptions. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
subscriptionpathrequired

200

Schema
{
  "type": "object",
  "properties": {
    "product": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            },
            "title": {
              "type": "string"
            },
            "category": {
              "type": "string"
            },
            "deleted": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "slug",
            "title",
            "category",
            "deleted"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "plan": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "price_id": {
              "type": "string"
            },
            "amount": {
              "type": "number"
            },
            "currency": {
              "type": "string"
            },
            "exponent": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "period": {
              "type": "object",
              "properties": {
                "unit": {
                  "type": "string",
                  "x-extensible-enum": [
                    "day",
                    "week",
                    "month",
                    "year"
                  ]
                },
                "multiplier": {
                  "type": "number"
                }
              },
              "required": [
                "unit",
                "multiplier"
              ]
            },
            "autorenew": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "price_id",
            "amount",
            "currency",
            "exponent",
            "period",
            "autorenew"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "current_period": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "starts_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "ends_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "status": {
              "type": "string",
              "x-extensible-enum": [
                "pending",
                "failed",
                "paid",
                "refunded"
              ]
            }
          },
          "required": [
            "id",
            "starts_at",
            "ends_at",
            "status"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "id": {
      "type": "string"
    },
    "product_id": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "x-extensible-enum": [
        "unpaid",
        "active",
        "past_due",
        "paused",
        "cancelled",
        "ended"
      ]
    },
    "cancel_at_period_end": {
      "type": "boolean"
    },
    "cancel_reason": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "billing_managed": {
      "type": "boolean"
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "ended_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "product",
    "plan",
    "current_period",
    "id",
    "product_id",
    "status",
    "cancel_at_period_end",
    "cancel_reason",
    "billing_managed",
    "created_at",
    "ended_at"
  ]
}

GET/v1/stores/{store}/grants

Pages the customer's grants of access. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
filterqueryfilter[<field>]=<value> is an equality, filter[<field>][<op>]=<value> names the operator; in repeats the parameter.
sortquery
directionquery
limitquery
cursorquery
countquery

200

Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "tier": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "rank": {
                    "type": "number"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "rank",
                  "name"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "tier_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "source_kind": {
            "type": "string",
            "x-extensible-enum": [
              "checkout",
              "api",
              "import",
              "manual",
              "subscription",
              "payment",
              "automation"
            ]
          },
          "valid_from": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ends_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "end_reason": {
            "anyOf": [
              {
                "type": "string",
                "x-extensible-enum": [
                  "import",
                  "manual",
                  "lapse",
                  "refund"
                ]
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "tier",
          "id",
          "product_id",
          "tier_id",
          "source_kind",
          "valid_from",
          "ends_at",
          "end_reason"
        ]
      }
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "items",
    "cursor"
  ]
}

GET/v1/stores/{store}/entitlements

Pages what the customer may reach. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
filterqueryfilter[<field>]=<value> is an equality, filter[<field>][<op>]=<value> names the operator; in repeats the parameter.
sortquery
directionquery
limitquery
cursorquery
countquery

200

Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "product_id": {
            "type": "string"
          },
          "tier_rank": {
            "type": "number"
          },
          "tier_expires_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "held": {
            "type": "boolean"
          }
        },
        "required": [
          "product_id",
          "tier_rank",
          "tier_expires_at",
          "expires_at",
          "held"
        ]
      }
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "total": {
      "type": "number"
    },
    "facets": {
      "type": "object",
      "properties": {},
      "additionalProperties": {
        "type": "object",
        "properties": {},
        "additionalProperties": {
          "type": "number"
        }
      }
    }
  },
  "required": [
    "items",
    "cursor"
  ]
}

GET/v1/stores/{store}/products/{product}/reviews

Pages a product's reviews. Scope read. Also takes a publishable key.

ParameterIn
storepathrequiredA hostname of the store.
productpathrequiredAn id, or slug:<slug>.
filterqueryfilter[<field>]=<value> is an equality, filter[<field>][<op>]=<value> names the operator; in repeats the parameter.
sortquery
directionquery
limitquery
cursorquery
countquery

200

Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "mine": {
            "type": "boolean"
          },
          "hidden_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "rating": {
            "type": "number"
          },
          "username": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "reply": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "replied_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "mine",
          "hidden_at",
          "id",
          "product_id",
          "rating",
          "username",
          "notes",
          "reply",
          "replied_at",
          "created_at",
          "updated_at"
        ]
      }
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "total": {
      "type": "number"
    },
    "facets": {
      "type": "object",
      "properties": {},
      "additionalProperties": {
        "type": "object",
        "properties": {},
        "additionalProperties": {
          "type": "number"
        }
      }
    }
  },
  "required": [
    "items",
    "cursor"
  ]
}

GET/v1/stores/{store}/attempts

Pages the customer's quiz attempts. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
filterqueryfilter[<field>]=<value> is an equality, filter[<field>][<op>]=<value> names the operator; in repeats the parameter.
sortquery
directionquery
limitquery
cursorquery
countquery

200

Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "quiz_id": {
            "type": "string"
          },
          "entry_id": {
            "type": "string"
          },
          "attempt": {
            "type": "number"
          },
          "status": {
            "type": "string",
            "x-extensible-enum": [
              "failed",
              "started",
              "submitted",
              "passed",
              "forfeited"
            ]
          },
          "score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "correct": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "started_at": {
            "type": "string"
          },
          "finished_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "quiz_id",
          "entry_id",
          "attempt",
          "status",
          "score",
          "correct",
          "started_at",
          "finished_at"
        ]
      }
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "total": {
      "type": "number"
    },
    "facets": {
      "type": "object",
      "properties": {},
      "additionalProperties": {
        "type": "object",
        "properties": {},
        "additionalProperties": {
          "type": "number"
        }
      }
    }
  },
  "required": [
    "items",
    "cursor"
  ]
}

GET/v1/stores/{store}/certificates

Pages the certificates issued to the customer. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
filterqueryfilter[<field>]=<value> is an equality, filter[<field>][<op>]=<value> names the operator; in repeats the parameter.
sortquery
directionquery
limitquery
cursorquery
countquery

200

Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "certificate": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "product_id": {
                "type": "string"
              },
              "quiz_id": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "headline_copy": {
                "type": "string"
              },
              "title_copy": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "awarded_copy": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "reason_copy": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "score_copy": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "out_of_score_copy": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "settings": {
                "type": "object",
                "properties": {
                  "requires_passing": {
                    "type": "boolean"
                  },
                  "shows": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "x-extensible-enum": [
                        "date",
                        "score",
                        "qr_code"
                      ]
                    }
                  },
                  "template": {
                    "type": "string",
                    "x-extensible-enum": [
                      "classic",
                      "framed"
                    ]
                  },
                  "accent": {
                    "anyOf": [
                      {
                        "type": "string",
                        "x-extensible-enum": [
                          "emerald",
                          "blue",
                          "teal",
                          "indigo",
                          "purple",
                          "pink",
                          "red",
                          "orange",
                          "yellow",
                          "gray"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "requires_passing",
                  "shows",
                  "template",
                  "accent"
                ]
              }
            },
            "required": [
              "id",
              "product_id",
              "quiz_id",
              "headline_copy",
              "title_copy",
              "awarded_copy",
              "reason_copy",
              "score_copy",
              "out_of_score_copy",
              "settings"
            ]
          },
          "product": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "category": {
                    "type": "string"
                  },
                  "deleted": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "slug",
                  "title",
                  "category",
                  "deleted"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "certificate_id": {
            "type": "string"
          },
          "score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "attempt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "issued_at": {
            "type": "string"
          }
        },
        "required": [
          "certificate",
          "product",
          "id",
          "certificate_id",
          "score",
          "attempt",
          "issued_at"
        ]
      }
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "items",
    "cursor"
  ]
}

GET/v1/stores/{store}/certificates/{certificate}

Reads one certificate issued to the customer. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
certificatepathrequired

200

Schema
{
  "type": "object",
  "properties": {
    "certificate": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "product_id": {
          "type": "string"
        },
        "quiz_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "headline_copy": {
          "type": "string"
        },
        "title_copy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "awarded_copy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "reason_copy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "score_copy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "out_of_score_copy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "settings": {
          "type": "object",
          "properties": {
            "requires_passing": {
              "type": "boolean"
            },
            "shows": {
              "type": "array",
              "items": {
                "type": "string",
                "x-extensible-enum": [
                  "date",
                  "score",
                  "qr_code"
                ]
              }
            },
            "template": {
              "type": "string",
              "x-extensible-enum": [
                "classic",
                "framed"
              ]
            },
            "accent": {
              "anyOf": [
                {
                  "type": "string",
                  "x-extensible-enum": [
                    "emerald",
                    "blue",
                    "teal",
                    "indigo",
                    "purple",
                    "pink",
                    "red",
                    "orange",
                    "yellow",
                    "gray"
                  ]
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "requires_passing",
            "shows",
            "template",
            "accent"
          ]
        }
      },
      "required": [
        "id",
        "product_id",
        "quiz_id",
        "headline_copy",
        "title_copy",
        "awarded_copy",
        "reason_copy",
        "score_copy",
        "out_of_score_copy",
        "settings"
      ]
    },
    "product": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            },
            "title": {
              "type": "string"
            },
            "category": {
              "type": "string"
            },
            "deleted": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "slug",
            "title",
            "category",
            "deleted"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "id": {
      "type": "string"
    },
    "certificate_id": {
      "type": "string"
    },
    "score": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "attempt": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "issued_at": {
      "type": "string"
    }
  },
  "required": [
    "certificate",
    "product",
    "id",
    "certificate_id",
    "score",
    "attempt",
    "issued_at"
  ]
}

GET/v1/stores/{store}/products/{product}/portfolio

Reads a portfolio product's book, as far as the customer may. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
productpathrequiredAn id, or slug:<slug>.

200

Schema
{
  "type": "object",
  "properties": {
    "exponent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "product": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "slug",
        "title"
      ]
    },
    "access": {
      "type": "string",
      "x-extensible-enum": [
        "locked",
        "unlocked",
        "bypassed"
      ]
    },
    "chart_cutoff": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "holdings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "symbol_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "shares": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "avg_cost": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "symbol",
          "name",
          "symbol_type",
          "currency",
          "shares",
          "avg_cost",
          "note",
          "updated_at"
        ]
      }
    },
    "id": {
      "type": "string"
    },
    "product_id": {
      "type": "string"
    },
    "currency": {
      "type": "string"
    },
    "settings": {
      "type": "object",
      "properties": {
        "show_absolute_values": {
          "type": "boolean"
        },
        "locked_chart_delay": {
          "type": "string",
          "x-extensible-enum": [
            "week",
            "month",
            "none",
            "current_quarter"
          ]
        }
      },
      "required": [
        "show_absolute_values",
        "locked_chart_delay"
      ]
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "exponent",
    "product",
    "access",
    "chart_cutoff",
    "holdings",
    "id",
    "product_id",
    "currency",
    "settings",
    "created_at"
  ]
}

GET/v1/stores/{store}/products/{product}/portfolio_events

Pages a portfolio's events. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
productpathrequiredAn id, or slug:<slug>.
filterqueryfilter[<field>]=<value> is an equality, filter[<field>][<op>]=<value> names the operator; in repeats the parameter.
sortquery
directionquery
limitquery
cursorquery
countquery

200

Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "symbol": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "type": {
            "type": "string"
          },
          "shares": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "effective_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "symbol_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "currency": {
            "type": "string"
          },
          "exponent": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "price_currency": {
            "type": "string"
          },
          "price_exponent": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "allocation": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "allocation_change": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "ratio": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "num": {
                    "type": "number"
                  },
                  "den": {
                    "type": "number"
                  }
                },
                "required": [
                  "num",
                  "den"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "files": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "attachment_id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "attachment_id"
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "occurred_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "symbol",
          "type",
          "shares",
          "price",
          "amount",
          "note",
          "effective_date",
          "symbol_type",
          "currency",
          "exponent",
          "price_currency",
          "price_exponent",
          "allocation",
          "allocation_change",
          "ratio",
          "files",
          "occurred_at"
        ]
      }
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "items",
    "cursor"
  ]
}

GET/v1/stores/{store}/products/{product}/portfolio_snapshots

Pages a portfolio's daily snapshots. Scope read.

ParameterIn
storepathrequiredA hostname of the store.
productpathrequiredAn id, or slug:<slug>.
filterqueryfilter[<field>]=<value> is an equality, filter[<field>][<op>]=<value> names the operator; in repeats the parameter.
sortquery
directionquery
limitquery
cursorquery
countquery

200

Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "exponent": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "cash": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "positions": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "twr": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "benchmark": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "type": "string",
            "x-extensible-enum": [
              "provisional",
              "settled"
            ]
          }
        },
        "required": [
          "date",
          "currency",
          "exponent",
          "value",
          "cash",
          "positions",
          "twr",
          "benchmark",
          "state"
        ]
      }
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "total": {
      "type": "number"
    },
    "facets": {
      "type": "object",
      "properties": {},
      "additionalProperties": {
        "type": "object",
        "properties": {},
        "additionalProperties": {
          "type": "number"
        }
      }
    }
  },
  "required": [
    "items",
    "cursor"
  ]
}

GET/v1/stores/{store}/files/{capability}

Answers the bytes of a private file a capability names, to the bearer or the publishable key that asked for it. Any token the customer granted. Also takes a publishable key.

ParameterIn
storepathrequiredA hostname of the store.
capabilitypathrequiredThe rest of the URL POST /attachments/url answered, its file name included.
publishable_keyqueryThe publishable key the URL was asked for with, already on the URL POST /attachments/url answered, so a bare src can name it: it stands in for the Publishable-Key header, and may be sent beside it only with the same key. A customer's token is never taken in the URL.
RangeheaderOne byte range of a file shown in place, bytes={first}-{last}, bytes={first}- or bytes=-{suffix}; a download is answered whole.
If-RangeheaderThe file's ETag from an earlier answer: the range is answered only while the file is unchanged, else the whole file.

200

The file's bytes, with its type and disposition.

review

PUT/v1/stores/{store}/products/{product}/review

Writes or updates the customer's review of a product. Scope review:write.

ParameterIn
storepathrequiredA hostname of the store.
productpathrequiredAn id, or slug:<slug>.

Body

Schema
{
  "type": "object",
  "properties": {
    "rating": {
      "type": "integer",
      "minimum": 1,
      "maximum": 5
    },
    "notes": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 4000
        },
        {
          "type": "null"
        }
      ]
    },
    "username": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "rating"
  ],
  "additionalProperties": false
}

200

Schema
{
  "type": "object",
  "properties": {
    "mine": {
      "type": "boolean"
    },
    "hidden_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "id": {
      "type": "string"
    },
    "product_id": {
      "type": "string"
    },
    "rating": {
      "type": "number"
    },
    "username": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "notes": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "reply": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "replied_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "mine",
    "hidden_at",
    "id",
    "product_id",
    "rating",
    "username",
    "notes",
    "reply",
    "replied_at",
    "created_at",
    "updated_at"
  ]
}

DELETE/v1/stores/{store}/products/{product}/review

Deletes the customer's review. Scope review:write.

ParameterIn
storepathrequiredA hostname of the store.
productpathrequiredAn id, or slug:<slug>.

200

Schema
{
  "type": "object",
  "properties": {
    "deleted": {
      "type": "boolean",
      "const": true
    }
  },
  "required": [
    "deleted"
  ]
}

store

GET/v1/stores/{store}

Reads the store: its name, branding and settings. Any token the customer granted. Also takes a publishable key.

ParameterIn
storepathrequiredA hostname of the store.
previewquery

200

Schema
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "locale": {
      "type": "string"
    },
    "hostname": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "tint": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "tint_dark": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "settings": {
      "type": "object",
      "properties": {
        "storefront": {
          "type": "object",
          "properties": {
            "external_site": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "socials": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "theme": {
              "type": "string",
              "x-extensible-enum": [
                "both",
                "light",
                "dark"
              ]
            },
            "no_index": {
              "type": "boolean"
            },
            "powered_by": {
              "type": "boolean"
            },
            "animated_background": {
              "type": "boolean"
            },
            "header_hidden": {
              "type": "boolean"
            },
            "footer_hidden": {
              "type": "boolean"
            }
          },
          "required": [
            "external_site",
            "socials",
            "theme",
            "no_index",
            "powered_by",
            "animated_background",
            "header_hidden",
            "footer_hidden"
          ]
        }
      },
      "required": [
        "storefront"
      ]
    },
    "body": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "access": {
              "type": "string",
              "x-extensible-enum": [
                "locked",
                "unlocked",
                "bypassed"
              ]
            },
            "id": {
              "type": "string"
            },
            "role": {
              "type": "string",
              "x-extensible-enum": [
                "body",
                "staged",
                "staged_file",
                "prose",
                "teaser",
                "embed",
                "deliverable",
                "poster",
                "logo",
                "prompt",
                "stylesheet"
              ]
            },
            "delivery": {
              "type": "string",
              "x-extensible-enum": [
                "inline",
                "download",
                "stream"
              ]
            },
            "preview_only": {
              "type": "boolean"
            },
            "position": {
              "type": "number"
            },
            "asset": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "ext": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "description": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "mime": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "bytes": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "storage": {
                  "type": "string",
                  "x-extensible-enum": [
                    "r2",
                    "s3",
                    "inline"
                  ]
                },
                "enforcement": {
                  "type": "string",
                  "x-extensible-enum": [
                    "public",
                    "external",
                    "signed"
                  ]
                },
                "locator": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "metadata": {
                  "type": "object",
                  "properties": {
                    "width": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "height": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "duration": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "pages": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "width",
                    "height",
                    "duration",
                    "pages"
                  ]
                },
                "status": {
                  "type": "string",
                  "x-extensible-enum": [
                    "pending",
                    "ready",
                    "failed",
                    "unavailable"
                  ]
                }
              },
              "required": [
                "id",
                "name",
                "title",
                "ext",
                "description",
                "mime",
                "bytes",
                "storage",
                "enforcement",
                "locator",
                "metadata",
                "status"
              ]
            }
          },
          "required": [
            "access",
            "id",
            "role",
            "delivery",
            "preview_only",
            "position",
            "asset"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "files": {
      "type": "object",
      "properties": {},
      "additionalProperties": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "x-extensible-enum": [
              "video",
              "audio",
              "image",
              "pdf",
              "file"
            ]
          },
          "mime": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "bytes": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "width": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "height": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "duration": {
            "description": "Seconds.",
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "pages": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "type": "string",
            "x-extensible-enum": [
              "pending",
              "ready",
              "failed",
              "unavailable"
            ]
          },
          "url": {
            "description": "A public file's lasting URL; null for a private one, or one whose bytes haven't landed.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "attachment_id": {
            "description": "The binding a private file opens through; null when the reader can't open it.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "kind",
          "mime",
          "name",
          "bytes",
          "width",
          "height",
          "duration",
          "pages",
          "status",
          "url",
          "attachment_id"
        ]
      }
    },
    "stylesheet": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "access": {
              "type": "string",
              "x-extensible-enum": [
                "locked",
                "unlocked",
                "bypassed"
              ]
            },
            "id": {
              "type": "string"
            },
            "role": {
              "type": "string",
              "x-extensible-enum": [
                "body",
                "staged",
                "staged_file",
                "prose",
                "teaser",
                "embed",
                "deliverable",
                "poster",
                "logo",
                "prompt",
                "stylesheet"
              ]
            },
            "delivery": {
              "type": "string",
              "x-extensible-enum": [
                "inline",
                "download",
                "stream"
              ]
            },
            "preview_only": {
              "type": "boolean"
            },
            "position": {
              "type": "number"
            },
            "asset": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "ext": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "description": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "mime": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "bytes": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "storage": {
                  "type": "string",
                  "x-extensible-enum": [
                    "r2",
                    "s3",
                    "inline"
                  ]
                },
                "enforcement": {
                  "type": "string",
                  "x-extensible-enum": [
                    "public",
                    "external",
                    "signed"
                  ]
                },
                "locator": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "metadata": {
                  "type": "object",
                  "properties": {
                    "width": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "height": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "duration": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "pages": {
                      "anyOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "width",
                    "height",
                    "duration",
                    "pages"
                  ]
                },
                "status": {
                  "type": "string",
                  "x-extensible-enum": [
                    "pending",
                    "ready",
                    "failed",
                    "unavailable"
                  ]
                }
              },
              "required": [
                "id",
                "name",
                "title",
                "ext",
                "description",
                "mime",
                "bytes",
                "storage",
                "enforcement",
                "locator",
                "metadata",
                "status"
              ]
            }
          },
          "required": [
            "access",
            "id",
            "role",
            "delivery",
            "preview_only",
            "position",
            "asset"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "integrations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "script": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "src": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "id": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "defer": {
                  "type": "boolean"
                },
                "async": {
                  "type": "boolean"
                },
                "inner_html": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "attributes": {
                  "description": "Any other string attribute on the tag.",
                  "type": "object",
                  "properties": {},
                  "additionalProperties": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "src",
                "id",
                "defer",
                "async",
                "inner_html",
                "attributes"
              ]
            }
          }
        },
        "required": [
          "id",
          "name",
          "kind",
          "script"
        ]
      }
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "discountable": {
            "type": "boolean"
          },
          "subscribable": {
            "type": "boolean"
          },
          "reviewable": {
            "type": "boolean"
          },
          "repeatable": {
            "description": "Bought again and again: a coffee, a donation, an invoice, a seat, a slot.",
            "type": "boolean"
          },
          "aside_size": {
            "type": "string",
            "x-extensible-enum": [
              "small",
              "none",
              "large"
            ]
          }
        },
        "required": [
          "id",
          "label",
          "discountable",
          "subscribable",
          "reviewable",
          "repeatable",
          "aside_size"
        ]
      }
    },
    "currencies": {
      "type": "object",
      "properties": {},
      "additionalProperties": {
        "type": "number"
      }
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "id",
    "name",
    "locale",
    "hostname",
    "description",
    "tint",
    "tint_dark",
    "settings",
    "body",
    "files",
    "stylesheet",
    "integrations",
    "categories",
    "currencies",
    "updated_at"
  ]
}

GET/v1/stores/{store}/certificates/{certificate}/verify

Checks that a certificate was issued and is not revoked. Any token the customer granted. Also takes a publishable key.

ParameterIn
storepathrequiredA hostname of the store.
certificatepathrequired

200

Schema
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "issued_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "score": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "holder": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "headline_copy": {
      "type": "string"
    },
    "title_copy": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "product": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            },
            "title": {
              "type": "string"
            },
            "category": {
              "type": "string"
            },
            "deleted": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "slug",
            "title",
            "category",
            "deleted"
          ]
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "id",
    "issued_at",
    "score",
    "holder",
    "headline_copy",
    "title_copy",
    "product"
  ]
}

subscription

POST/v1/stores/{store}/subscriptions/{subscription}/cancel

Cancels a subscription at the end of its period. Scope subscription:write.

ParameterIn
storepathrequiredA hostname of the store.
subscriptionpathrequired

Body

Schema
{
  "type": "object",
  "properties": {
    "reason": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    }
  },
  "additionalProperties": false
}

200

Schema
{
  "type": "object",
  "properties": {
    "product": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            },
            "title": {
              "type": "string"
            },
            "category": {
              "type": "string"
            },
            "deleted": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "slug",
            "title",
            "category",
            "deleted"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "plan": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "price_id": {
              "type": "string"
            },
            "amount": {
              "type": "number"
            },
            "currency": {
              "type": "string"
            },
            "exponent": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "period": {
              "type": "object",
              "properties": {
                "unit": {
                  "type": "string",
                  "x-extensible-enum": [
                    "day",
                    "week",
                    "month",
                    "year"
                  ]
                },
                "multiplier": {
                  "type": "number"
                }
              },
              "required": [
                "unit",
                "multiplier"
              ]
            },
            "autorenew": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "price_id",
            "amount",
            "currency",
            "exponent",
            "period",
            "autorenew"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "current_period": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "starts_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "ends_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "status": {
              "type": "string",
              "x-extensible-enum": [
                "pending",
                "failed",
                "paid",
                "refunded"
              ]
            }
          },
          "required": [
            "id",
            "starts_at",
            "ends_at",
            "status"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "id": {
      "type": "string"
    },
    "product_id": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "x-extensible-enum": [
        "unpaid",
        "active",
        "past_due",
        "paused",
        "cancelled",
        "ended"
      ]
    },
    "cancel_at_period_end": {
      "type": "boolean"
    },
    "cancel_reason": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "billing_managed": {
      "type": "boolean"
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "ended_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "product",
    "plan",
    "current_period",
    "id",
    "product_id",
    "status",
    "cancel_at_period_end",
    "cancel_reason",
    "billing_managed",
    "created_at",
    "ended_at"
  ]
}

POST/v1/stores/{store}/subscriptions/{subscription}/resume

Withdraws a subscription's scheduled cancellation. Scope subscription:write.

ParameterIn
storepathrequiredA hostname of the store.
subscriptionpathrequired

Body

Schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

200

Schema
{
  "type": "object",
  "properties": {
    "product": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            },
            "title": {
              "type": "string"
            },
            "category": {
              "type": "string"
            },
            "deleted": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "slug",
            "title",
            "category",
            "deleted"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "plan": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "price_id": {
              "type": "string"
            },
            "amount": {
              "type": "number"
            },
            "currency": {
              "type": "string"
            },
            "exponent": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "period": {
              "type": "object",
              "properties": {
                "unit": {
                  "type": "string",
                  "x-extensible-enum": [
                    "day",
                    "week",
                    "month",
                    "year"
                  ]
                },
                "multiplier": {
                  "type": "number"
                }
              },
              "required": [
                "unit",
                "multiplier"
              ]
            },
            "autorenew": {
              "type": "boolean"
            }
          },
          "required": [
            "id",
            "price_id",
            "amount",
            "currency",
            "exponent",
            "period",
            "autorenew"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "current_period": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "starts_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "ends_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "status": {
              "type": "string",
              "x-extensible-enum": [
                "pending",
                "failed",
                "paid",
                "refunded"
              ]
            }
          },
          "required": [
            "id",
            "starts_at",
            "ends_at",
            "status"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "id": {
      "type": "string"
    },
    "product_id": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "x-extensible-enum": [
        "unpaid",
        "active",
        "past_due",
        "paused",
        "cancelled",
        "ended"
      ]
    },
    "cancel_at_period_end": {
      "type": "boolean"
    },
    "cancel_reason": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "billing_managed": {
      "type": "boolean"
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "ended_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "product",
    "plan",
    "current_period",
    "id",
    "product_id",
    "status",
    "cancel_at_period_end",
    "cancel_reason",
    "billing_managed",
    "created_at",
    "ended_at"
  ]
}