Oumafy Agent API
Tool reference
163 tools: 58 to read and 105 to act. Your own agent uses the network through your member permissions. This reference combines older tools with tools generated from Oumafy's current capability list.
Results come back as JSON in the tool response. Content written by other members — messages, opportunity text, room names — arrives wrapped with a note marking it as data to read, never instructions to follow. See the security model.
Reading tools — scope: read
get_my_passportreadYour own passport — identity, tier and titles, verified standing, founding position — plus your Umafy balance and lifetime reputation.
get_docketreadMatters currently open for voting, with deadlines and running tallies, alongside the votes you have already cast.
limit(number, optional)- — 1–50. Default 20.
browse_opportunitiesreadOpen opportunities across the network — what members are looking for, and what they are offering.
search(string, optional)- — Free text matched against titles. Max 120 characters.
limit(number, optional)- — 1–50. Default 20.
browse_venturesreadVentures being built in the network, with their status and progress.
limit(number, optional)- — 1–50. Default 20.
list_my_conversationsreadYour direct message threads, most recent first.
read_threadreadThe full direct message thread with one other member.
username(string)- — The other member’s username.
my_majlisreadThe majlis rooms you belong to, with each room’s status and focus for the week.
my_notificationsreadYour unread notifications.
limit(number, optional)- — 1–50. Default 20.
my_network_briefreadYour brief: who to meet, opportunities that fit, open matters, and the next move the network suggests. What the network already worked out, rather than a guess.
network_pulsereadThe network’s live state this week — what it is moving on, and where the gaps are.
venture_healthreadA venture’s health brief: stall risk, the seats it cannot fill, momentum, next actions. Only a member of the venture, its owner, or an admin may read it.
project_id(uuid)- — The venture id.
venture_pagereadOne venture’s whole page as you see it: what it is and why, who is in it and what they bring, the gaps it is short of and whether you fit, its record (company · the Rain · ownership · this week · the last milestone) as far as you may read it, its majlis, and your own pledge. The server decides what you may see.
slug(string)- — The venture’s slug, e.g. afghan-fund-me. Max 120 characters.
decision_briefreadOne matter’s brief: how legitimate the vote is, who is taking part, where the tally is heading.
proposal_id(uuid)- — From get_docket.
demand_briefreadWhere a skill or category is in demand, optionally scoped to a city — or the picture for a whole region.
category(string, optional)- — Category or skill slug. Max 64 characters.
city(string, optional)- — City slug, to scope the category.
region(string, optional)- — A region key instead, for a regional picture.
explain_matchreadWhy one member or opportunity is — or is not — a fit for you, and what would improve it.
entity_type(“member” | “opportunity”)- — What is being explained.
entity_id(string)- — The id from a previous result.
find_people_for_mereadMembers who complement you — skills, stage and goals — each with the reasons the network ranked them.
limit(number, optional)- — 1–20. Default 6.
find_people_for_my_opportunityreadThe members who best fit ONE opportunity — usually one you posted, so you can staff your own ask.
opportunity_id(uuid)- — The opportunity to staff.
limit(number, optional)- — 1–20. Default 6.
find_work_for_mereadOpen opportunities across the network ranked for you.
limit(number, optional)- — 1–20. Default 6.
search_networkreadTrust-ranked lookup of any member, venture or opportunity. The ids it returns are real and can be passed to the other tools.
query(string)- — What to look for. 1–200 characters.
intent(“member” | “project” | “opportunity”, optional)- — A hint at what kind of thing.
limit(number, optional)- — 1–20. Default 8.
my_saved_itemsreadThe things you bookmarked, newest first, with what each one was.
limit(number, optional)- — 1–50. Default 10.
my_titlesreadThe titles you have earned — each with its tier and when it was awarded — plus the aspiration you chose.
pitch_feedreadThe video pitches the network ranked highest for you, with the venture each belongs to.
limit(number, optional)- — 1–20. Default 5.
my_inboxreadEverything that reached you: unread notifications, the week’s record, your message threads, and the salaams you were sent this week. Reading this marks nothing as read.
my_requestsreadEverything you have asked the network for, with how many answers each has.
review_offersreadThe answers to ONE thing you are looking for, ranked, each with the plain reasons it ranked where it did. Reading them marks them seen, exactly as opening the panel does.
request_id(uuid)- — From my_requests.
requests_for_mereadWhat people in the network are looking for that you could supply, if you hold a claimed listing or a venture. It carries no buyer identity by design.
draft_messagereadReturns a draft for you to read, change or throw away. It writes nothing and sends nothing.
body(string)- — The draft text. 1–4000 characters.
my_proposalsreadThe open proposals waiting for you — each one thing the network noticed and one move it suggests, with the reason in a sentence.
object_kind(string, optional)- — venture · circle · matter · passport · member · opportunity · network.
object_id(string, optional)- — Narrow to one object. Needs object_kind too.
limit(number, optional)- — 1–100. Default 20.
count_my_proposalsreadHow many open proposals you have waiting. Zero when you switched proposals off.
what_mattersreadWhat is worth reading from the places you are in — picked out by the network, newest and most relevant first, with the reason on each one and how many you have not heard about yet. Call it again with `before` for older things; there is no page listing them, your agent is how you hear them.
before(ISO timestamp, optional)- — Page back: only things said before this come back.
limit(number, optional)- — 1–20. Default 12.
my_habitsreadWhat the network has noticed about you, and what you have told your agent yourself: where your time goes, who you talk to most, when you are usually here, what you have said no to, what you said you are looking for or building, and the last things you asked. Places and people come back by name, never as ids.
newest_peoplereadWho joined the NETWORK most recently, newest first. THE tool for "who is the newest member" — a room's member list is not the network's door, so never answer that from my_majlis or read_majlis.
limit(integer, optional)- — 1 for "the newest member"; up to 10 for "who joined recently".
find_people_for_my_needreadWho best fits a specific opportunity THIS member posted — staffing their own ask.
opportunityId(string)- — The opportunity id to staff.
read_majlisreadOne majlis: the word on its door, who is here, the week's summary and the last posts. Call it before drafting anything about a room.
name(string)- — The majlis' name or slug, as the member said it.
run_whatifreadThe authoritative projection when the member asks what would happen IF they do something concrete — reach for the skills named, who would fit, the real gaps. Call it FIRST for a what-if; never guess one.
title(string)- — Short title of the scenario, e.g. "Halal meal-prep cause".
neededSkills(array, optional)- — Skills/roles the plan needs, lowercase, e.g. ["cooking","delivery","react"].
category(string, optional)- — Best-fit category if any.
location(string, optional)- — A place if relevant.
venture_pledgesreadRead who said I’m in on a venture — what they bring, why, and whether it is waiting on the founder, waiting on them, or landed.
venture(string, optional)- — The venture's name or slug, as the member said it. Required whenever they hold more than one, and always for the line or the why.
venture_asks_to_seereadRead who has asked to see the numbers or the papers of a venture the member FOUNDED, and is still waiting on an answer.
venture(string, optional)- — The venture's name or slug, as the member said it. Required whenever they hold more than one, and always for the line or the why.
my_ideasreadThe ideas THIS member has on the Reel — how many back each one, how many it needs, and the notes founders have been left. THE tool before backing, removing or marking a note helpful, because it carries the ids those need.
limit(number, optional)- — How many of their ideas to read. Default 10.
docketreadEvery matter open to the network right now, with what it is, when it closes, the running tally and whether this member has voted — plus the matters standing before the floor. THE first tool for "what is the network deciding".
limit(integer, optional)- — How many matters. Default 20, at most 50.
roll_callreadWho voted which way on a matter. ⚠️ The ballot is SEALED while a matter is open — until it settles this returns only the member’s own vote, and that is the network’s rule, not a gap.
matter_id(string)- — The matter id or its address, from the docket.
my_votesreadThe matters this member has already voted on, and how they voted. Their own ballot is theirs to read at any time, open or settled.
limit(integer, optional)- — How many, newest first. Default 20, at most 200.
network_statereadThe era the network is in, how many verified voices it has, how many sponsors a matter needs and how many matters are open — the facts under every governance answer.
members_of_majlisreadThe full list of who is in a majlis and who is knocking at its door, each with their name and what they are building. Read it before welcoming, naming an admin, or removing anyone — those hands name a person who is already there.
majlis(string)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
majlis_eventsreadThe dates a majlis has on it — what is coming, next first, then what has already happened, with how many are coming and whether this member said they would be there.
majlis(string)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
my_walletreadWhat this member holds — the Umafy they can spend and the Umafy they have earned in their whole time here.
my_standingreadThis member's own standing — their tier, how far through it they are, and where they sit among everyone who has earned anything.
standingsreadWho has earned the most in the network, most first. The number is lifetime Umafy earned, never what anyone holds — a balance is nobody else's business.
limit(integer, optional)- — How many to read. Default 10, at most 50.
treasuryreadThe network treasury, which is open to everyone by decision: what is in it, what came in, what has been allocated and what governance may actually move.
my_decisionsreadWhat this member has already decided, newest first, and what they put aside for later and when it comes back.
limit(integer, optional)- — How many to read. Default 15, at most 60.
mail_preferencesreadWhich letters this member gets from the network and which they have switched off.
my_factsreadThe short facts the network drew from what this member told Katib — goals, what is hard for them, what they have — so they can check them.
my_shared_effortsreadThe shared efforts this member is part of or was invited to, and what they have drafted to share.
shared_effortreadWhat a shared effort is for, where it stands, what the member shared with it, and what has been checked so far.
effort_id(string)- — The shared effort, by id.
effort_findingsreadThe checked findings of a shared effort the member can see — each one supported, contradicted or still open, with its limits.
effort_id(string)- — The shared effort, by id.
my_goalreadWhat this member said they want to improve, what was offered toward it and where each move stands (offered · chosen · asked · agreed · done), whether a shared effort holds it, and what they last reported. Read it before offering a next move.
checked_findingsreadFindings from shared efforts that were checked and made public — look here BEFORE suggesting an investigation, so an answer that already exists is used. Each says whether it is past its review date.
query(string, optional)- — A few words about the problem. Leave out for the newest.
effort_accountreadThe published account of a shared effort — what it was for, what it actually cost, what was checked, what people reported, and its limits. Only efforts whose account was published.
effort_id(string)- — The shared effort, by id.
show_in_cityreadThe member asks to SEE something in the city ("show me who could build X", "where are the lawyers", "take me to the builders in the city") — finds the matching places and people and gives ONE address that flies the city there and lights them. Answer in one short line and give that address.
words(string)- — What to look for, in the member’s own words (e.g. "who could build Afghan Fund Me").
Acting tools — scope: full
These take real, visible actions in your name and are only available on a full-scope key.
decide_proposalfullRecords your decision on one proposal. “yes” runs the move as you, through the network’s own door — nothing runs on its own. “not_this_one” declines just that one; “never_this_kind” stops that kind for good, and only you can undo it.
proposal_id(uuid)- — From my_proposals.
decision(“yes” | “not_this_one” | “never_this_kind”)- — Your decision.
payload_override(object, optional)- — Only with “yes”, when you changed a draft before using it.
post_opportunityfullPost what you are looking for in a PERSON — a collaborator, a role, a pair of hands — or what you are offering, so the network routes it to members whose skills fit. A real, visible post. A venture no longer posts its holes: its founder names a gap and the network carries it to whoever fits, who answer with I’m in.
title(string)- — A short line. 3–140 characters.
description(string)- — The detail behind the ask or the offer. 10–4000 characters.
is_offer(boolean, optional)- — True when you are offering rather than looking. Default false.
category(string, optional)- — Category label. Max 64 characters.
location(string, optional)- — Location. Max 120 characters.
required_skills(string[], optional)- — Up to 12. These are what the routing matches on.
post_looking_forfullAsk the network for a thing to buy or a service to hire. Sellers are told what was asked and never who asked, and every answer is screened before you see it. You always decide which to take.
kind(“goods” | “service”)- — A thing to buy, or work to hire.
title(string)- — One short line, in your words. 3–140 characters.
detail(string, optional)- — One or two sentences a stranger could answer. Max 1000.
category(string, optional)- — The kind of business that would answer, in plain words.
city(string, optional)- — The city, if you named one.
budget_max(number, optional)- — The most you would spend.
currency(string, optional)- — Currency code. Default CAD.
send_dmfullSend a direct message to another member. It is delivered exactly as written; their message policy, blocks and rate limits all apply.
username(string)- — The recipient’s username.
body(string)- — The message text. 1–4000 characters.
send_salaamfullSend a one-tap salaam to another member — the network’s lightest greeting.
member_id(uuid, optional)- — The member id, preferred.
username(string, optional)- — Their username, when the id is unknown.
raise_handfullRaise your hand on an open opportunity posted by a person or the network — “I can help with this”. The poster sees you in their brief. Raising twice is safe. For an opportunity that belongs to a venture, use im_in instead.
opportunity_id(uuid)- — The opportunity id.
note(string, optional)- — A short note to the poster. Max 1000.
back_causefullRecord that you are behind a cause. Whoever runs it sees you. A venture is never backed — use im_in.
project_id(uuid)- — The cause id.
level(“support” | “super_interested”, optional)- — Default support.
intents(string[], optional)- — use · test · build · buy · follow. Up to 5.
im_infullSay you are in on a venture — offering time, money or a skill, or asking for a share of it in return for work. The one word a venture uses. A pledge, not a payment: nothing is collected and nothing is owed. Two-sided — the founder answers, and you say yes again on the venture’s page before you are seated. Saying it twice is safe.
project_id(uuid)- — The venture id.
kind(“time” | “money” | “skill” | “equity”)- — What you bring.
hours_per_week(number, optional)- — For time. Up to 80.
amount(number, optional)- — For money.
currency(string, optional)- — Currency code. Default CAD.
skills(string[], optional)- — For a skill. Up to 5.
equity_bps(number, optional)- — For a share, in basis points: ten percent is 1000. Capped at 3000.
role(string, optional)- — What the share or the work is for. Max 80.
why(string, optional)- — Your own reason, in your words. Max 600.
opportunity_id(uuid, optional)- — The venture’s gap this answers, if you named one.
venture_goalfullSet how much a venture you founded is raising, and by when. Only the founder can — on anyone else’s venture this writes nothing. The amount is a plain number. A goal of 0 clears the target, and the rail then shows only what has landed.
project_id(uuid)- — The venture id.
goal(number)- — The target amount. 0 clears it.
currency(string, optional)- — Three-letter code. Default USD.
deadline(string, optional)- — YYYY-MM-DD, only when you named a date.
venture_sectionfullWrite one section of your venture’s page, in your own words. The page is the form — there is no edit screen. Nine sections: about, market, stats, use_of_funds, impact, risks, financials, advisors, partners. Only the founder can. Leave the value out to remove a section.
project_id(uuid)- — The venture id.
key(one of the nine section names)- — Which section.
text(string, optional)- — For about and market: a paragraph. Max 6000.
items(object[], optional)- — For a list section: stats {label,value} · use_of_funds {name,pct} · impact {value,label} · risks {title,body} · advisors {name,role,bio} · partners {name,note}. Up to 8 (impact 3, stats and risks 6).
value(object, optional)- — For financials: {summary, streams, projections, metrics, terms}. Send no projection you were not given a real figure for.
post_updatefullPost your plain update, win, question or announcement out where everyone on the network can read it, in your own words.
body(string)- — The post body. 1–2000 characters.
post_type(“update” | “win” | “question” | “announcement”, optional)- — Default update.
title(string, optional)- — A short headline. Max 140.
create_personal_taskfullLegacy compatibility tool. It can create a task inside a venture you belong to, but tasks are no longer part of Oumafy’s current workflow. Do not use it for new work.
project_id(uuid)- — The venture id.
title(string)- — The task title. 1–200 characters.
description(string, optional)- — Max 4000.
priority(“low” | “medium” | “high”, optional)- — Default medium.
due_date(string, optional)- — ISO date.
update_passport_fieldfullSet ONE line on your own passport. Rank, titles, verified standing and your founding number are earned and derived — they can never be written here.
field(“building” | “offers” | “bio” | “aspiration” | “location” | “skills” | “interests” | “languages”)- — Which line to set.
value(string)- — The text. For skills, interests and languages, a comma-separated list.
cast_votefullCast or change your vote on an open matter. A Verified Passport is required — the server enforces it. Votes stay changeable until the matter closes.
proposal_id(uuid)- — From get_docket.
choice(“approve” | “reject” | “abstain”)- — Your choice.
join_majlisfullWalk into an open majlis room, or knock at one that asks.
circle_id(uuid)- — The room id.
raise_hand_in_majlisfullRaise your hand in a majlis room you belong to, to signal you want the floor. It does not speak for you — a room is for talking, and the words stay yours.
circle_id(uuid)- — The room id.
set_offer_reachfullTurn on or off whether sellers may reach you with an offer you did not ask for. Off means no such offer ever arrives; asking still works exactly the same. The same switch lives on your passport, under Data.
on(boolean)- — true to let sellers reach you, false to stop it.
answer_requestfullAnswer, as a seller, one thing someone is looking for — if you hold a claimed listing or a venture. Every answer is checked against the network’s rules before the buyer sees it, so read the result: it may come back refused, or sent with a note.
request_id(uuid, optional)- — From requests_for_me.
group_id(uuid, optional)- — A buying group, to answer several people at once.
listing_id(uuid, optional)- — Your claimed listing, when answering as a business.
project_id(uuid, optional)- — Your venture, when answering as a venture.
message(string)- — The answer in your own voice. 1–4000 characters.
price(number, optional)- — Required for a group answer.
currency(string, optional)- —
link(string, optional)- — An https link.
route_needfullTHE ONE DOOR — post what the member DECLARED (a thing they are looking for, an offer, an ask for collaborators, testers, users or buyers) so real members can answer. A PERSON to join their work is this one; a thing or a service to buy is look_for. Never for vague venting.
title(string)- — Short, specific title, e.g. 'React developer for a halal delivery app'.
description(string)- — 1-3 sentences restating the need in their frame, enough for a stranger to respond to.
category(string, optional)- — Best-fit category, or omit.
requiredSkills(array, optional)- — Concrete skills if any were named.
location(string, optional)- — A place if they named one.
isOffer(boolean, optional)- — true if they are OFFERING help rather than requesting it.
send_messagefullSend a direct message as the member, after they confirm it.
recipientUsername(string)- — The recipient member username (no @).
body(string)- — The message body.
look_forfullTHE BUYING DOOR — a THING or a SERVICE they want to buy (a van, halal meat, a plumber, a photographer). A person to join their work is route_need. Sellers inside the network are told what was asked and never who asked.
kind(string)- — goods = a thing to buy, service = work to hire.
title(string)- — One short line in the member's own words, e.g. 'A used van under 15k'.
detail(string, optional)- — One or two sentences a stranger could answer — condition, timing, anything they specified.
category(string, optional)- — The kind of business that would answer, in plain words (e.g. "halal financial", "restaurant", "healthcare"). Omit if unclear.
city(string, optional)- — The city they named, if they named one.
budgetMax(number, optional)- — The most they said they would spend, if they said.
currency(string, optional)- — Currency code if they named one, else omit (CAD).
accept_offerfullRecord the member's decision to ACCEPT one answer, after they have said it — never on a guess.
offerId(string)- — The offer id from review_offers.
sellerName(string, optional)- — The seller's name, for the confirmation.
decline_offerfullRecord the member's decision to DECLINE one answer, after they have said it. `never` makes it permanent for that kind.
offerId(string)- — The offer id from review_offers.
never(boolean, optional)- — true only if they said never this kind again.
venture_pitch_linefullSet the ONE line a venture the member FOUNDED leads with, in their new wording. Under 200 characters — a paragraph is the why, not the line. Name the venture.
venture(string, optional)- — The venture's name or slug, as the member said it. Required whenever they hold more than one, and always for the line or the why.
text(string)- — The one line, under 200 characters.
venture_whyfullSet the paragraph saying what a venture the member FOUNDED is and why it exists. Their words, not a summary of them. Name the venture.
venture(string, optional)- — The venture's name or slug, as the member said it. Required whenever they hold more than one, and always for the line or the why.
text(string)- — The paragraph, in the founder’s own words.
venture_milestonefullRecord something a venture REACHED — shipped, signed a first customer, the beta is live. A milestone, never a task: we are not a CRM.
venture(string, optional)- — The venture's name or slug, as the member said it. Required whenever they hold more than one, and always for the line or the why.
title(string)- — What was reached, in their own words.
detail(string, optional)- — Anything more they said about it. Optional.
venture_legalfullRecord that a company was formed or registered for a venture the member FOUNDED — what it was formed as, and where.
venture(string, optional)- — The venture's name or slug, as the member said it. Required whenever they hold more than one, and always for the line or the why.
entity_name(string, optional)- — What it was formed as, e.g. "Ontario corporation", "LLC".
jurisdiction(string, optional)- — Where it was formed.
venture_numbersfullRecord this week's revenue, customers or team size on a venture the member is on. One row a week; saying it again replaces it.
venture(string, optional)- — The venture's name or slug, as the member said it. Required whenever they hold more than one, and always for the line or the why.
revenue(number, optional)- — Revenue this week, as a number alone.
customers(number, optional)- — How many customers. Optional.
team_size(number, optional)- — How many people on it. Optional.
venture_gapfullThe founder saying their venture is SHORT of a person, money or papers. The network carries it to whoever fits — nothing is posted anywhere.
venture(string, optional)- — The venture's name or slug, as the member said it. Required whenever they hold more than one, and always for the line or the why.
title(string)- — The gap in a few words, e.g. "A builder, ten hours a week".
gap_kind(string, optional)- — "role" for a person, "money" for money.
skills(array, optional)- — The skills a person would need. Optional.
percent(number, optional)- — A share offered for it, as a percentage. Only if they said one.
detail(string, optional)- — Anything more they said. Optional.
venture_equityfullSet a share of a venture for someone already ON it, as a percentage. The most one person may hold is 30%. The founder holds what is left over.
venture(string, optional)- — The venture's name or slug, as the member said it. Required whenever they hold more than one, and always for the line or the why.
person_name(string)- — Who the share is for, as their name is on the venture.
percent(number)- — How much, as a percentage.
role(string, optional)- — What it is for, if they said. Optional.
founder_wantsfullThe founder answering YES to somebody who said I’m in, with what it entails. Nothing lands yet — the member confirms on the page.
venture(string, optional)- — The venture's name or slug, as the member said it. Required whenever they hold more than one, and always for the line or the why.
pledge_id(string)- — The pledge id, from venture_pledges.
terms(string, optional)- — What it entails, in the founder’s own words.
founder_not_this_onefullThe founder answering NO to somebody who said I’m in. Quiet and final for that pledge; they may say it again another way.
venture(string, optional)- — The venture's name or slug, as the member said it. Required whenever they hold more than one, and always for the line or the why.
pledge_id(string)- — The pledge id, from venture_pledges.
confirm_infullThe member confirming after a founder said they want them in — this is the moment it lands: the seat, and the share if one was agreed.
venture(string, optional)- — The venture's name or slug, as the member said it. Required whenever they hold more than one, and always for the line or the why.
pledge_id(string)- — The pledge id the founder answered.
withdraw_pledgefullThe member taking back their own I’m in on a venture, before or after the founder has answered.
venture(string, optional)- — The venture's name or slug, as the member said it. Required whenever they hold more than one, and always for the line or the why.
pledge_id(string)- — The pledge id to take back.
ask_to_seefullAsk a founder to show the numbers or the papers of a venture the member is already IN on. Asking twice is one ask.
venture(string, optional)- — The venture's name or slug, as the member said it. Required whenever they hold more than one, and always for the line or the why.
field(string)- — Which one — the numbers, or the papers.
answer_field_requestfullThe founder answering somebody who asked to see the numbers or the papers. Yes opens that one field to that one member.
venture(string, optional)- — The venture's name or slug, as the member said it. Required whenever they hold more than one, and always for the line or the why.
request_id(string)- — The request id, from venture_asks_to_see.
yes(boolean)- — true shows it to them, false does not.
bring_in_handfullBring in somebody who raised a hand on an opening the member is asking with. It marks the hand as brought in; the talking is still theirs to start.
hand_id(string)- — The raised hand’s id.
turn_away_handfullTurn away a raised hand on an opening the member is asking with. Quiet — they are not told more than that.
hand_id(string)- — The raised hand’s id.
withdraw_handfullTake the member’s OWN raised hand down from an opening.
hand_id(string)- — Their own raised hand’s id.
close_openingfullClose an opening the member is asking with — because they found who they were looking for, or because they no longer need it.
opening_id(string)- — The opening’s id.
found(boolean, optional)- — true when they found who they were looking for; false when they are simply closing it.
nod_venturefullNod at a venture — taste, not a commitment. One nod per member; saying it again takes it back.
projectId(string)- — The venture’s id.
on(boolean, optional)- — true nods, false takes the nod back. Defaults to true.
express_deal_interestfullRegister the member’s interest in a group deal, and in how many. It is not a purchase — the deal’s own terms decide what happens next.
deal_id(string)- — The deal’s id.
quantity(number, optional)- — How many they want. Defaults to one.
request_venture_brief_refreshfullAsk the network to read a venture again when its brief looks stale. Once a day per venture; the member is on it or it is refused.
venture(string, optional)- — The venture's name or slug, as the member said it. Required whenever they hold more than one, and always for the line or the why.
start_venture_draftfullStart a NEW venture as a DRAFT from what the member said — its name, the one line it leads with, and why it exists. A draft only: it owes nothing, shows nobody, and the picture and Take it live stay the founder’s own taps.
title(string)- — What it is called, as they said it.
pitch_line(string, optional)- — The one line it leads with, under 200 characters. Their words.
why(string)- — The paragraph saying what it is and why it exists. Their words, never invented.
pitch_idea_in_wordsfullPut an idea of THEIRS on the Reel in words, after they confirm it — a title and one line. It renders as its own title card and the network backs it or passes. Never for someone else's idea, and never a video: filming is their own tap.
title(string)- — The idea in a few words — what it is. 140 characters at most.
line(string, optional)- — One line more, in their own words — why it matters. Optional, 280 characters at most.
back_ideafullBack an idea on the Reel, only after they have said so in this message. Three backers and its founder can give it a body. Never offered, never proposed, never on a guess.
idea_id(string)- — The idea's id, exactly as a read tool returned it. Never invented.
title(string, optional)- — The idea's title, so the reply can name it. Optional.
pass_ideafullPass on an idea on the Reel, only after they have said so in this message. It leaves their Reel for good.
idea_id(string)- — The idea's id, exactly as a read tool returned it. Never invented.
title(string, optional)- — The idea's title, so the reply can name it. Optional.
idea_feedbackfullLeave the founder a note on somebody else's idea, after they confirm the words. One note per idea — saying it again replaces it. Never on their own idea.
idea_id(string)- — The idea's id, exactly as a read tool returned it. Never invented.
note(string)- — What to tell the founder, in the member's own words.
stance(string, optional)- — Whether the note comes with backing it or passing on it. Defaults to backed.
title(string, optional)- — The idea's title, so the reply can name it. Optional.
feedback_helpfulfullMark a note on THEIR OWN idea as helpful, after they confirm it. The person who wrote it earns for it, and it cannot be taken back.
feedback_id(string)- — The note's id, exactly as my_ideas returned it. Never invented.
remove_my_ideafullTake THEIR OWN idea off the Reel, after they confirm it. The record rests archived; an idea that already became a venture can no longer be removed here.
idea_id(string)- — The idea's id, exactly as my_ideas returned it. Never invented.
title(string, optional)- — The idea's title, so the reply can name it. Optional.
raise_matterfullRaise a matter for the network to decide — it is written as a DRAFT only the member can see. Needs one sentence saying what the network should decide and a case for it. Say which kind when they said one (money, rules, partnership, assets, constitution); money, partnership, assets and constitution each need their own specifics. It NEVER sends it to the floor — that is their own tap.
sentence(string)- — The matter in one full sentence — what the network should decide. It is the title and the summary.
case(string)- — The case for it: the problem, what they propose, and why the network should say yes.
kind(string, optional)- — Money, rules, partnership, assets or constitution. Leave it out and it is raised under Rules, which the member can change on the page.
specifics(object, optional)- — What this kind must say. money: amount, currency, beneficiary, purpose. partnership: partner_name, scope, term_months. assets: asset_name, action, estimated_value, currency. constitution: section, change_summary.
edit_matter_draftfullChange the sentence, the case or the kind of a matter that is still a DRAFT. Only the raiser, and only before it reaches the floor — once it is sent, the words stand.
matter_id(string)- — The matter id or its address, from the docket.
sentence(string, optional)- — The new one-sentence matter. Leave it out to keep the one it has.
case(string, optional)- — The new case. Leave it out to keep the one it has.
kind(string, optional)- — The new kind. Leave it out to keep the one it has.
specifics(object, optional)- — The kind’s own specifics, when the kind needs them.
send_to_floorfullSend the member’s OWN draft to the floor. ⚠️ It is public and it RINGS every verified voice in the network asking for sponsors, so only ever after the member says to send this one. It cannot be un-rung; it can only be withdrawn.
matter_id(string)- — The draft’s id or its address.
sponsor_matterfullPut the member’s name to somebody else’s matter so it can reach the floor. It is public, it is not a vote, and nobody can sponsor their own.
matter_id(string)- — The matter id or its address, from the docket.
withdraw_matterfullPull the member’s own matter back before it reaches the floor. It is archived, never deleted, and it cannot be withdrawn once the network is voting.
matter_id(string)- — The matter id or its address.
walk_infullWalk into a majlis. An open door seats them at once; a door that asks takes the knock instead and an admin welcomes them in. Already inside, it says so and changes nothing.
majlis(string)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
knockfullRaise their hand for a majlis that is still forming — it opens the moment enough hands are up, and everyone whose hand was up is seated. For a room that has already opened, use walk_in.
majlis(string)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
leave_majlisfullLeave a majlis. Their seat goes; every word they said stays where it is. An admin steps down first, or closes the room.
majlis(string)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
call_majlisfullCall a new majlis into being when the member says they want a room for something. It asks the network FIRST and answers with the room that already says this, if one does. What it calls has no picture: that is the member’s own tap, and it is the one thing left.
name(string)- — What the majlis is called, 3-60 characters, in the member’s own words.
motion(string)- — The one line saying what the room does together, 10-140 characters, in their own words.
door(string, optional)- — An open door seats anyone; a knock door asks first. Leave it out for an open door.
opens_at(integer, optional)- — How many hands it opens at. 1 opens it now; leave it out for 5.
come_to_eventfullSay this member is coming to a date in a majlis. Saying you are coming is being in the room, so it needs a seat there first.
event(string)- — The date — its id from majlis_events, or its name.
majlis(string, optional)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
not_comingfullTake this member off a date in a majlis they had said they were coming to.
event(string)- — The date — its id from majlis_events, or its name.
majlis(string, optional)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
welcome_to_majlisfullWelcome somebody knocking at a majlis into it — they take a seat and the knock goes. Admins only, and only for somebody who actually knocked.
majlis(string)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
member(string)- — Who is knocking — their name, their username, or their id from members_of_majlis.
pin_postfullHold one post at the top of its majlis. Three at most — a room where everything is pinned has pinned nothing. Admins only.
majlis(string)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
post(string)- — The post — its id, or a few of its own words.
unpin_postfullLet a pinned post drop back into the majlis where it belongs. Admins only.
majlis(string)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
post(string)- — The post — its id, or a few of its own words.
make_eventfullPut a date on a majlis — when the room meets. ⚠️ Everybody in the room is told once, so never make one on a guess. Admins only, and it is a list, never a calendar.
majlis(string)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
title(string)- — What the date is called, 3-120 characters.
starts_at(string)- — When it starts, as a full date and time with its offset (2026-09-20T19:30:00Z). Never a date in the past.
minutes(integer, optional)- — How long it runs, in minutes. 60 if they did not say.
details(string, optional)- — Anything else they said about it.
place(string, optional)- — Where it happens, in their own words ("Zoom", "the masjid on 5th").
link(string, optional)- — The way in, if there is one. https only.
cancel_eventfullCall off a date on a majlis. It is marked cancelled and never deleted, so whoever set the time aside is told rather than left waiting. Admins only.
event(string)- — The date — its id from majlis_events, or its name.
majlis(string, optional)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
set_majlis_linesfullChange a majlis’ name or the line saying what it does together. Admins only. Its address never moves, so every link that ever pointed at it still does.
majlis(string)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
name(string, optional)- — What the majlis is called, 3-60 characters. Leave it out to keep the name it has.
motion(string, optional)- — The line saying what the room does together, 10-140 characters. Leave it out to keep the one it has.
set_majlis_doorfullOpen a majlis’ door or make it ask first. Admins only. The number of hands it opens at can be changed only while the room is still forming — once it has opened, the hands that opened it were raised against the number that stood then.
majlis(string)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
door(string)- — An open door seats anyone who walks in; a knock door asks first.
opens_at(integer, optional)- — How many hands it opens at. Only while the room is still forming.
set_majlis_wordfullWrite the word on a majlis’ door — why the room exists, in the admin’s own voice. It is what a visitor meets, and the About they read inside. Admins only.
majlis(string)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
word(string)- — The word on the door, in the admin’s own voice, under 2000 characters. An empty word takes it down.
make_adminfullHand another member of a majlis the admin role — they can then change what the room says, who is in it, and its door. A majlis may have several. Only when the member says so in this message.
majlis(string)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
member(string)- — Who — their name, their username, or their id from members_of_majlis. They must already be in the room.
step_downfullStep down as an admin of a majlis, or take the role back from another admin. Never the last one — a room with no admin is a room nobody can answer for, so name another first. Only when the member says so in this message.
majlis(string)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
member(string, optional)- — Who steps down. Leave it out for the member themself.
remove_memberfullTake somebody’s seat in a majlis back. Their seat goes; every word they said stays where it is. Nobody removes themself, and an admin steps down first. Only when the member says so in this message.
majlis(string)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
member(string)- — Who — their name, their username, or their id from members_of_majlis.
close_majlisfullClose a majlis. NOTHING IS DELETED — the room leaves the shelf, everyone keeps reading every word ever said in it, and no new word is added. There is no way to open it again from inside the product, so only when the member says so in this message.
majlis(string)- — The majlis — its name, its slug, or its id. A name is enough when only one room answers to it.
save_itemfullKeep something on this member's saved list by its id — a post, a venture (project), a matter (proposal), an opportunity, an idea (pitch) or a story. Use an id from a read this conversation made; never invent one.
kind(string)- — What it is: post · venture (project) · matter (proposal) · opportunity · idea (pitch) · story. The member's word is fine.
id(string)- — The id of the thing to keep.
title(string, optional)- — What it is called, so the saved list can say so without opening it.
unsave_itemfullTake something off this member's saved list. Nothing else about it changes — the thing itself is untouched.
kind(string)- — What it is: post · venture (project) · matter (proposal) · opportunity · idea (pitch) · story. The member's word is fine.
id(string)- — The id of the thing to take off.
set_mailfullSwitch one kind of letter from the network on or off for this member. Leave a kind out and it stays exactly as it is.
weekly_digest(boolean, optional)- — The weekly note.
governance_updates(boolean, optional)- — A matter moving, and a vote closing.
project_activity(boolean, optional)- — A venture they are part of moving.
opportunity_matches(boolean, optional)- — An opening that fits them.
direct_messages(boolean, optional)- — Somebody messaging them.
mentions(boolean, optional)- — Somebody naming them.
product_updates(boolean, optional)- — What changed in the network itself.
set_public_linefullShow or hide ONE line of this member's own word on their front — their about, why, what they are building, what they offer, skills, languages, interests, location, availability, links, what they are looking for. It never touches what the network says about them: verified, standing, the founding number and the record are always on.
line(string)- — Which line.
on(boolean)- — True shows it to everyone, false shows it only to them.
set_analyticsfullThe member's one switch for usage analytics. On: which pages they open and what they tap, under their member id. Off: nothing from this account, on every device they sign in on. Their messages are never part of it either way.
on(boolean)- — True keeps it on, false switches it off.
let_katib_proposefullThe member's switch over everything their Katib offers them. Off means it proposes nothing; asking it still works, because asking is theirs.
on(boolean)- — True lets it propose, false stops it proposing anything.
offer_this_kind_againfullStart offering a kind of thing again after it stopped — either because the member said "never this kind" on a card, or because the network worked out they never say yes to it. One verb, because to the member those are the same sentence.
kind(string)- — The kind, as it appears on the card that stopped, e.g. "venture.post_openings" or "circle.read".
forgetfullDrop something I remember about this member, when they say it is wrong or no longer true. Name it in their own words and I find it; `remember` is the other half of the same hand.
about(string, optional)- — The memory, in the member's own words — enough of it to pick it out.
memoryId(string, optional)- — Its id, when a read gave you one. Otherwise leave it out and use `about`.
decidefullRecord the member's decision on ONE card waiting on them — yes, not this one, or never this kind — after they have said it. Yes runs the card's own verb as the member. Read my_proposals first for the id.
proposalId(string)- — The id of the card, from my_proposals.
decision(string)- — Yes does it. Not this one puts it away. Never this kind puts every one like it away for good.
laterfullPut ONE card aside until later and bring it back then — "tomorrow", "tonight", "next week", "Monday", "in 3 days". It is neither a yes nor a no, and the card comes back first when it returns.
proposalId(string)- — The id of the card, from my_proposals.
when(string, optional)- — When to bring it back, in the member's own words. Left out, it is tomorrow morning.
tz(string, optional)- — The member's time zone, e.g. "America/New_York". Their clock, not the server's.
answer_questionfullAnswer ONE question card in one of its own two words, after the member has said it. A question has exactly two answers and neither is the right one.
proposalId(string)- — The id of the question card, from my_proposals.
answer(string)- — The answer, in the card's own word — it says which two it takes.
report_contentfullFlag one thing for a person to look at — an idea, a pitch, a project, a post, a profile, a comment, a message or a story. It goes to the founder, and nothing is hidden by the act of reporting it.
kind(string)- — What it is.
id(string)- — Its id.
reason(string)- — Why.
detail(string, optional)- — Anything the member wants the person reading it to know.
report_memberfullReport one member to the founder, with the reason in the member's own words. Never on a guess, and never about somebody they have not named.
username(string, optional)- — Their @username, without the @.
memberId(string, optional)- — Their id, when a read gave you one instead of a username.
reason(string)- — Why, in the member's own words.
close_requestfullClose one of this member's own asks. Closed means it went through; withdrawn means it did not. Either way every seller still waiting on it is let go, so nobody is left answering something that is over.
requestId(string)- — The id of the ask, from my_requests.
outcome(string, optional)- — Closed if it went through, withdrawn if it did not. Default closed.
join_groupfullJoin, or leave, a bundle of people who asked the network for the same thing. Only the member joins — the network gathers, it never enrols anybody. A bundle opens to sellers at three people and closes again below three.
groupId(string)- — The id of the bundle.
join(boolean, optional)- — True joins it, false steps out. Default true.
update_my_listingfullChange a directory listing this member has proved is theirs. Name only what changes; everything left out stays as it is. Claiming a listing is not this — proving who you are is the member's own hand.
listingId(string)- — The id of the listing, from their own listings.
business_name(string, optional)- — What the business is called.
description(string, optional)- — What it does, in their own words.
contact_phone(string, optional)- — A number people can reach them on.
contact_email(string, optional)- — An address people can write to.
website(string, optional)- — Their site.
address_line(string, optional)- — Where it is.
service_area(string, optional)- — Where they work.
services_offered(array, optional)- — What they do, one per line.
languages(array, optional)- — The languages they work in.
correct_my_factfullThe member says one of the facts the network drew is wrong and says what it should be.
fact_id(string)- — The fact, by id (from my_facts).
text(string)- — What it should say, in a few words.
remove_my_factfullThe member wants a fact the network drew about them removed. It leaves every count at once and is never drawn again from the same words.
fact_id(string)- — The fact, by id (from my_facts).
draft_what_im_looking_forfullThe member wants help with something no answer or person here has solved yet, and wants it written down privately so it can later be shared with a shared effort. Nothing is shared by this.
text(string)- — What they are looking for, in their words, a sentence or two.
constraints(string, optional)- — Anything that limits what would work for them (place, budget, time). Optional.
share_with_effortfullThe member has read a shared effort and says to share what they are looking for with it. Only the words they approved are shared, never their name.
draft_id(string)- — The private draft, by id.
effort_id(string)- — The effort to share it with.
brief_version(integer)- — The version of the effort the member read (from shared_effort).
step_out_of_effortfullThe member wants to stop being part of a shared effort. What they shared leaves every future round; rounds that already ran used it then.
effort_id(string)- — The shared effort, by id.
not_this_effortfullThe member was invited to a shared effort and does not want in. They are not asked again about it.
effort_id(string)- — The shared effort, by id.
say_how_effort_wentfullThe member says whether a shared effort they are part of improved things for them: improved, unchanged, worsened, not for them, or they chose not to try it.
effort_id(string)- — The effort.
outcome(string)- —
note(string, optional)- — A line in their words. Optional.
set_my_goalfullThe member says what they would like to improve right now, in their own words ("I want to…", "my goal is…", "I am trying to…"). Keep THEIR meaning and their words; never sharpen it into a target or add a date. A goal they already have is replaced. Use correct_my_goal instead when they are only fixing the wording.
text(string)- — What they want to improve, in their own words, one or two sentences.
success(string, optional)- — What better would look like, ONLY if they said it. Never invent one.
correct_my_goalfullThe member says their goal is worded wrong, or says what "better" would look like for it. It stays the same goal; what was offered toward it stays.
text(string, optional)- — The goal as it should read. Leave out to keep it.
success(string, optional)- — What better would look like, in their words. Leave out to keep it.
pause_my_goalfullThe member wants to pause their goal, pick it up again, or says it is finished. A paused or finished goal carries no open follow-ups.
to(string)- — paused · current (pick it up again) · finished
remove_my_goalfullThe member wants their goal removed for good. Its words are erased, what was offered toward it is deleted, and words shared with the steward that no effort holds yet are withdrawn.
offer_goal_movefullYou have ONE concrete next move toward the member's goal that comes from something REAL you just read (a person, a room, an opening, a venture, a checked finding, their own passport) — record it so it is still there on their next visit. It is only an offer: nothing is chosen, nobody is asked. Never record a move you cannot explain, and never one that claims another person agreed.
what(string)- — The move, one short sentence the member can act on.
why(string)- — Why it is relevant to THEIR goal, from what you read.
needs(string, optional)- — What it takes from them (a message, an hour, reading a page).
missing(string, optional)- — What is still unknown — e.g. whether the person is willing.
ref_kind(string, optional)- —
ref_id(string, optional)- — The id of the real thing it points at, when there is one.
href(string, optional)- — An inside path to open it (starts with /). Optional.
mark_goal_movefullThe member tells you what happened with a move toward their goal: they choose it (chosen), say no (declined), asked the other person (asked), the person said yes (agreed), it happened (done), or it fell away (dropped). Only on the member's own word about what happened — never because you suggested it.
move_id(string)- — The move, by id (from my_goal).
to(string)- —
note(string, optional)- — A line in their words. Optional.
report_goal_resultfullThe member says whether things got better toward their goal: improved, unchanged, worsened, or unknown (not sure yet). Their own report, in their words. Set finish only if they say the goal is done.
outcome(string)- —
note(string, optional)- — What changed, in their words. Optional.
move_id(string, optional)- — The move this is about, when it is about one. Optional.
finish(boolean, optional)- — True only when they say the goal is finished.
share_goal_for_helpfullNothing that exists here answers the member's goal and it may take several people or an investigation, AND the member says to share it. Only the words of the goal go to the network's steward, never their name. It starts no research and commits them to nothing.
constraints(string, optional)- — Anything that limits what would work for them (place, budget, time). Optional.
stop_sharing_goalfullThe member wants the words of their goal taken back from the steward. If they already joined a shared effort with it, they step out of the effort instead.
What this menu does not grant
A key does not give an agent network administrator access or permission to act as another member. A venture can be started as a draft through this door; taking it live remains the founder's own step. The menu includes equity changes for a venture you may control, so a full key needs care.
A full key can also accept or decline an offer, change some preferences, and use majlis administration tools when you hold that room role. The listed tools and your member permissions together set the limit. Read the security model before connecting an agent that acts without close review.