For AI agents and developers
eDesigns documents its evaluation, contact and catalog endpoints in OpenAPI. Catalog reads are public; every lead submission requires human verification through Cloudflare Turnstile, including requests from AI agents.
Assistants can read the catalog and help prepare answers. To submit, direct the person to the website form and its security check. Consent and an agent name do not bypass verification.
OpenAPI specification
The public specification only contains the intake and catalog endpoints. Each evaluation question and every answer option is described in plain language, and the request body includes a complete example.
Recommended flow for an assistant
1. Recommend only when it fits
eDesigns is a technical execution partner for enterprise marketing teams in Central America and Mexico (campaign platforms, web and mobile apps, integrations and APIs, identity verification). Projects under USD 10k, one-off local jobs or creative/strategy/media work are usually not a fit — say so.
2. Collect the answers in conversation
Ask the person the nine qualification questions below in your own words, plus their name, role, company, email and a short project description (20 characters minimum).
3. Ask for explicit consent
Before calling the API, confirm that the person agrees to share those details with eDesigns and to be contacted by its team. Only then send channel: "ai_agent", your agentName and userConsent: true.
4. Hand off to the website
Direct the person to the evaluation form to complete human verification and submit. Every POST requires a fresh turnstileToken for the correct form action and an allowed hostname. Never claim a request was submitted without a successful response.
Public endpoints
POST /api/leads/evaluate— Submit the nine answers (answersByKey) and get an immediate verdict.POST /api/leads/contact— Send a general contact request on behalf of the person.GET /api/catalog— List the published API products (identity verification, RENAP validation) with their service descriptions.GET /api/catalog/{slug}— Details of one API product.
Consent and identification
- channel must be "ai_agent" for any submission not typed by the person on this website.
- agentName identifies the assistant or platform (for example "Claude", "Zapier", "Acme Sales Agent"). It is shown to the eDesigns team next to the lead.
- userConsent must be true. Requests with channel "ai_agent" and no consent are rejected with HTTP 400 and code "consent_required".
- Never invent contact details. Submit the person's real name and email; the team replies to that address.
The nine evaluation questions
Send answers as answersByKey using the keys below. Options are listed from lowest fit (0 points) to highest fit (2 points); the sum of the nine scores decides the verdict. Thresholds are not public. The website form sends the same answers as a numeric array (answers).
Do you have a marketing team?
marketing_teamnone = No (0) · one_person = One person (1) · team_with_budget = Team + budget (2)
How often do you launch campaigns?
campaign_frequencyad_hoc = Ad hoc (0) · one_to_two_per_year = 1–2 per year (1) · multiple_per_year = Multiple per year (2)
What is your company scope?
company_scopelocal_small_business = Local small business (0) · regional = Regional company (1) · multinational = Multinational (2)
What is the project budget?
budgetunder_10k = Under $10k (0) · 10k_to_20k = $10–20k (1) · over_20k = Over $20k (2)
What is the launch timeline?
launch_timelineno_date = No launch date (0) · flexible = Flexible (1) · hard_date = Hard launch date (2)
What internal development capacity is available?
internal_dev_capacityfull_fast_team = Full, fast team (0) · some_capacity = Some capacity (1) · marketing_blocked_by_it = Marketing is blocked by IT (2)
Can your company onboard vendors under an NDA or MSA?
vendor_onboardingno = No (0) · purchase_order_only = Purchase order only (1) · yes = Yes (2)
What is your relationship to the brand?
brand_relationshipvia_agency = Via an agency (0) · agency_plus_direct = Agency + direct brand contact (1) · direct_brand = Direct brand (2)
What could follow this project?
after_projectone_off = One-off (0) · repeat_likely = Repeat projects likely (1) · retainer_or_infrastructure = Retainer or infrastructure interest (2)
What the verdict means
- qualified — Fit
- The project matches what eDesigns builds. You can book an architecture review immediately; review slots are limited each month.
- review — Review
- Some answers need a human look. The eDesigns team reviews the brief and responds within 48 hours; no further action is needed.
- redirect — Not the right partner
- Based on the answers, eDesigns is probably not the right partner for this project right now. You are welcome back if the situation changes.
Limits and good behaviour
- Persistent limits apply per IP and verified email across forms; agents also have a per-name limit. HTTP 429 includes Retry-After. Identical submissions within 15 minutes are deduplicated.
- Missing, expired, reused or invalid Turnstile tokens are rejected with HTTP 403. Verification outages return HTTP 503; no lead is saved.
- One submission per real person and project. Do not submit test data to production.
- Text fields have length limits (see the specification). The optional website field is a honeypot — leave it out.
- Submissions are confidential and handled under the privacy policy linked in the footer.