원클릭으로
my-webhook-api
Inbound webhook endpoints for non-funnel sources — Stripe, GitHub, custom services. Funnel forms use the my-funnel-api proxy.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Inbound webhook endpoints for non-funnel sources — Stripe, GitHub, custom services. Funnel forms use the my-funnel-api proxy.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Deploy JavaScript functions to the MyAPI edge runtime (Cloudflare Workers). Register a function, upload a single-file JS bundle, get a live HTTP invocation URL or run it on a cron schedule. Each function gets a scoped capability key for cross-slot calls.
Take payments via Stripe — one-off or recurring. Connect your own Stripe account, then create hosted Stripe Checkout URLs. No raw card data ever touches your code.
Tracking pixel + identity resolution for MyAPI funnels and email. Capture visits and events, resolve known users to anonymous sessions, stream interaction events for analytics. Pairs with mycrmapi for auto-ingest of pixel_visit events on known contacts.
Auth, organizations, and billing hub. Start here to get an api_key and org_id — every other service depends on both.
Saved audiences = named Goldfox-filter snapshots over the people or company database. Build a target list once, name it, reuse it across campaigns, refresh to re-evaluate against current data. The persistence layer on top of my-people-api + my-company-api.
Register new domains and manage edge settings. Required before a funnel can go live on a custom URL.
| name | my-webhook-api |
| version | 1.0.0 |
| description | Inbound webhook endpoints for non-funnel sources — Stripe, GitHub, custom services. Funnel forms use the my-funnel-api proxy. |
| triggers | ["webhook","inbound","receiver","stripe events","github webhook","slack notification","delivery","payload","event ingest"] |
| checksum | sha256-pending |
Per-org HTTP endpoints that accept inbound POSTs and durably store every delivery. A webhook on its own is a passive receiver — pair it with myworkflowapi to react to incoming events.
Scope: non-funnel inbound. Use this for Stripe → MyAPI, GitHub → MyAPI, custom services → MyAPI, anything where an external system POSTs to you. Funnel forms use the funnel proxy (see my-funnel-api: myapi funnel form ... --capture-to webhook:<id> if you need to bind a specific destination; otherwise the funnel's auto-provisioned webhook handles it). Don't hardcode api.mywebhookapi.com/webhook/in/<slug> URLs into funnel HTML.
Each endpoint has a unique inbound URL minted at create time. Anyone who knows the URL can POST to it; the body is stored verbatim along with headers and a timestamp. Deliveries are kept indefinitely (until you delete the endpoint).
The inbound URL accepts any JSON body — no enforced schema, no required fields. Whatever you POST is what gets stored. Two consequences:
{{ payload.field }} templating. If your form POSTs {"email":"alice@x.com","message":"hi"}, a workflow step can do --to "{{ payload.email }}" to send a reply.Treat the webhook slug as a secret — anyone with the URL can POST.
| Command | What it does |
|---|---|
myapi webhook create "<name>" [--description "..."] | Create an endpoint, returns id + inbound URL |
myapi webhook list | List all endpoints in your org |
myapi webhook delete <id> | Delete an endpoint and all its deliveries |
myapi webhook delivery <delivery_id> | Get the full payload + headers for one delivery |
# 1. Create a webhook
myapi webhook create "stripe-events" --description "Stripe payment events"
# → prints: Inbound URL: https://api.mywebhookapi.com/webhook/in/<slug>
# 2. POST to it from your service
curl -X POST https://api.mywebhookapi.com/webhook/in/<slug> \
-H "Content-Type: application/json" \
-d '{"event":"payment.succeeded"}'
# → responds with {"delivery_id":"<uuid>"} — capture this to inspect later
# 3. Inspect a delivery by id (there is no list-deliveries route)
myapi webhook delivery <delivery_id>
A contact form on yoursite.com that sends a thank-you email and a Slack ping when submitted:
WID=$(myapi webhook create "contact-form" --json | jq -r .id)
WURL=$(myapi webhook list --json | jq -r ".[] | select(.id==\"$WID\") | .url")
myapi workflow create "Contact form handler" \
--endpoint-id $WID \
--steps '[
{"type":"send_email","from":"hello@yoursite.com","to":"{{ payload.email }}","subject":"Thanks, {{ payload.name }}!","body":"We got your message."},
{"type":"slack","webhook_url":"https://hooks.slack.com/...","text":"New form submission from {{ payload.name }}"}
]'
# Drop this in your HTML — POSTs JSON to $WURL
echo "<form id='c'>
<input name='name' required>
<input name='email' type='email' required>
<textarea name='message' required></textarea>
<button>Send</button>
</form>
<script>
document.getElementById('c').onsubmit = async e => {
e.preventDefault();
await fetch('$WURL', {method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(Object.fromEntries(new FormData(e.target)))});
alert('Thanks!');
};
</script>"
The form sends {name, email, message} → webhook stores it → workflow runs both steps → email + Slack ping.
myapi webhook list first, pass --org explicitly; delete verbs require --yes in non-interactive runs.200 on success, 4xx if the endpoint is missing or body isn't valid JSON.Run myapi webhook --help for full flag reference.