🇳🇵 A portion of Tweeble's proceeds supports Nepal flood relief. Donate to Nepal Flood Relief →i
Service MarketplaceProduct MarketplaceFundraising MarketplaceEventsBlogSpeaker PoolDirectorySEO Audit ToolLearning Center
Developers

API Documentation Center

Everything an external developer needs to connect a website to Tweeble: what each API does, every input and output field with its data type and constraints, the request method, status codes, and copy-paste examples. Search, filter and sort below.

Replace YOUR_ACCOUNT_ID with your account id. Sign in and open this page again to have your own id filled into every example, or copy it from the API URL list on your Profile.

Before you start

Base URL

Every endpoint lives under your site's origin at /api/public/{accountId}/… — replace {accountId} with your account id (shown in every URL on your Profile's API URL list).

Authentication

None. There are no API keys or tokens. Your account id in the URL only ever unlocks content you have already made public, and the write endpoints (contact forms, donations, volunteers) accept anonymous submissions by design.

Formats

Responses are JSON (UTF-8) unless noted. Requests may be JSON (Content-Type: application/json) or standard form data. Money is always an integer in US cents. Timestamps are ISO 8601 in UTC unless noted. Field names are camelCase.

CORS

Every endpoint allows requests from any origin (Access-Control-Allow-Origin: *) and answers preflight OPTIONS requests, so you can call them straight from browser JavaScript.

Caching

GET feeds are cached for 60 seconds. Image links inside responses are signed and expire after about an hour — never store them.

Rate limits

Write endpoints are limited per visitor IP address: contact form submissions 8 per 15 minutes per form, volunteer sign-ups 10 per 15 minutes, donation checkouts 20 per 15 minutes. Exceeding a limit returns HTTP 429.

Errors

Failures return a non-2xx status and a JSON body { "error": "plain-English reason" }. Feed (GET) endpoints never error for a missing feature — they return an empty array.

Availability

Each endpoint lists exactly when it returns data. Feeds follow what is already public on your Tweeble pages: nothing appears on an external site that a guest couldn't already see on Tweeble.

Which POST goes with which GET

Where an API both reads and writes, the GET and the POST share one URL. Use the GET to learn the inputs, then the POST to send them. (On the contact-form list URL, the POST also says which form it is for by including formId in the body.)

GET (read the definition)POST (send the data)How they connect

/api/public/{accountId}/contact-forms

/api/public/{accountId}/contact-forms
Same URL. GET lists every form; POST submits to the form named by formId in the body (use an id from the list).

/api/public/{accountId}/contact-forms/{formId}

/api/public/{accountId}/contact-forms/{formId}
Same URL. GET returns the definition/schema; POST submits.

/api/public/{accountId}/donate

/api/public/{accountId}/donate
Same URL. GET returns the definition/schema; POST submits.

/api/public/{accountId}/volunteer

/api/public/{accountId}/volunteer
Same URL. GET returns the definition/schema; POST submits.

/api/public/{accountId}/contact-forms/{formId}
/api/public/{accountId}/contact-forms/{formId}/submit
Alias of the POST above — identical behavior (the embed script uses it).
Alias for the same form.
Showing 17 of 17 endpoints