curl -X POST https://www.wiseyield.co/api/waiting-list \
-H "Content-Type: application/json" \
-d '{
"email": "john@example.com",
"fullName": "John Smith",
"farmName": "Green Valley Farm",
"city": "Des Moines",
"country": "United States",
"farmSize": "250",
"sizeUnit": "acres",
"cropsInterest": "Corn, Soybeans"
}'
const res = await fetch('https://www.wiseyield.co/api/waiting-list', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
email: 'john@example.com',
fullName: 'John Smith',
farmName: 'Green Valley Farm',
city: 'Des Moines',
country: 'United States',
farmSize: '250',
sizeUnit: 'acres',
cropsInterest: 'Corn, Soybeans',
}),
});
const result = await res.json();
console.log(result.message);
import requests
res = requests.post(
'https://www.wiseyield.co/api/waiting-list',
json={
'email': 'john@example.com',
'fullName': 'John Smith',
'farmName': 'Green Valley Farm',
'city': 'Des Moines',
'country': 'United States',
'farmSize': '250',
'sizeUnit': 'acres',
'cropsInterest': 'Corn, Soybeans',
},
)
print(res.json()['message'])
{
"success": true,
"message": "Successfully joined the waiting list!",
"data": {
"id": "wl_..."
}
}
{
"success": false,
"error": "Invalid form data",
"details": {
"email": ["Please enter a valid email address"]
}
}
{
"success": false,
"error": "Required field missing. Please fill all required fields."
}
{
"success": false,
"error": "Invalid data format. Please check your input."
}
{
"success": false,
"error": "This email is already on our waiting list."
}
{
"success": false,
"error": "An error occurred. Please try again."
}
Public Endpoints
Join waiting list
Public endpoint to register interest in WiseYield early access.
POST
/
api
/
waiting-list
curl -X POST https://www.wiseyield.co/api/waiting-list \
-H "Content-Type: application/json" \
-d '{
"email": "john@example.com",
"fullName": "John Smith",
"farmName": "Green Valley Farm",
"city": "Des Moines",
"country": "United States",
"farmSize": "250",
"sizeUnit": "acres",
"cropsInterest": "Corn, Soybeans"
}'
const res = await fetch('https://www.wiseyield.co/api/waiting-list', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
email: 'john@example.com',
fullName: 'John Smith',
farmName: 'Green Valley Farm',
city: 'Des Moines',
country: 'United States',
farmSize: '250',
sizeUnit: 'acres',
cropsInterest: 'Corn, Soybeans',
}),
});
const result = await res.json();
console.log(result.message);
import requests
res = requests.post(
'https://www.wiseyield.co/api/waiting-list',
json={
'email': 'john@example.com',
'fullName': 'John Smith',
'farmName': 'Green Valley Farm',
'city': 'Des Moines',
'country': 'United States',
'farmSize': '250',
'sizeUnit': 'acres',
'cropsInterest': 'Corn, Soybeans',
},
)
print(res.json()['message'])
{
"success": true,
"message": "Successfully joined the waiting list!",
"data": {
"id": "wl_..."
}
}
{
"success": false,
"error": "Invalid form data",
"details": {
"email": ["Please enter a valid email address"]
}
}
{
"success": false,
"error": "Required field missing. Please fill all required fields."
}
{
"success": false,
"error": "Invalid data format. Please check your input."
}
{
"success": false,
"error": "This email is already on our waiting list."
}
{
"success": false,
"error": "An error occurred. Please try again."
}
The waiting list endpoint accepts unauthenticated submissions and persists them with a confirmation email sent asynchronously.
POST https://www.wiseyield.co/api/waiting-list
Public endpoint. No authentication required. Submissions are deduplicated by email.
Request body
Only two fields are required. Everything else is optional and intended to surface higher-priority leads during onboarding.Required
string
required
Valid email address. Duplicates return
409 Conflict.string
required
2–100 characters.
Optional
string
Up to 100 characters.
string
Up to 100 characters.
string
Up to 100 characters.
string
Numeric string (e.g.
"250"). Empty string is treated as omitted.string
One of
hectares, acres, feddans.string
Free text, up to 500 characters. Stored as a single-element array on the record.
string
Up to 20 characters.
string
Up to 500 characters. Validated but not persisted — used only at form-submission time.
string
Up to 500 characters. Validated but not persisted.
Response
boolean
true on success, false on error.string
Success copy (only on success).
string
Human-readable error category (only on error).
object
Per-field validation errors when
error is "Invalid form data". Object keys are field names; values are arrays of messages.curl -X POST https://www.wiseyield.co/api/waiting-list \
-H "Content-Type: application/json" \
-d '{
"email": "john@example.com",
"fullName": "John Smith",
"farmName": "Green Valley Farm",
"city": "Des Moines",
"country": "United States",
"farmSize": "250",
"sizeUnit": "acres",
"cropsInterest": "Corn, Soybeans"
}'
const res = await fetch('https://www.wiseyield.co/api/waiting-list', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
email: 'john@example.com',
fullName: 'John Smith',
farmName: 'Green Valley Farm',
city: 'Des Moines',
country: 'United States',
farmSize: '250',
sizeUnit: 'acres',
cropsInterest: 'Corn, Soybeans',
}),
});
const result = await res.json();
console.log(result.message);
import requests
res = requests.post(
'https://www.wiseyield.co/api/waiting-list',
json={
'email': 'john@example.com',
'fullName': 'John Smith',
'farmName': 'Green Valley Farm',
'city': 'Des Moines',
'country': 'United States',
'farmSize': '250',
'sizeUnit': 'acres',
'cropsInterest': 'Corn, Soybeans',
},
)
print(res.json()['message'])
{
"success": true,
"message": "Successfully joined the waiting list!",
"data": {
"id": "wl_..."
}
}
{
"success": false,
"error": "Invalid form data",
"details": {
"email": ["Please enter a valid email address"]
}
}
{
"success": false,
"error": "Required field missing. Please fill all required fields."
}
{
"success": false,
"error": "Invalid data format. Please check your input."
}
{
"success": false,
"error": "This email is already on our waiting list."
}
{
"success": false,
"error": "An error occurred. Please try again."
}
Errors
| Status | When |
|---|---|
400 | Validation failed, required field missing, or data format invalid. details may carry per-field messages. |
409 | Email already on the waiting list. |
500 | Unhandled server error. |
Side effects
- A confirmation email is sent asynchronously (Resend). Email delivery is non-blocking — the API returns success even if the email send fails.
- The submission is persisted with
status: "pending"and surfaces in the admin approval queue.
Notes
- Sending the same email twice returns
409 Conflict. Users who need to update their entry should contact support@wiseyield.co. currentToolsandadditionalNotesare accepted by the schema for backwards compatibility but are not currently persisted to the record. UsecropsInterestfor any free-text context you want preserved.cropsInterestis normalised to a single-element array in storage. Send a comma-separated string and the API takes it as-is.