

Connect your own website to your Tweeble account: show your products, events and blog on your site, add a contact form, take donations and collect volunteer sign-ups. Every link is explained in plain English first, with a real-life example, so you do not need to be technical. The full technical details for your web developer (every field, format, status code and copy-paste example) sit underneath each one. Search, filter and sort below.
You do not need to be technical to use this page. An API link is simply a special web address that lets your own website talk to your Tweeble account. Below is what the words mean and how to pick the right link. If you have a web designer, send them this page: everything they need is here.
Think of it as a phone number for your Tweeble account. Your website "calls" it to ask for information (like your product list) or to hand something over (like a visitor's message). You just copy the link; your website or web designer does the calling.
A GET link only asks Tweeble for information. Nothing is saved, started or changed. Example: "All my products (list)."
A POST link hands information to Tweeble, and something happens: a message is saved, a donation is started, a volunteer is signed up. Example: "Submit an answer to the contact form Quote request."
Yes. The "asking" links only show what is already public on your Tweeble profile. The "sending" links can only add things (a message, a sign-up, a donation payment). Nobody can read private information or change or delete anything in your account with them.
No. Visitors can send a contact form, donate or sign up to volunteer without one. Programs are the one exception where Tweeble offers the visitor a choice: continue as a guest, sign in, or create an account so it is tracked in their own account.
Every title follows one pattern. "All my products (list)" reads a whole list. "One contact form: Quote request (its questions)" reads one item. "Submit an answer to the contact form Quote request" or "Buy a service: start a purchase" sends something. "EMBED ... (paste one line, no coding)" is a line you paste into your website.
On your For Developers page (/developers), open "Show API URLs" (under "All my API URLs"). The links are grouped by topic (Contact forms, Products, Services, Events...). Each row says what it returns, what you send, who it is for and when to use it, and has a docs button that opens the matching entry on this page.
There is no charge for the links themselves. Normal Tweeble rules still apply when a sale or donation actually happens.
| What I want to do | The link to use |
|---|---|
| Show what I sell on my website |
|
| Let visitors buy or sign up on my website (without going to Tweeble) |
|
| Sell my courses, event tickets, school packages or speaking on my website |
|
| Show my events calendar |
|
| Show my blog posts |
|
| Show customer reviews |
|
| Show my case studies / portfolio |
|
| Show my fundraising goals (nonprofits) |
|
| Add a contact form to my website |
|
| Collect payments on my website (invoices, deposits, custom amounts) |
|
| Take donations from my website (nonprofits) |
|
| Get volunteer sign-ups from my website (nonprofits) |
|
| My web developer is building custom forms |
|
Every endpoint lives under your site's origin at /api/public/{accountId}/… — replace {accountId} with your account id (shown in every URL on the "All my API URLs" list of your For Developers page (/developers)).
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, purchases) accept anonymous submissions by design. Purchases that need an account take the buyer's own email and password inside the request.
Purchases never use Stripe's hosted checkout page. Each purchase call returns a clientSecret (for Stripe.js initEmbeddedCheckout on your page) and an embedUrl (a Tweeble-hosted card form for an iframe). Card numbers are typed into Stripe's protected frames, never into your code or Tweeble's servers.
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.
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.
GET feeds are cached for 60 seconds. Image links inside responses are signed and expire after about an hour — never store them.
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 and purchase starts 20–40 per 15 minutes. Exceeding a limit returns HTTP 429.
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.
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.
Some features have two links that work as a pair. The GET link asks Tweeble “what does this need?” and the POST link actually sends the information. They share the same web address. For example: GET reads a form’s questions, POST at the same address sends an answer to that form. On the address that lists ALL your contact forms, the POST names which form it is for by including the form’s id (formId) in the message.
| GET: asks what is needed | POST: sends it | How they connect |
|---|---|---|
/api/public/{accountId}/contact-forms | /api/public/{accountId}/contact-forms | Same URL, different method. GET reads the list of ALL your forms; POST sends an answer 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, different method. GET reads (the questions or inputs); POST sends (saves or starts something). |
/api/public/{accountId}/payment-forms | /api/public/{accountId}/payment-forms | Same URL, different method. GET reads (the questions or inputs); POST sends (saves or starts something). |
/api/public/{accountId}/payment-forms/{formId} | /api/public/{accountId}/payment-forms/{formId} | Same URL, different method. GET reads (the questions or inputs); POST sends (saves or starts something). |
/api/public/{accountId}/donate | /api/public/{accountId}/donate | Same URL, different method. GET reads (the questions or inputs); POST sends (saves or starts something). |
/api/public/{accountId}/volunteer | /api/public/{accountId}/volunteer | Same URL, different method. GET reads (the questions or inputs); POST sends (saves or starts something). |
/api/public/{accountId}/contact-forms/{formId} | /api/public/{accountId}/contact-forms/{formId}/submitAlias of the POST above — identical behavior (the embed script uses it). | Alias for the same form. |