BTCPay Server Crowdfund API

Crowdfund operations

Operations 3

PUT /api/v1/apps/crowdfund/{appId} Update a Crowdfund app #
GET /api/v1/apps/crowdfund/{appId} Get crowdfund app data #
POST /api/v1/stores/{storeId}/apps/crowdfund Create a new Crowdfund app #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/btcpay-crowdfund-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

btcpay-crowdfund-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: BTCPay Greenfield Crowdfund API
  version: v1
  description: '# Introduction


    The BTCPay Server Greenfield API is a REST API.'
  contact:
    name: BTCPay Server
    url: https://btcpayserver.org
  license:
    name: MIT
    url: https://github.com/btcpayserver/btcpayserver/blob/master/LICENSE
servers:
- url: https://{btcpay-host}
  description: Your BTCPay Server instance
  variables:
    btcpay-host:
      default: mainnet.demo.btcpayserver.org
      description: The hostname of your BTCPay Server instance
security:
- API_Key: []
  Basic: []
tags:
- name: Crowdfund
  description: Crowdfund operations
paths:
  /api/v1/apps/crowdfund/{appId}:
    parameters:
    - $ref: '#/components/parameters/AppId'
    put:
      operationId: Apps_PutCrowdfundApp
      summary: Update a Crowdfund app
      description: Full update. GET the app first, modify the data, then PUT the complete payload.
      requestBody:
        x-name: request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CrowdfundAppRequest'
        required: true
        x-position: 1
      responses:
        '200':
          description: App details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrowdfundAppData'
        '404':
          description: Crowdfund app with specified ID was not found
        '422':
          description: Unable to validate the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationProblemDetails'
      tags:
      - Crowdfund
      security:
      - API_Key:
        - btcpay.store.canmodifystoresettings
        Basic: []
    get:
      tags:
      - Crowdfund
      operationId: Apps_GetCrowdfundApp
      summary: Get crowdfund app data
      description: Returns crowdfund app data
      responses:
        '200':
          description: Crowdfund app data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrowdfundAppData'
        '404':
          description: Crowdfund app with specified ID was not found
  /api/v1/stores/{storeId}/apps/crowdfund:
    parameters:
    - $ref: '#/components/parameters/StoreId'
    post:
      operationId: Apps_CreateCrowdfundApp
      summary: Create a new Crowdfund app
      requestBody:
        x-name: request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CrowdfundAppRequest'
        required: true
        x-position: 1
      responses:
        '200':
          description: Created app details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrowdfundAppData'
        '422':
          description: Unable to validate the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationProblemDetails'
      tags:
      - Crowdfund
      security:
      - API_Key:
        - btcpay.store.canmodifystoresettings
        Basic: []
