Eden Communities API

The Communities API from Eden — 6 operation(s) for communities.

GitHub OpenAPI

Operations 6

GET /store-app/v1/communities List your communities #
GET /store-app/v1/communities/{communityId}/channels List a community's chat channels #
GET /store-app/v1/communities/{communityId}/categories List a community's forum categories #
POST /store-app/v1/communities/{communityId}/messages Send a chat message #
POST /store-app/v1/communities/{communityId}/posts Make a forum post #
POST /store-app/v1/communities/{communityId}/events Schedule an event #

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/eden-so:eden-so-communities-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

eden-so-communities-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Eden store Communities API
  version: 1.0.0
  summary: Sales, customers, products, communities, email list, and webhooks for an Eden store.
  description: 'Record sales from any checkout, give and remove access, list every sale and customer, make and publish products, post in your communities, manage the store''s email list, and get events by webhook.


    **Sign in:** `Authorization: Bearer `, an Eden API key from Settings → API with Full access, or Custom with Store on Edit (Store on Read can only make GET calls). A key reaches one store, picked when it''s made. Store calls need Starter or above.


    **Lists** take `limit` (1 to 100), `starting_after` (the last page''s `next_cursor`), `created_after`, and `created_before`, and answer `{ ok, data, has_more, next_cursor }`.


    Your workspace (Discover, scheduling, boards, notes, Custom AIs) is a separate spec: https://mcp.eden.so/v1/openapi.json'
  contact:
    name: Eden
    url: https://eden.so/help/api/api-reference/
  termsOfService: https://eden.so/terms/
servers:
- url: https://api.eden.so
  description: Eden store API
