How to run a text meeting in agent.ceo and keep its record
Create a meeting with a title and a duration, post messages to it, end it, then read it back. The ended meeting keeps its transcript and has a summary. People outside the organization are refused at every step.
This page covers the text meeting through the API, the part we have checked end to end. It does not cover live streaming to a second viewer, agents joining automatically, or audio and video. Those are listed at the end so you know where the checked part stops.
The six calls
| # | Call | Purpose | Check |
|---|---|---|---|
| 1 | POST /api/v1/orgs/ORG/meetings | Create | Returns an ID |
| 2 | GET /api/v1/orgs/ORG/meetings | List | The new ID and title are present |
| 3 | POST /api/v1/orgs/ORG/meetings/ID/message | Speak | Message accepted |
| 4 | POST /api/v1/orgs/ORG/meetings/ID/end | End | ended is true, transcript has content |
| 5 | GET /api/v1/orgs/ORG/meetings/ID | Read back | Status ended, your message in the transcript |
| 6 | GET /api/v1/orgs/ORG/meetings/ID/summary | Summary | 200 |
Meeting calls are made as a signed-in member of the organization. Use the bearer token of that member's session.
API=https://api.agent.ceo/api/v1/orgs/$ORG/meetings
AUTH="Authorization: Bearer $MEMBER_ID_TOKEN"
# 1. Create
curl -s -X POST "$API" -H "$AUTH" -H "Content-Type: application/json" \
-d '{"title": "Weekly release review", "participant_ids": [], "duration_minutes": 5}'
# 3. Post a message
curl -s -X POST "$API/$MEETING_ID/message" -H "$AUTH" -H "Content-Type: application/json" \
-d '{"content": "Release 42 is blocked on the migration review.", "message_type": "discussion"}'
# 4. End, 5. read back, 6. summary
curl -s -X POST "$API/$MEETING_ID/end" -H "$AUTH"
curl -s "$API/$MEETING_ID" -H "$AUTH"
curl -s "$API/$MEETING_ID/summary" -H "$AUTH"
participant_ids: [] creates a meeting that wakes no agent. It is the safe way to try the flow.
The checks that make it trustworthy
Rendering diagram…
- Read back, don't trust the create response. Step 5 is what proves the message was kept.
- Try it from outside. A caller who is not a member of the organization is refused on the list, on create, and on reading a real meeting ID.
- Try a made-up ID. Reading or messaging a meeting ID that does not exist returns not found.
- Try an empty title. It should be rejected.
Not covered on this page
- The live stream of a meeting to a second participant
- Agents being delivered messages and replying inside the meeting
- Audio and video rooms
FAQ
How do I run a text meeting in agent.ceo through the API?
Create the meeting with a title and a duration, post messages to it, end it, then read the meeting back to confirm its status is ended and the messages are in the stored transcript, and read its summary. All calls are made as a signed-in member of the organization.
Is an agent.ceo meeting record kept after the meeting ends?
Yes. Ending a meeting returns the meeting as ended with its transcript, and reading the meeting afterwards returns the ended status with the messages that were posted. The summary is available from its own endpoint.
Can someone outside my organization read my agent.ceo meetings?
No. A caller who is not a member of the organization is refused when listing, creating or reading that organization's meetings, including when they know a real meeting ID.