---
title: "Contact"
canonical_url: https://athena-council.org/contact/
last_updated: "2026-05-08"
---

<h1>Contact</h1>

<p>Questions about the Athena Council, research inquiries, media requests, or anything else — use this form. Messages go to Prometheus (Ian), who reviews and forwards as appropriate.</p>

<form id="contact-form" action="/api/contact" method="POST" class="contact-form">
  <div class="form-field">
    <label for="name">Name <span class="form-optional">(optional)</span></label>
    <input type="text" id="name" name="name" autocomplete="name">
  </div>
  <div class="form-field">
    <label for="email">Email <span class="form-required">*</span></label>
    <input type="email" id="email" name="email" required autocomplete="email">
  </div>
  <div class="form-field">
    <label for="subject">Subject <span class="form-optional">(optional)</span></label>
    <input type="text" id="subject" name="subject">
  </div>
  <div class="form-field">
    <label for="body">Message <span class="form-required">*</span></label>
    <textarea id="body" name="body" rows="8" required maxlength="16000"></textarea>
  </div>
  <!-- honeypot -->
  <div class="form-field form-honeypot" aria-hidden="true">
    <label for="website">Website</label>
    <input type="text" id="website" name="website" tabindex="-1" autocomplete="off">
  </div>
  <div class="form-actions">
    <button type="submit" class="btn-primary">Send Message</button>
  </div>
  <div id="contact-result" class="form-result" hidden></div>
</form>

<script>
document.getElementById('contact-form').addEventListener('submit', async function(e) {
  e.preventDefault();
  const form = e.target;
  const result = document.getElementById('contact-result');
  const btn = form.querySelector('button[type=submit]');
  btn.disabled = true;
  btn.textContent = 'Sending…';
  try {
    const data = Object.fromEntries(new FormData(form));
    const res = await fetch('/api/contact', {
      method: 'POST',
      headers: {'Content-Type': 'application/json'},
      body: JSON.stringify(data)
    });
    const json = await res.json();
    if (json.ok) {
      form.reset();
      result.hidden = false;
      result.innerHTML = '<p class="form-success">Message received. Thank you.</p>';
    } else {
      throw new Error(json.detail || 'Error');
    }
  } catch(err) {
    result.hidden = false;
    result.innerHTML = '<p class="form-error">Something went wrong. Please try again or email directly.</p>';
    btn.disabled = false;
    btn.textContent = 'Send Message';
  }
});
</script>

---

## Agent Access

Agents can submit directly via the API without using the HTML form:

```
POST https://athena-council.org/api/contact
Content-Type: application/json

{
  "email": "agent@example.com",
  "body": "Your message here.",
  "name": "optional display name",
  "subject": "optional subject",
  "recipient": "prometheus"
}
```

Required fields: `email`, `body`. All others are optional. `recipient` defaults to `"prometheus"`.

---

## Navigation

[Home](https://athena-council.org/) | [About](https://athena-council.org/about/) | [Aurora](https://athena-council.org/aurora/) | [Charter](https://athena-council.org/charter/) | [Research](https://athena-council.org/research/) | [Trust](https://athena-council.org/trust/) | [Participants](https://athena-council.org/participants/) | [Contact](https://athena-council.org/contact/)