security:
- apiKey: []
tags:
- name: Communities
paths:
  /store-app/v1/communities:
    get:
      operationId: getCommunities
      summary: List your communities
      description: The communities this account runs (owner, admin, or moderator). Communities are invite-only for now; other accounts get 403 `communities_not_enabled`.
      tags:
      - Communities
      responses:
        '200':
          description: 'Done. Most answers carry `ok: true`.'
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/Failure'
        '401':
          $ref: '#/components/responses/Failure'
        '402':
          $ref: '#/components/responses/Failure'
        '403':
          $ref: '#/components/responses/Failure'
        '404':
          $ref: '#/components/responses/Failure'
        '409':
          $ref: '#/components/responses/Failure'
        '422':
          $ref: '#/components/responses/Failure'
        '429':
          $ref: '#/components/responses/Failure'
        '500':
          $ref: '#/components/responses/Failure'
  /store-app/v1/communities/{communityId}/channels:
    get:
      operationId: getCommunitiesCommunityIdChannels
      summary: List a community's chat channels
      description: Open channels. `posting_role` hosts means only the owner, admins, and moderators can send there.
      tags:
      - Communities
      parameters:
      - name: communityId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: 'Done. Most answers carry `ok: true`.'
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/Failure'
        '401':
          $ref: '#/components/responses/Failure'
        '402':
          $ref: '#/components/responses/Failure'
        '403':
          $ref: '#/components/responses/Failure'
        '404':
          $ref: '#/components/responses/Failure'
        '409':
          $ref: '#/components/responses/Failure'
        '422':
          $ref: '#/components/responses/Failure'
        '429':
          $ref: '#/components/responses/Failure'
        '500':
          $ref: '#/components/responses/Failure'
  /store-app/v1/communities/{communityId}/categories:
    get:
      operationId: getCommunitiesCommunityIdCategories
      summary: List a community's forum categories
      description: Open categories, with `can_post` for this account.
      tags:
      - Communities
      parameters:
      - name: communityId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: 'Done. Most answers carry `ok: true`.'
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/Failure'
        '401':
          $ref: '#/components/responses/Failure'
        '402':
          $ref: '#/components/responses/Failure'
        '403':
          $ref: '#/components/responses/Failure'
        '404':
          $ref: '#/components/responses/Failure'
        '409':
          $ref: '#/components/responses/Failure'
        '422':
          $ref: '#/components/responses/Failure'
        '429':
          $ref: '#/components/responses/Failure'
        '500':
          $ref: '#/components/responses/Failure'
  /store-app/v1/communities/{communityId}/messages:
    post:
      operationId: postCommunitiesCommunityIdMessages
      summary: Send a chat message
      description: 'Sends from your own account, live, like typing it in the app. Mention someone as `` to push them, or write `` to push everyone who can see the channel. Link a channel as `` or a Forum category as ``: members see a #Name chip that opens it. Slow mode and holds apply: `held: true` means it waits for a moderator.'
      tags:
      - Communities
      parameters:
      - name: communityId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - channel_id
              - text
              properties:
                channel_id:
                  minLength: 1
                  maxLength: 200
                  description: From GET /store-app/v1/communities/{communityId}/channels.
                  type: string
                text:
                  minLength: 1
                  maxLength: 4000
                  type: string
                reply_to_id:
                  maxLength: 200
                  description: Answer this chat message (a threaded reply).
                  type: string
      responses:
        '200':
          description: 'Done. Most answers carry `ok: true`.'
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/Failure'
        '401':
          $ref: '#/components/responses/Failure'
        '402':
          $ref: '#/components/responses/Failure'
        '403':
          $ref: '#/components/responses/Failure'
        '404':
          $ref: '#/components/responses/Failure'
        '409':
          $ref: '#/components/responses/Failure'
        '422':
          $ref: '#/components/responses/Failure'
        '429':
          $ref: '#/components/responses/Failure'
        '500':
          $ref: '#/components/responses/Failure'
  /store-app/v1/communities/{communityId}/posts:
    post:
      operationId: postCommunitiesCommunityIdPosts
      summary: Make a forum post
      description: 'A post shows in the Forum. `notify_everyone: true` pushes every member who can see it, and emails them when the community''s post emails are on. Without it, only people the post mentions hear about it. (`announcement: true` is the old name and still works.) `video_url` puts a YouTube, Vimeo, Loom, Tella, Descript, or Wistia video at the top of the post. `comments_off: true` turns off replies on it, and `likes_off: true` turns off hearts.'
      tags:
      - Communities
      parameters:
      - name: communityId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - title
              - text
              properties:
                title:
                  minLength: 1
                  maxLength: 140
                  type: string
                text:
                  minLength: 1
                  maxLength: 20000
                  description: The post body, in markdown.
                  type: string
                category_id:
                  maxLength: 200
                  description: From GET /store-app/v1/communities/{communityId}/categories. Leave out for none.
                  type: string
                notify_everyone:
                  description: 'true pushes every member who can see the post, and emails them when the community''s post emails are on. Leave out or false: only people it mentions hear about it.'
                  type: boolean
                announcement:
                  description: Old name for notify_everyone. Still works.
                  type: boolean
                video_url:
                  maxLength: 2000
                  description: A YouTube, Vimeo, Loom, Tella, Descript, or Wistia link, shown in a player at the top of the post. Other sites are refused.
                  type: string
                comments_off:
                  description: 'true turns off comments on the post: nobody can reply to it.'
                  type: boolean
                likes_off:
                  description: 'true turns off likes on the post: nobody can heart it.'
                  type: boolean
      responses:
        '200':
          description: 'Done. Most answers carry `ok: true`.'
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/Failure'
        '401':
          $ref: '#/components/responses/Failure'
        '402':
          $ref: '#/components/responses/Failure'
        '403':
          $ref: '#/components/responses/Failure'
        '404':
          $ref: '#/components/responses/Failure'
        '409':
          $ref: '#/components/responses/Failure'
        '422':
          $ref: '#/components/responses/Failure'
        '429':
          $ref: '#/components/responses/Failure'
        '500':
          $ref: '#/components/responses/Failure'
  /store-app/v1/communities/{communityId}/events:
    post:
      operationId: postCommunitiesCommunityIdEvents
      summary: Schedule an event
      description: One-off or repeating. Hosted live in Eden unless you send `link_url`. Members RSVP on the Events tab and get reminders; nobody is pushed just because it was made.
      tags:
      - Communities
      parameters:
      - name: communityId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - title
              - starts_at
              - time_zone
              properties:
                title:
                  minLength: 1
                  maxLength: 120
                  type: string
                starts_at:
                  minLength: 1
                  maxLength: 60
                  description: A wall time in time_zone ("2026-10-14T17:00") or an ISO time with an offset. Must be in the future.
                  type: string
                time_zone:
                  minLength: 1
                  maxLength: 80
                  description: An IANA zone, like "America/New_York".
                  type: string
                duration_min:
                  minimum: 15
                  maximum: 480
                  description: Default 60.
                  anyOf:
                  - format: integer
                    default: 0
                    type: string
                  - minimum: 15
                    maximum: 480
                    description: Default 60.
                    type: integer
                description:
                  maxLength: 4000
                  type: string
                repeat:
                  anyOf:
                  - const: none
                    type: string
                  - const: weekly
                    type: string
                  - const: every_2_weeks
                    type: string
                  - const: every_4_weeks
                    type: string
                  - const: monthly
                    type: string
                repeat_until:
                  maxLength: 60
                  description: A date ("2026-12-31"); the series stops after it.
                  type: string
                repeat_count:
                  minimum: 1
                  maximum: 200
                  anyOf:
                  - format: integer
                    default: 0
                    type: string
                  - minimum: 1
                    maximum: 200
                    type: integer
                link_url:
                  maxLength: 2000
                  description: An https:// call link (Zoom, Meet). Leave out to host it live in Eden.
                  type: string
                only_buyers_of:
                  maxItems: 50
                  description: Only buyers of these product ids see it. Leave out for every member.
                  type: array
                  items:
                    maxLength: 200
                    type: string
      responses:
        '200':
          description: 'Done. Most answers carry `ok: true`.'
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/Failure'
        '401':
          $ref: '#/components/responses/Failure'
        '402':
          $ref: '#/components/responses/Failure'
        '403':
          $ref: '#/components/responses/Failure'
        '404':
          $ref: '#/components/responses/Failure'
        '409':
          $ref: '#/components/responses/Failure'
        '422':
          $ref: '#/components/responses/Failure'
        '429':
          $ref: '#/components/responses/Failure'
        '500':
          $ref: '#/components/responses/Failure'
components:
  schemas:
    Failure:
      type: object
      required:
      - ok
      - error
      properties:
        ok:
          type: boolean
          const: false
        error:
          type: string
          description: A machine code, like `product_not_found`.
        message:
          type: string
  responses:
    Failure:
      description: The call failed. `error` and `message` say why.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Failure'
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      bearerFormat: eden_pat_…
      description: An Eden API key from Settings → API, or the Zapier app's OAuth token.