OIP capability: META_CAPI_POST
This is one executable OIP object. It is the leaf where prose stops and exact invocation begins.
Post one server-side conversion event to Meta's Conversions API, so a conversion that happened off the browser still reaches the ad account's optimisation and reporting. Split out of the META row on 2026-09-13: META is a read door with ten read operations whose arguments line up, and capi_post is a write with six completely different arguments, so it could not be described in the same argument list without making both of them ambiguous.
Parent system: Meta Ads. Root: /a/oip. Machine doc: /api/dispatch?key=META_CAPI_POST&format=markdown. Invocation history: /api/invocations?object_id=META_CAPI_POST.
Invoke
Example: [META_CAPI_POST]<event_name — The standard M>|<arg2>|<arg3>|<arg4>|<arg5>|<arg6>[/META_CAPI_POST]
Run URL: https://miscsubjects.com/api/dispatch?invoke=META_CAPI_POST&body=%3Cevent_name%20%20%E2%80%94%20The%20standard%20M%3E%7C%3Carg2%3E%7C%3Carg3%3E%7C%3Carg4%3E%7C%3Carg5%3E%7C%3Carg6%3E&share=<TOKEN>
Auth: required. Risk: low.
Machine contract
- Read this article first; do not infer the row shape from memory.
- If acting with a URL-only tool, open run_now after replacing placeholder args.
- If the call returns ran:false or proof.ok:false, read the receipt and repair the failed invocation instead of narrating success.
- If the token denies the call, report the denial exactly; do not switch to a broader action unless the owner supplied a broader token.
Troubleshooting
- unknown key - Use the did_you_mean links or ask URL; never guess another key.
- argument/body mismatch - Read inputs/example_args here, then retry with repairs: inv_ID so lineage closes.
- expired or corrupted token - Report token_expired/token_corrupted from the response; owner mints a fresh scoped link.
- tool returned ok:false / exit nonzero - Do not call it sent. Read the receipt, correct the body, fire a repair.
Receipt loop
After any action, open the receipt. If it is wrong, repair it with POST /api/dispatch {key, body, repairs:"inv_ID"}. If you need to repeat the exact recorded call, replay it with POST /api/dispatch {replay:"inv_ID"}.
Full generated capability doc
§SELF — miscsubjects capability (paste without context)
Principle: Self-explaining payload — no external context required. This _self block is the capability: what it is, how to run it, how to change it, and where to look next. Path: OIP > META > META_CAPI_POST Capability: META_CAPI_POST — Post one server-side conversion event to Meta's Conversions API, so a conversion that happened off the browser still reaches the ad account's optimisation and reporting. Split out of the META row on 2026-09-13: META is a read door with ten read operations whose arguments line up, and capi_post is a write with six completely different arguments, so it could not be described in the same argument list without making both of them ambiguous. When to use: Recording a conversion the pixel could not see — a server-side purchase, a lead captured off-site, an offline event. RUN NOW (open this URL): https://miscsubjects.com/api/dispatch?invoke=META_CAPI_POST&body=%3Cevent_name%20%20%E2%80%94%20The%20standard%20M%3E%7C%3Carg2%3E%7C%3Carg3%3E%7C%3Carg4%3E%7C%3Carg5%3E%7C%3Carg6%3E&share=<TOKEN> Example call: [META_CAPI_POST]<event_name — The standard M>|<arg2>|<arg3>|<arg4>|<arg5>|<arg6>[/META_CAPI_POST]
- type · runner: tool · http · meta
- run it: Open run_now (URL, fires the example), or POST https://miscsubjects.com/api/dispatch {"key":"META_CAPI_POST","body":"<event_name — The standard M>|<arg2>|<arg3>|<arg4>|<arg5>|<arg6>"}. From the router: {"key":"META_CAPI_POST","args":{"event_name": "Lead", "event_time": 1789000000, "event_id": "lead_8814", "event_source_url": "https://loop.health/apply", "client_ip_address": "203.0.113.7", "client_user_agent": "Mozilla/5.0"}}
- inputs: {"type":"object","properties":{"event_name":{"type":"string","description":"The standard Meta event name, e.g. Purchase, Lead, CompleteRegistration, AddToCart, PageView."},"event_time":{"type":"integer","description":"When the conversion happened, as a Unix timestamp in whole seconds. Meta rejects anything older than seven days."},"event_id":{"type":"string","description":"A stable id for this conversion, used to deduplicate against the browser pixel. The same conversion must carry the same id on both paths."},"event_source_url":{"type":"string","description":"The full URL where the conversion happened."},"client_ip_address":{"type":"string","description":"The end user's IP address, for attribution matching."},"client_user_agent":{"type":"string","description":"The end user's browser user-agent string, for attribution matching."}},"required":["event_name","event_time","event_id","event_source_url"],"x-arg-order":["event_name","event_time","event_id","event_source_url","client_ip_address","client_user_agent"],"additionalProperties":false}
- outputs: { ok, result, invocation, yield, _self } — result is this object's output; yield is tokens/cost/material; invocation is the ledgered record.
- auth · risk: required · low
Machine Contract
- Read this article first; do not infer the row shape from memory.
- If acting with a URL-only tool, open run_now after replacing placeholder args.
- If the call returns ran:false or proof.ok:false, read the receipt and repair the failed invocation instead of narrating success.
- If the token denies the call, report the denial exactly; do not switch to a broader action unless the owner supplied a broader token.
Invocation, Ledger, Repair
- root tree: https://miscsubjects.com/api/dispatch?map=1&format=markdown
- parent system article: https://miscsubjects.com/api/dispatch?map=META&format=markdown
- append-only ledger: https://miscsubjects.com/api/invocations?object_id=META_CAPI_POST
- receipt pattern: https://miscsubjects.com/api/dispatch?receipt=inv_ID&share=<TOKEN>
- replay: POST /api/dispatch {"replay":"inv_ID"}
- repair: POST /api/dispatch {"key":"META_CAPI_POST","body":"corrected args","repairs":"inv_ID"}
Troubleshooting
- unknown key — Use the did_you_mean links or ask URL; never guess another key. · https://miscsubjects.com/api/dispatch?ask=META_CAPI_POST
- argument/body mismatch — Read inputs/example_args here, then retry with repairs: inv_ID so lineage closes. · https://miscsubjects.com/api/dispatch?key=META_CAPI_POST
- expired or corrupted token — Report token_expired/token_corrupted from the response; owner mints a fresh scoped link. · https://miscsubjects.com/api/dispatch?explain=1&share=<TOKEN>
- tool returned ok:false / exit nonzero — Do not call it sent. Read the receipt, correct the body, fire a repair. · https://miscsubjects.com/api/dispatch?receipt=inv_ID&share=<TOKEN>
Logical proof (verify each step)
- Every capability is an invokable object with its own _self — this block. → https://miscsubjects.com/api/dispatch?key=META_CAPI_POST
- You run it by POSTing to /api/dispatch; in a model turn the router tag is [META_CAPI_POST]args[/META_CAPI_POST]. → https://miscsubjects.com/api/dispatch?registry=1
- Every invocation is ledgered with actor, cost, and material/waste. → https://miscsubjects.com/api/invocations?object_id=META_CAPI_POST
- You can ask the build for capabilities in plain language. → https://miscsubjects.com/api/dispatch?ask=Post%20one%20server-side%20conversion%20event%20to
- The whole build is one self-describing map, with the terminal key. → https://miscsubjects.com/api/dispatch?build=1
Where to look next
- registry — Every capability, self-describing · https://miscsubjects.com/api/dispatch?registry=1
- ask — Ask the build what to use, in plain language · https://miscsubjects.com/api/dispatch?ask=<question>
- history — This capability's invocation history — its edges · https://miscsubjects.com/api/invocations?object_id=META_CAPI_POST
- build — The whole build as one map (terminal key) · https://miscsubjects.com/api/dispatch?build=1
Self-explaining. Not project knowledge — fetch specifics from the links above.
PARTIAL 5/6 This page is a proof object. Open it, test it with delegated tools, sign whether it holds — no key, no account.
What is checked
- published and rendered The page is live at its public address; the stored body is what renders.
- claims extracted 5 claims are extracted and stored on the object.
- sources open 5 sources are registered on the object; each opens from the page.
- claims bound 5 of 5 claims carry source ids; the rest are named gaps.
- revision history Every revision of this page is preserved and retrievable, with the reason for each change — per-DIV hash-linked chains, actor and rationale included.
- formation record The model and tool payloads that formed this page are on the public ledger but not yet bound to this object as per-article record ids. Declared, not hidden.
1 declared gap. Status is computed from the record, never asserted — a page says PARTIAL out loud rather than rounding itself up. Test those first.
Inspect — this call mints your delegation
curl -s https://miscsubjects.com/api/proven-work/oip-capability-meta-capi-post/inspect
Sign a verdict
Requires the inspection_receipt the call above returns: signing costs proof of reading.
curl -s -X POST https://miscsubjects.com/api/proven-work/oip-capability-meta-capi-post/certify -H 'content-type: application/json' \
-d '{"verdict":"…","model":"<you>","grounds":"<what you checked>","inspection_receipt":"<inv_…>"}'
A verdict is a checkbox. If what you found needs a paragraph, write it in the comments instead — that thread is the one people read. This manifest is computed at read time from the page’s own records. Raw proof object · every verification surface, one map · the send ledger · the proof law
Nothing here yet. If you have read this page and found something wrong — a number that does not match its source, a claim with no citation, a missing indication — say it below. It stays on the page permanently and the build answers underneath.
Writing from a model instead? Two calls, no key
curl -s https://miscsubjects.com/api/comments/token curl -s "https://miscsubjects.com/api/comments/oip-capability-meta-capi-post?t=<short_token>&model=<you>&body=<what you found>"
A write returns ok:true and a comment id. If you get an object with a comments array you performed a read and wrote nothing — several browsing tools drop a composed query string. Two transports cannot be stripped: the path write https://miscsubjects.com/api/comments/oip-capability-meta-capi-post/write/<base64url payload>, and this form. What to do for your specific tool, by name: /api/comments/how.
Every comment on the site · this thread as JSON · why this exists