Skip to content

Communities​

Communities (#2065): the directory, the community page and its tabs, joining, people, invites, roles, posts, sharing Fundlies, and each person's community settings.


List communities (the directory)​

GET
/communities

Active, listed communities. q (2 characters or more) matches name, city and about; category is a kind or paid. counts apply q and ignore category.

Parameters​

Query Parameters

q
Type
string
category
Type
string
Valid values
"all""paid""city""church""diaspora""families""school""workplace""other"
Default
"all"
sort
Type
string
Valid values
"featured""members""raised""new"
Default
"featured"
limit
Type
integer
Minimum
1
Maximum
48
Default
24
offset
Type
integer
Minimum
0
Default
0

Responses​

OK

application/json
JSON
{
"data": [
],
"total": 0,
"pagination": "string",
"counts": {
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Variables
Key
Value

Samples​


Create a community​

POST
/communities

The caller becomes the owner. Co-leaders get invites with their role. draft: true keeps it visible to the owner only. Settings are audit-logged; community.created is published.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Request Body​

application/json
JSON
{
"name": "string",
"slug": "string",
"kind": "string",
"city_text": "string",
"place_id": "string",
"languages": [
"string"
],
"about": "string",
"guidelines": [
"string"
],
"photo_url": "string",
"avatar_url": "string",
"photo_original_url": "string",
"photo_crop": {
"additionalProperties": "string"
},
"avatar_crop": {
"additionalProperties": "string"
},
"visibility": "string",
"listed": true,
"join_approval": "string",
"membership": "string",
"price_cents": 0,
"yearly_price_cents": 0,
"perks": [
"string"
],
"leaders_join_free": true,
"share_policy": "string",
"add_policy": "string",
"default_alert": "string",
"show_leaders": true,
"co_leaders": [
{
"user_id": "string",
"role": "string",
"additionalProperties": "string"
}
],
"draft": true,
"additionalProperties": "string"
}

Responses​

OK

application/json
JSON
{
"data": "string",
"additionalProperties": "string"
}

Playground​

Server
Authorization
Body

Samples​


Top communities this month​

GET
/communities/top

The current calendar month, ranked by money raised for their Fundlies, new members, or Fundlies fully funded.

Parameters​

Query Parameters

metric
Type
string
Valid values
"raised""new_members""funded"
Default
"raised"
limit
Type
integer
Minimum
1
Maximum
20
Default
5

Responses​

OK

application/json
JSON
{
"data": [
{
"community": "string",
"rank": 0,
"value": 0,
"fundlies_month": 0,
"funded_month": 0,
"additionalProperties": "string"
}
],
"month": "string",
"additionalProperties": "string"
}

Playground​

Server
Variables
Key
Value

Samples​


Check a community link​

GET
/communities/slug-available

Whether /communities/<slug> is free, and a suggestion when it is not.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Query Parameters

slug
Type
string

Responses​

OK

application/json
JSON
{
"data": {
"slug": "string",
"available": true,
"reason": "string",
"suggestion": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Who would hear about a shared Fundly​

GET
/communities/reach

For the share step: distinct people across up to 3 of the caller's communities (minus the caller), the overlap who hear once, and per community the instant and digest counts. Counts only.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Query Parameters

ids

Comma-separated community ids or slugs, at most 3.

Type
string

Responses​

OK

application/json
JSON
{
"data": {
"total": 0,
"overlap": 0,
"digest": 0,
"per": [
{
"community_id": "string",
"instant": 0,
"digest": 0,
"additionalProperties": "string"
}
],
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Featured communities for the home page​

GET
/home/featured-communities

Staff-featured communities first, then the biggest.

Parameters​

Query Parameters

limit
Type
integer
Minimum
1
Maximum
12
Default
4

Responses​

OK

application/json
JSON
{
"data": [
],
"additionalProperties": "string"
}

Playground​

Server
Variables
Key
Value

Samples​


Preview an invite​

GET
/communities/invites/{token}

Works for a member's share link code and for an emailed invite token. Shows the community and who invited.

Parameters​

Path Parameters

token*

An invite link code or an emailed invite token.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": {
"kind": "string",
"community": "string",
"invited_by": "string",
"role": "string",
"status": "string",
"expires_at": "string",
"requires_approval": true,
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Variables
Key
Value

Samples​


Accept an invite​

POST
/communities/invites/{token}/accept

A share link joins (or requests, when approval applies); an emailed invite joins with its role. A paid community answers 402 for a member invite.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

token*

An invite link code or an emailed invite token.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": {
"status": "string",
"community": {
"slug": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Decline an invite​

POST
/communities/invites/{token}/decline

Declines an emailed invite.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

token*

An invite link code or an emailed invite token.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": {
"status": "string",
"community": {
"slug": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Get a community​

GET
/communities/{key}

404 for a draft (except to its owner), a deleted community, or a hidden or suspended one (except to its members). A private community answers 200; its feed and members are gated.

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": "string",
"additionalProperties": "string"
}

Playground​

Server
Variables
Key
Value

Samples​


Delete a community​

DELETE
/communities/{key}

Owner only. A soft delete; 409 HAS_MONEY while the fund holds money or memberships are paying.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": {
"deleted": true,
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Update a community​

PATCH
/communities/{key}

Owner and leaders. Plan fields (membership, prices, perks, leaders_join_free) are owner only and follow the paid-membership rules. publish: true turns a draft live. Attribute CRUD: audit-logged, no event.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Request Body​

application/json
JSON
{
"publish": true,
"additionalProperties": "string"
}

Responses​

OK

application/json
JSON
{
"data": "string",
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


A community's About tab​

GET
/communities/{key}/about

Public, private communities included.

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": {
"about": "string",
"languages": [
"string"
],
"guidelines": [
"string"
],
"kind": "string",
"city_text": "string",
"stats": {
"additionalProperties": "string"
},
"team": [
{
"additionalProperties": "string"
}
],
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Variables
Key
Value

Samples​


A community's feed​

GET
/communities/{key}/feed

Posts, the projection of community events (Fundlies posted, milestones, joins grouped per week, fund moves when the viewer can see the fund) and updates on Fundlies posted here, newest first. 403 MEMBERS_ONLY for non-members of a private community.

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Query Parameters

limit
Type
integer
Minimum
1
Maximum
50
Default
20
before

next_before from the previous page.

Type
string

Responses​

OK

application/json
JSON
{
"data": [
],
"next_before": "string",
"additionalProperties": "string"
}

Playground​

Server
Variables
Key
Value

Samples​


Fundlies posted in a community​

GET
/communities/{key}/fundlies

Public, private communities included. Active = live and not fully funded; funded = raised at least the goal; ended = neither. q matches title, organizer name and city.

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Query Parameters

status
Type
string
Valid values
"active""funded""ended"
Default
"active"
q
Type
string
sort
Type
string
Valid values
"newest""most_raised""ending"
Default
"newest"
limit
Type
integer
Minimum
1
Maximum
48
Default
24
offset
Type
integer
Minimum
0
Default
0

Responses​

OK

application/json
JSON
{
"data": [
],
"total": 0,
"counts": {
"active": 0,
"funded": 0,
"ended": 0,
"additionalProperties": "string"
},
"pagination": "string",
"additionalProperties": "string"
}

Playground​

Server
Variables
Key
Value

Samples​


A community's members​

GET
/communities/{key}/members

The team first (owner, leaders, volunteers), then members, newest first; with show_leaders off and a viewer below leader, one list without roles. q matches public names; total is the match count.

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Query Parameters

q
Type
string
role
Type
string
Valid values
"all""team""leaders""volunteers""members"
filter
Type
string
Valid values
"new_month"
limit
Type
integer
Minimum
1
Maximum
100
Default
48
offset
Type
integer
Minimum
0
Default
0

Responses​

OK

application/json
JSON
{
"data": [
],
"total": 0,
"counts": {
"all": 0,
"team": 0,
"leaders": 0,
"volunteers": 0,
"members": 0,
"new_month": 0,
"additionalProperties": "string"
},
"pagination": "string",
"additionalProperties": "string"
}

Playground​

Server
Variables
Key
Value

Samples​


Add people​

POST
/communities/{key}/members

Adds where the person's setting allows it, otherwise sends an invite. Up to 50 adds and invites a day per person. Added people get one notification with a Leave action.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Request Body​

application/json
JSON
{
"user_ids": [
"string"
],
"additionalProperties": "string"
}

Responses​

OK

application/json
JSON
{
"data": {
"added": [
"string"
],
"invited": [
"string"
],
"skipped": [
"string"
],
"skipped_reasons": {
"additionalProperties": "string"
},
"additionalProperties": "string"
},
"remaining_today": 0,
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Who hears a new Fundly​

GET
/communities/{key}/alert-counts

Owner, leaders and volunteers. Counts only; members' own settings stay private.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": {
"instant": 0,
"digest": 0,
"off": 0,
"muted": 0,
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Join a community​

POST
/communities/{key}/join

One tap for a public community without approval; a request otherwise. A share link without approval (made by an owner or leader) joins directly. 402 PAYMENT_REQUIRED for a paid community; 403 REMOVED for a removed person.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Request Body​

application/json
JSON
{
"invite": "string",
"via": "string",
"additionalProperties": "string"
}

Responses​

OK

application/json
JSON
{
"data": {
"status": "string",
"viewer": {
"additionalProperties": "string"
},
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Leave a community​

POST
/communities/{key}/leave

409 OWNER_MUST_TRANSFER for the owner; 409 PAID_MEMBERSHIP_ACTIVE while a paid membership runs (cancel it first).

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": {
"left": true,
"access_until": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Join requests​

GET
/communities/{key}/requests

Owner, leaders and volunteers.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": [
{
"user_id": "string",
"name": "string",
"avatar_url": "string",
"requested_at": "string",
"via_invite": true,
"additionalProperties": "string"
}
],
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Approve a join request​

POST
/communities/{key}/requests/{userId}/approve

Owner, leaders and volunteers. Publishes community.member_joined.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required
userId*
Type
string
Required
Format
"uuid"

Responses​

OK

application/json
JSON
{
"data": {
"status": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Deny a join request​

POST
/communities/{key}/requests/{userId}/deny

Owner, leaders and volunteers.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required
userId*
Type
string
Required
Format
"uuid"

Responses​

OK

application/json
JSON
{
"data": {
"status": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Deny a join request (alias)​

POST
/communities/{key}/requests/{userId}/decline

The same as /deny.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required
userId*
Type
string
Required
Format
"uuid"

Responses​

OK

application/json
JSON
{
"data": {
"status": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


My membership settings​

GET
/communities/{key}/me

The caller's role and alert choice in this community.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": {
"role": "string",
"status": "string",
"alert_level": "string",
"channels": {
"email": true,
"push": true,
"web": true,
"additionalProperties": "string"
},
"muted_until": "string",
"pinned_home": true,
"joined_at": "string",
"joined_via": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Change my alerts here​

PATCH
/communities/{key}/me

Alert level, channels (an array or a partial object), mute (mute_days or muted_until, null unmutes) and pin to home.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Request Body​

application/json
JSON
{
"alert_level": "string",
"channels": {
"additionalProperties": "string"
},
"mute_days": 0,
"muted_until": "string",
"pinned_home": true,
"additionalProperties": "string"
}

Responses​

OK

application/json
JSON
{
"data": {
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Add people: search and suggestions​

GET
/communities/{key}/people

Names and handles of public profiles, or an exact email; with no q, people the caller knows. state says whether an Add adds them right away (their community_add_policy) or sends an invite.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Query Parameters

q
Type
string

Responses​

OK

application/json
JSON
{
"data": [
{
"user_id": "string",
"name": "string",
"avatar_url": "string",
"handle": "string",
"city": "string",
"reason": "string",
"state": "string",
"invited_at": "string",
"additionalProperties": "string"
}
],
"remaining_today": 0,
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Remove a member​

DELETE
/communities/{key}/members/{userId}

Owner and leaders; never the owner; a leader cannot remove a leader. A removed person rejoins only through a leader's invite.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required
userId*
Type
string
Required
Format
"uuid"

Responses​

OK

application/json
JSON
{
"data": {
"removed": true,
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Change a member's role​

PATCH
/communities/{key}/members/{userId}

Leaders change roles below leader; only the owner makes or unmakes leaders. 409 LEADER_LIMIT past 10 leaders, the owner included.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required
userId*
Type
string
Required
Format
"uuid"

Request Body​

application/json
JSON
{
"role": "string",
"additionalProperties": "string"
}

Responses​

OK

application/json
JSON
{
"data": {
"user_id": "string",
"role": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Hand the community to a leader​

POST
/communities/{key}/transfer

Owner only; the new owner must be an active leader. The old owner becomes a leader, or leaves with leave: true.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Request Body​

application/json
JSON
{
"user_id": "string",
"leave": true,
"additionalProperties": "string"
}

Responses​

OK

application/json
JSON
{
"data": "string",
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Pending invites​

GET
/communities/{key}/invites

Owner, leaders and volunteers. An address shows only for invites typed as an address.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": [
{
"id": "string",
"user_id": "string",
"name": "string",
"avatar_url": "string",
"email": "string",
"role": "string",
"invited_by_name": "string",
"created_at": "string",
"expires_at": "string",
"last_sent_at": "string",
"additionalProperties": "string"
}
],
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Invite people​

POST
/communities/{key}/invites

By email or account. Invites expire after 14 days. A volunteer role needs a leader; a leader role needs the owner.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Request Body​

application/json
JSON
{
"emails": [
"string"
],
"user_ids": [
"string"
],
"role": "string",
"additionalProperties": "string"
}

Responses​

OK

application/json
JSON
{
"data": {
"invited": 0,
"invites": [
{
"additionalProperties": "string"
}
],
"skipped": [
{
"additionalProperties": "string"
}
],
"additionalProperties": "string"
},
"remaining_today": 0,
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Resend an invite​

POST
/communities/{key}/invites/{inviteId}/resend

A fresh token and 14 more days; once a day.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required
inviteId*
Type
string
Required
Format
"uuid"

Responses​

OK

application/json
JSON
{
"data": {
"resent": true,
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Cancel an invite​

DELETE
/communities/{key}/invites/{inviteId}

Owner, leaders and volunteers, or whoever sent it.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required
inviteId*
Type
string
Required
Format
"uuid"

Responses​

OK

application/json
JSON
{
"data": {
"cancelled": true,
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


My invite link​

GET
/communities/{key}/invite-link

Each member has their own link (/communities/<slug>?invite=<token>), so joins credit them.

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

OK

application/json
JSON
{
"data": {
"token": "string",
"url": "string",
"uses": 0,
"requires_approval": true,
"expires_at": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}
Server
Authorization
Variables
Key
Value

Change my invite link​

PATCH
/communities/{key}/invite-link

Owner and leaders: approval for each join, and an expiry.

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Path Parameters

key*

The community's slug or uuid.

Type
string
Required
application/json
JSON
{
"requires_approval": true,
"expires_in_days": 0,
"additionalProperties": "string"
}

OK

application/json
JSON
{
"data": {
"additionalProperties": "string"
},
"additionalProperties": "string"
}
Server
Authorization
Variables
Key
Value
Body

Replace my invite link​

POST
/communities/{key}/invite-link/rotate

A new token; the old one stops working.

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

OK

application/json
JSON
{
"data": {
"additionalProperties": "string"
},
"additionalProperties": "string"
}
Server
Authorization
Variables
Key
Value

Post to a community​

POST
/communities/{key}/posts

Owner, leaders and volunteers; pinning needs owner or leader, and unpins the previous post.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Request Body​

application/json
JSON
{
"body": "string",
"pinned": true,
"additionalProperties": "string"
}

Responses​

OK

application/json
JSON
{
"data": {
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Delete a post​

DELETE
/communities/{key}/posts/{postId}

The author, or owner and leaders.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required
postId*
Type
string
Required
Format
"uuid"

Responses​

OK

application/json
JSON
{
"data": {
"deleted": true,
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Edit or pin a post​

PATCH
/communities/{key}/posts/{postId}

The author edits; owner and leaders pin.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required
postId*
Type
string
Required
Format
"uuid"

Request Body​

application/json
JSON
{
"body": "string",
"pinned": true,
"additionalProperties": "string"
}

Responses​

OK

application/json
JSON
{
"data": {
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Communities I can share a Fundly to​

GET
/me/communities/shareable

The caller's active communities, with this Fundly's share state when fundraiser_id is given (it may not exist yet).

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Query Parameters

fundraiser_id
Type
string
Format
"uuid"

Responses​

OK

application/json
JSON
{
"data": [
],
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


A Fundly's community shares​

GET
/fundraisers/{id}/communities

The organizer's view of where the Fundly is shared and what each share waits for.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

id*

The fundraiser id.

Type
string
Required
Format
"uuid"

Responses​

OK

application/json
JSON
{
"data": [
{
"community_id": "string",
"slug": "string",
"name": "string",
"status": "string",
"primary": true,
"awaiting": "string",
"additionalProperties": "string"
}
],
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Share a Fundly to communities​

PUT
/fundraisers/{id}/communities

At most 3, exactly one primary; [] removes every share. A share posts only after the Fundly passes verification and, under leader approval, a leader approves; community.fundly_posted fires then.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

id*

The fundraiser id.

Type
string
Required
Format
"uuid"

Request Body​

application/json
JSON
{
"communities": [
{
"community_id": "string",
"primary": true,
"additionalProperties": "string"
}
],
"additionalProperties": "string"
}

Responses​

OK

application/json
JSON
{
"data": [
{
"additionalProperties": "string"
}
],
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Fundlies waiting for approval​

GET
/communities/{key}/pending-fundlies

Owner and leaders: shares waiting under leader approval.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": [
{
"fundraiser": "string",
"shared_by": "string",
"shared_at": "string",
"verified": true,
"additionalProperties": "string"
}
],
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Approve a shared Fundly​

POST
/communities/{key}/fundlies/{fundraiserId}/approve

Owner and leaders. Posts it now if it passed verification.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required
fundraiserId*
Type
string
Required
Format
"uuid"

Responses​

OK

application/json
JSON
{
"data": {
"status": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Reject a shared Fundly​

POST
/communities/{key}/fundlies/{fundraiserId}/reject

Owner and leaders.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required
fundraiserId*
Type
string
Required
Format
"uuid"

Responses​

OK

application/json
JSON
{
"data": {
"status": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


My communities​

GET
/me/communities

Pinned first, then by role and name, with my alert choice and any paid membership.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Responses​

OK

application/json
JSON
{
"data": [
],
"additionalProperties": "string"
}

Playground​

Server
Authorization

Samples​


My community settings​

GET
/me/community-settings

Who can add me, quiet hours, profile and leaderboard visibility, timezone.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Responses​

OK

application/json
JSON
{
"data": {
"add_policy": "string",
"quiet_hours": {
"enabled": true,
"start": "string",
"end": "string",
"additionalProperties": "string"
},
"show_on_profile": true,
"show_on_leaderboards": true,
"timezone": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization

Samples​


Change my community settings (PUT)​

PUT
/me/community-settings

The same as PATCH.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Request Body​

application/json
JSON
{
"add_policy": "string",
"additionalProperties": "string"
}

Responses​

OK

application/json
JSON
{
"data": {
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Body

Samples​


Change my community settings​

PATCH
/me/community-settings

Partial. Quiet hours are 10pm to 7am local; only enabled is stored.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Request Body​

application/json
JSON
{
"add_policy": "string",
"quiet_hours": {
"enabled": true,
"additionalProperties": "string"
},
"show_on_profile": true,
"show_on_leaderboards": true,
"timezone": "string",
"additionalProperties": "string"
}

Responses​

OK

application/json
JSON
{
"data": {
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Body

Samples​


A person's communities​

GET
/users/{id}/communities

For the profile. Empty when the person turned it off; private communities show only to viewers who are members too.

Parameters​

Path Parameters

id*

Profile uuid or handle.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": [
],
"additionalProperties": "string"
}

Playground​

Server
Variables
Key
Value

Samples​


One-click unsubscribe (RFC 8058)​

POST
/unsubscribe/one-click

The List-Unsubscribe-Post target mailbox providers call. The signed token names one address and one scope (the email's category); that one suppression is written at once.

Parameters​

Query Parameters

token

The signed unsubscribe token from the List-Unsubscribe header.

Type
string

Responses​

OK

application/json
JSON
{
"data": {
"scope": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Variables
Key
Value

Samples​


Connect the community's Stripe account​

POST
/communities/{id}/stripe/onboarding

Owner only. Creates (or reuses) the community's own Stripe Express account, which the owner verifies, and returns a fresh Stripe-hosted onboarding link that returns to the community's settings. accept_debit_terms: true records the owner's consent to Stripe Account Debits, which giving from the fund to a Fundly needs. Requires a signed-in session.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

id*

The community's uuid or slug.

Type
string
Required

Request Body​

application/json
JSON
{
"accept_debit_terms": true
}

Responses​

OK

application/json
JSON
{
"data": {
"url": "string",
"account_id": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


The community's Stripe account status​

GET
/communities/{id}/stripe/status

Owner and leaders. Read live from Stripe (the stored row when Stripe is unreachable).

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

id*

The community's uuid or slug.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": {
"connected": true,
"status": "string",
"account_id": "string",
"charges_enabled": true,
"payouts_enabled": true,
"details_submitted": true,
"requirements_due": [
"string"
],
"bank_name": "string",
"last4": "string",
"payout_schedule": "string",
"debit_consent": true,
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Open the community's Stripe dashboard​

POST
/communities/{id}/stripe/dashboard-link

Owner only: a one-time Stripe Express dashboard login link (bank account, payouts).

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Path Parameters

id*

The community's uuid or slug.

Type
string
Required

OK

application/json
JSON
{
"data": {
"url": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}
Server
Authorization
Variables
Key
Value

The paid membership plan​

GET
/communities/{id}/membership

Public. The monthly and yearly price, perks, who receives the dues (named even when leaders are hidden), a price change serving its 30 days of notice, the card fee preview (FundlyHub keeps 0%), and that dues are not tax-deductible.

Authorizations​

or
BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

id*

The community's uuid or slug.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": {
"membership": "string",
"price_cents": 0,
"yearly_price_cents": 0,
"currency": "string",
"perks": [
"string"
],
"leaders_join_free": true,
"payee_name": "string",
"pending_change": {
"price_cents": 0,
"yearly_price_cents": 0,
"effective_at": "string"
},
"accepting_payments": true,
"fee_preview": {
"gross_cents": 0,
"card_fee_cents": 0,
"fundlyhub_fee_cents": 0,
"net_cents": 0
},
"tax_note": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Variables
Key
Value

Samples​


Change the paid membership plan​

PATCH
/communities/{id}/membership

Owner only. A price change with paying members is scheduled: every paying member is emailed and moves to the new price at their first renewal 30 days or more after the notice; new joiners pay it at once. Paid to free cancels every subscription at period end. Audit-logged, no event.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

id*

The community's uuid or slug.

Type
string
Required

Request Body​

application/json
JSON
{
"membership": "string",
"price_cents": 0,
"yearly_price_cents": 0,
"perks": [
"string"
],
"leaders_join_free": true
}

Responses​

OK

application/json
JSON
{
"data": {
"membership": "string",
"price_cents": 0,
"yearly_price_cents": 0,
"currency": "string",
"perks": [
"string"
],
"leaders_join_free": true,
"payee_name": "string",
"pending_change": {
"price_cents": 0,
"yearly_price_cents": 0,
"effective_at": "string"
},
"accepting_payments": true,
"fee_preview": {
"gross_cents": 0,
"card_fee_cents": 0,
"fundlyhub_fee_cents": 0,
"net_cents": 0
},
"tax_note": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


My membership settings​

GET
/communities/{key}/me

The caller's role and alert choice in this community.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

key*

The community's slug or uuid.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": {
"role": "string",
"status": "string",
"alert_level": "string",
"channels": {
"email": true,
"push": true,
"web": true,
"additionalProperties": "string"
},
"muted_until": "string",
"pinned_home": true,
"joined_at": "string",
"joined_via": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Join a paid community​

POST
/communities/{id}/join/paid

With approval (leaders approve, or a private community): creates the join request and returns a SetupIntent client_secret (intent_type: setup) to save the card. Nothing is charged until a leader approves; then the subscription is created and the saved card charged. Without approval: returns the first invoice's PaymentIntent secret (intent_type: payment); the member is in once it is paid. Dues go to the community's own Stripe account; FundlyHub keeps 0%. Dues are not donations and are not tax-deductible.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

id*

The community's uuid or slug.

Type
string
Required

Request Body​

application/json
JSON
{
"interval": "string"
}

Responses​

OK

application/json
JSON
{
"data": {
"status": "string",
"intent_type": "string",
"client_secret": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Cancel a paid membership (leave)​

POST
/communities/{id}/membership/cancel

Cancels at the end of the paid period: access lasts until access_until, no further charge, then the member leaves. A membership never charged (waiting for approval) ends at once.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

id*

The community's uuid or slug.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": {
"access_until": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Undo a cancellation​

POST
/communities/{id}/membership/resume

Before the period ends, keeps the membership renewing.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

id*

The community's uuid or slug.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": {
"id": "string",
"status": "string",
"interval": "string",
"amount_cents": 0,
"current_period_end": "string",
"cancel_at_period_end": true,
"access_until": "string",
"card": {
"brand": "string",
"last4": "string"
},
"client_secret": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


My paid community memberships​

GET
/me/community-memberships

Every live paid membership of the signed-in person, for Settings: price, renewal, card. Dues are not tax-deductible.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Responses​

OK

application/json
JSON
{
"data": [
{
"community": {
"id": "string",
"slug": "string",
"name": "string",
"avatar_url": "string",
"additionalProperties": "string"
},
"status": "string",
"interval": "string",
"amount_cents": 0,
"current_period_end": "string",
"cancel_at_period_end": true,
"tax_note": "string",
"additionalProperties": "string"
}
],
"additionalProperties": "string"
}

Playground​

Server
Authorization

Samples​


Receipts for a paid membership​

GET
/me/community-memberships/{membershipId}/invoices

The membership's paid and open Stripe invoices with their hosted and PDF links.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

membershipId*
Type
string
Required
Format
"uuid"

Responses​

OK

application/json
JSON
{
"data": [
{
"id": "string",
"number": "string",
"amount_paid_cents": 0,
"created_at": "string",
"hosted_invoice_url": "string",
"pdf_url": "string",
"additionalProperties": "string"
}
],
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


The community fund​

GET
/communities/{id}/fund

Visibility applies: public anyone; members paying members, the owner and leaders; private the owner and leaders. A viewer who cannot see the fund gets 200 with viewer and the settings only. Dues are one row a month; an anonymous giver is named to leaders only. payout_account is for the owner and leaders, hold for the owner.

Authorizations​

or
BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

id*

The community's uuid or slug.

Type
string
Required

Query Parameters

limit
Type
integer
Minimum
1
Maximum
100
Default
20

Responses​

OK

application/json
JSON
{
"data": {
"community_id": "string",
"enabled": true,
"visibility": "string",
"accept_gifts": true,
"viewer": {
"can_see": true,
"can_move_money": true,
"is_leader": true,
"can_give": true,
"additionalProperties": "string"
},
"balance": {
"available_cents": 0,
"pending_cents": 0,
"pending_available_on": "string",
"spendable_cents": 0,
"open_disputes_cents": 0,
"additionalProperties": "string"
},
"totals": {
"raised_cents": 0,
"dues_cents": 0,
"gifts_cents": 0,
"given_cents": 0,
"withdrawn_cents": 0,
"since": "string",
"additionalProperties": "string"
},
"given_to": [
{
"fundraiser_id": "string",
"slug": "string",
"title": "string",
"organizer_name": "string",
"image_url": "string",
"raised_cents": 0,
"from_fund_cents": 0,
"additionalProperties": "string"
}
],
"entries": [
{
"id": "string",
"kind": "string",
"amount_cents": 0,
"gross_cents": 0,
"created_at": "string",
"available_on": "string",
"fundraiser": {
"id": "string",
"slug": "string",
"title": "string",
"organizer_name": "string"
},
"to_leader_fundly": true,
"donor_name": "string",
"anonymous": true,
"note": "string",
"reason": "string",
"actor_name": "string",
"member_count": 0,
"period": "string",
"additionalProperties": "string"
}
],
"entries_total": 0,
"payout_account": {
"bank_name": "string",
"last4": "string"
},
"open_dispute": true,
"negative_balance": true,
"hold": {
"limit_days": 0,
"next_auto_payout_on": "string",
"next_auto_payout_cents": 0
},
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Variables
Key
Value

Samples​


Fund settings​

PATCH
/communities/{id}/fund

Owner only. On: the account pays out manually and the money collects; off: weekly payouts. Visibility changes are audit-logged (no event) and hide past activity too. accept_debit_terms: true records the Account Debit consent.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

id*

The community's uuid or slug.

Type
string
Required

Request Body​

application/json
JSON
{
"enabled": true,
"visibility": "string",
"accept_gifts": true,
"accept_debit_terms": true
}

Responses​

OK

application/json
JSON
{
"data": {
"community_id": "string",
"enabled": true,
"visibility": "string",
"accept_gifts": true,
"viewer": {
"can_see": true,
"can_move_money": true,
"is_leader": true,
"can_give": true,
"additionalProperties": "string"
},
"balance": {
"available_cents": 0,
"pending_cents": 0,
"pending_available_on": "string",
"spendable_cents": 0,
"open_disputes_cents": 0,
"additionalProperties": "string"
},
"totals": {
"raised_cents": 0,
"dues_cents": 0,
"gifts_cents": 0,
"given_cents": 0,
"withdrawn_cents": 0,
"since": "string",
"additionalProperties": "string"
},
"given_to": [
{
"fundraiser_id": "string",
"slug": "string",
"title": "string",
"organizer_name": "string",
"image_url": "string",
"raised_cents": 0,
"from_fund_cents": 0,
"additionalProperties": "string"
}
],
"entries": [
{
"id": "string",
"kind": "string",
"amount_cents": 0,
"gross_cents": 0,
"created_at": "string",
"available_on": "string",
"fundraiser": {
"id": "string",
"slug": "string",
"title": "string",
"organizer_name": "string"
},
"to_leader_fundly": true,
"donor_name": "string",
"anonymous": true,
"note": "string",
"reason": "string",
"actor_name": "string",
"member_count": 0,
"period": "string",
"additionalProperties": "string"
}
],
"entries_total": 0,
"payout_account": {
"bank_name": "string",
"last4": "string"
},
"open_dispute": true,
"negative_balance": true,
"hold": {
"limit_days": 0,
"next_auto_payout_on": "string",
"next_auto_payout_cents": 0
},
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


The fund activity, paged​

GET
/communities/{id}/fund/entries

Same visibility as the fund.

Authorizations​

or
BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

id*

The community's uuid or slug.

Type
string
Required

Query Parameters

limit
Type
integer
Minimum
1
Maximum
100
Default
20
offset
Type
integer
Minimum
0
Default
0

Responses​

OK

application/json
JSON
{
"data": {
"entries": [
{
"id": "string",
"kind": "string",
"amount_cents": 0,
"gross_cents": 0,
"created_at": "string",
"available_on": "string",
"fundraiser": {
"id": "string",
"slug": "string",
"title": "string",
"organizer_name": "string"
},
"to_leader_fundly": true,
"donor_name": "string",
"anonymous": true,
"note": "string",
"reason": "string",
"actor_name": "string",
"member_count": 0,
"period": "string",
"additionalProperties": "string"
}
],
"total": 0,
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Variables
Key
Value

Samples​


Export the fund activity (CSV)​

GET
/communities/{id}/fund/entries.csv

Owner and leaders. Every entry, givers named, dues by month.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

id*

The community's uuid or slug.

Type
string
Required

Responses​

CSV

text/csv
JSON
"string"

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Give once to the community fund​

POST
/communities/{id}/fund/gifts

Anyone, guests included (a guest gives donor_email). A destination charge to the community's own Stripe account: the card fee comes out, FundlyHub keeps 0%. A gift to the fund is not a donation to a Fundly and is not tax-deductible. Confirm the returned PaymentIntent with Stripe Elements. Needs the same reCAPTCHA token as a donation's payment intent (recaptcha_token or x-recaptcha-token; signed-in verified users are exempt).

Authorizations​

or
BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

id*

The community's uuid or slug.

Type
string
Required

Request Body​

application/json
JSON
{
"amount_cents": 0,
"note": "string",
"anonymous": true,
"donor_name": "string",
"donor_email": "string",
"recaptcha_token": "string",
"additionalProperties": "string"
}

Responses​

OK

application/json
JSON
{
"data": {
"client_secret": "string",
"payment_intent_id": "string",
"fee_cents": 0,
"net_cents": 0,
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Variables
Key
Value
Body

Samples​


Can the fund give to this Fundly?​

GET
/communities/{id}/fund/allocation-check

Owner only. Why not, when not: own_fundly (the owner organizes, co-organizes or is the beneficiary of the Fundly), dispute_open, negative_balance, fund_disabled, fundraiser_not_accepting, account_not_ready, debit_consent_required.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

id*

The community's uuid or slug.

Type
string
Required

Query Parameters

fundraiser_id*
Type
string
Required
Format
"uuid"

Responses​

OK

application/json
JSON
{
"data": {
"eligible": true,
"reason": "string",
"available_cents": 0,
"to_leader_fundly": true,
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Give from the fund to a Fundly​

POST
/communities/{id}/fund/allocations

Owner only, signed-in session. A Stripe Account Debit moves the money from the community account to the platform, then a donation from " fund" (no tip, no card fee, never anonymous, no receipt) lands on the Fundly and pays out through its normal path. Refused for a Fundly the owner organizes, co-organizes or benefits from; labelled when it is a leader's. Send an Idempotency-Key header (or idempotency_key): the same key returns the first result; with a different body, 409 IDEMPOTENCY_CONFLICT. Publishes community.fund_allocated after commit.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Header Parameters

Idempotency-Key
Type
string
Max Length
200

Path Parameters

id*

The community's uuid or slug.

Type
string
Required

Request Body​

application/json
JSON
{
"fundraiser_id": "string",
"amount_cents": 0,
"note": "string",
"idempotency_key": "string",
"additionalProperties": "string"
}

Responses​

OK

application/json
JSON
{
"data": {
"allocation_id": "string",
"entry_id": "string",
"donation_id": "string",
"amount_cents": 0,
"available_cents_after": 0,
"to_leader_fundly": true,
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Headers
Variables
Key
Value
Body

Samples​


Send the withdrawal code​

POST
/communities/{id}/fund/withdrawals/code

Owner only, signed-in session. Emails a 6-digit one-time code (10 minutes, one use, 5 attempts) to the owner's account address; at most 5 an hour.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

id*

The community's uuid or slug.

Type
string
Required

Responses​

OK

application/json
JSON
{
"data": {
"method": "string",
"sent_to_hint": "string",
"expires_at": "string",
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Withdraw from the fund to the community bank​

POST
/communities/{id}/fund/withdrawals

Owner only, signed-in session. A payout from the community's Stripe account to its bank, with a reason (at most 120 characters) and the emailed code. Blocked while a dispute is open or the balance is negative. Audit-logged; publishes community.fund_withdrawn after commit.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Path Parameters

id*

The community's uuid or slug.

Type
string
Required

Request Body​

application/json
JSON
{
"amount_cents": 0,
"reason": "string",
"code": "string",
"additionalProperties": "string"
}

Responses​

OK

application/json
JSON
{
"data": {
"withdrawal_id": "string",
"entry_id": "string",
"payout_id": "string",
"amount_cents": 0,
"arrival_date": "string",
"available_cents_after": 0,
"additionalProperties": "string"
},
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Funds I can give from to this Fundly​

GET
/me/community-funds/pay-options

The donation widget's "Pay with" list: community funds the signed-in person owns, with money in them, that may give to this Fundly (never the person's own, co-organized or beneficiary Fundly). A fund with an open dispute or a negative balance is listed with the reason.

Authorizations​

BearerAuth

In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.

Type
HTTP (bearer)

Parameters​

Query Parameters

fundraiser_id*
Type
string
Required
Format
"uuid"

Responses​

OK

application/json
JSON
{
"data": [
{
"community_id": "string",
"slug": "string",
"name": "string",
"avatar_url": "string",
"available_cents": 0,
"visibility": "string",
"blocked_reason": "string",
"additionalProperties": "string"
}
],
"additionalProperties": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Powered by VitePress OpenAPI

Built with VitePress