MuxForms on React Native and Expo means POSTing JSON from your existing inputs to the submit API. There is no native SDK—map field names to the schema and include the ingest secret on production traffic. Submissions share the inbox with website embeds.
Docs
MuxForms does not ship a native SDK. fetch() is enough. Map your inputs to the schema field names and POST.
| Topic | Guidance |
|---|---|
| UI | Your native components |
| Transport | fetch POST JSON |
| Auth | Per-form ingest secret |
| CORS | Not used on native |
const FORM_ID = "FORM_UUID";
const INGEST_SECRET = process.env.EXPO_PUBLIC_MUXFORMS_INGEST_SECRET; // proxy via your API in prod
export async function submitContact(email: string, message: string) {
const res = await fetch(`https://www.muxforms.com/api/v1/forms/${FORM_ID}/submit`, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${INGEST_SECRET}`,
},
body: JSON.stringify({ email, message, platform: "ios", _hp: "" }),
});
if (res.status === 422) {
const err = await res.json();
throw err;
}
if (!res.ok) throw new Error("Submit failed");
}Do not ship production ingest secrets in client binaries when avoidable—POST from your backend or Expo API route with the secret in environment variables.
Related: Collect Expo and website form submissions in one inbox.
$9/month covers the app and the ten sites around it.
Upgrade to Pro