components:
  parameters:
    StoreId:
      name: storeId
      in: path
      required: true
      description: The store ID
      schema:
        $ref: '#/components/schemas/StoreId'
    AppId:
      name: appId
      in: path
      required: true
      description: App ID
      schema:
        type: string
  schemas:
    AppBaseData:
      type: object
      properties:
        id:
          type: string
          description: Id of the app
          example: 3ki4jsAkN4u9rv1PUzj1odX4Nx7s
        appName:
          type: string
          description: Name given to the app when it was created
          example: my test app
        storeId:
          description: Id of the store to which the app belongs
          allOf:
          - $ref: '#/components/schemas/StoreId'
        created:
          type: integer
          example: 1651554744
          description: UNIX timestamp for when the app was created
        appType:
          type: string
          example: PointOfSale
          description: Type of the app which was created
        archived:
          type:
          - boolean
          - 'null'
          description: If true, the app does not appear in the apps list by default.
          default: false
    CrowdfundBaseData:
      allOf:
      - $ref: '#/components/schemas/AppBaseData'
      - type: object
        properties:
          title:
            type:
            - string
            - 'null'
            description: Display title of the app
            example: My crowdfund app
          description:
            type:
            - string
            - 'null'
            description: App description
            example: My crowdfund description
          enabled:
            type:
            - boolean
            - 'null'
            description: Whether the app is enabled to be viewed by everyone
            example: true
          enforceTargetAmount:
            type:
            - boolean
            - 'null'
            description: Whether contributions over the set target amount are allowed
            example: false
          startDate:
            type:
            - number
            - 'null'
            description: UNIX timestamp for crowdfund start time (https://www.unixtimestamp.com/)
            allOf:
            - $ref: '#/components/schemas/UnixTimestamp'
            example: 768658369
          endDate:
            type:
            - number
            - 'null'
            description: UNIX timestamp for crowdfund end time (https://www.unixtimestamp.com/)
            allOf:
            - $ref: '#/components/schemas/UnixTimestamp'
            example: 771336769
          targetCurrency:
            type:
            - string
            - 'null'
            description: Target currency for the crowdfund
            example: BTC
          targetAmount:
            type:
            - number
            - 'null'
            description: Target amount for the crowdfund
            example: 420.69
          mainImageUrl:
            type:
            - string
            - 'null'
            description: URL for image used as a cover image for the app
          notificationUrl:
            type:
            - string
            - 'null'
            description: Callback notification url to POST to once when invoice is paid for and once when there are enough blockchain confirmations
          tagline:
            type:
            - string
            - 'null'
            description: Tagline for the app displayed to user
            example: I can't believe it's not butter
          disqusEnabled:
            type:
            - boolean
            - 'null'
            description: Whether Disqus is enabled for the app
          disqusShortname:
            type:
            - string
            - 'null'
            description: Disqus shortname to used for the app
          soundsEnabled:
            type:
            - boolean
            - 'null'
            description: Whether sounds on new contributions are enabled
            example: false
          animationsEnabled:
            type:
            - boolean
            - 'null'
            description: Whether background animations on new contributions are enabled
            example: true
          resetEveryAmount:
            type:
            - number
            - 'null'
            description: Contribution goal reset frequency amount
            example: 1
          resetEvery:
            type:
            - string
            - 'null'
            description: Contribution goal reset frequency
            example: Day
          displayPerksValue:
            type:
            - boolean
            - 'null'
            description: Whether perk values are displayed
            example: false
          displayPerksRanking:
            type:
            - boolean
            - 'null'
            description: Whether perk ranking is displayed
            example: false
          sortPerksByPopularity:
            type:
            - boolean
            - 'null'
            description: Whether perks are sorted by popularity
            default: true
          sounds:
            type:
            - array
            - 'null'
            description: Array of custom sounds which can be used on new contributions
            items:
              type: string
            example:
            - https://github.com/ClaudiuHKS/AdvancedQuakeSounds/raw/master/sound/AQS/doublekill.wav
          animationColors:
            type:
            - array
            - 'null'
            description: Array of custom HEX colors which can be used for background animations on new contributions
            items:
              type: string
            example:
            - '#FF0000'
            - '#00FF00'
            - '#0000FF'
          htmlLang:
            type:
            - string
            - 'null'
            description: Used for SEO, the [HTML Lang](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang) of the page
            example: en
          htmlMetaTags:
            type:
            - string
            - 'null'
            description: Used for SEO, the [Meta tags](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta) of the page
            example: <meta name="description" content="Your description">
          formId:
            type:
            - string
            - 'null'
            description: Form ID to request customer data
    ValidationProblemDetails:
      type: array
      description: An array of validation errors of the request
      items:
        type: object
        description: A specific validation error on a json property
        properties:
          path:
            type: string
            description: The json path of the property which failed validation
          message:
            type: string
            description: User friendly error message about the validation
    CrowdfundAppData:
      allOf:
      - $ref: '#/components/schemas/CrowdfundBaseData'
      - type: object
        properties:
          perks:
            type: object
            description: JSON of perks available in the app
            example:
            - description: null
              id: test perk
              image: null
              price:
                type: 2
                formatted: $100.00
                value: 100.0
              title: test perk
              buyButtonText: null
              inventory: null
              paymentMethods: null
              disabled: false
            - description: this is an amazing perk
              id: test test
              image: https://mainnet.demo.btcpayserver.org/img/errorpages/404_nicolas.jpg
              price:
                type: 1
                formatted: $69.42
                value: 69.42
              title: test test
              buyButtonText: null
              inventory: 5
              paymentMethods: null
              disabled: false
            - description: null
              id: f$t45hj764325
              image: null
              price:
                type: 0
                formatted: null
                value: null
              title: amazing perk
              buyButtonText: button text
              inventory: null
              paymentMethods: null
              disabled: true
    UnixTimestamp:
      type: number
      format: int32
      example: 1592312018
      description: A unix timestamp in seconds
    StoreId:
      type: string
      description: Store ID of the item
      example: 9CiNzKoANXxmk5ayZngSXrHTiVvvgCrwrpFQd4m2K776
    CrowdfundAppRequest:
      allOf:
      - $ref: '#/components/schemas/CrowdfundBaseData'
      - type: object
        properties:
          perksTemplate:
            type: string
            description: JSON of perks available in the app
  securitySchemes:
    API_Key:
      type: apiKey
      in: header
      name: Authorization
      description: 'BTCPay Server API key. Format: ''token {apiKey}'''
    Basic:
      type: http
      scheme: basic
      description: HTTP Basic Authentication with email and password
externalDocs:
  description: Check out our examples on how to use the API
  url: https://docs.btcpayserver.org/Development/GreenFieldExample/