Skip to content

FAQ

What is the difference between the API Key and the Endpoint Secret?

These serve two completely different purposes:

API Key (pj_live_...)Endpoint Secret
Who uses itYou → PromptJangPromptJang → Your target server
PurposeAuthenticate your API calls to PromptJangVerify that incoming webhooks are genuinely from PromptJang
Sent asAuthorization: Bearer pj_live_...Never sent directly — used to generate Standard Webhooks signatures
Where to useProgrammatic product and ingestion routesOn your target server to verify webhook signatures

In short: Use the API key to send events. Use the endpoint secret on your receiving server to verify them.

API Key

Programmatic requests and event ingestion can use an API key. Pass it in the Authorization header:

bash
curl -X POST https://api.promptjang.net/e/{endpoint_id} \
  -H "Authorization: Bearer pj_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"event": "order.created", "data": {"order_id": 123}}'

API keys are created in the dashboard. The full key is shown once at creation time — copy it immediately. After that, only the prefix (first 12 characters) is visible.

Endpoint Secret

When PromptJang delivers a webhook to your endpoint, it uses Standard Webhooks v1 with HMAC-SHA256. Verify the webhook-id, webhook-timestamp, and webhook-signature headers with an official Standard Webhooks library. See Webhook Signatures for a complete receiver example and rotation guidance.

Can I retrieve a full API key after creation?

No. API keys are stored as one-way hashes. The full key is only available at the moment of creation. This is the same approach used by Stripe, GitHub, and AWS.

If you lose an API key, revoke it in the dashboard and create a new one.

What happens if delivery fails?

PromptJang retries failed deliveries with exponential backoff. The retry schedule is:

AttemptDelay
1st retry60 seconds
2nd retry120 seconds
3rd retry240 seconds
4th retry480 seconds
5th retry960 seconds

After the initial attempt and five failed retries, the event is marked as EXPIRED and no further retries occur. You can replay expired events from the dashboard.

How does pricing work?

There are no plans or monthly subscription fees. The published rate is $0.10 per 1,000 newly accepted webhook events, mailbox messages, or A2A handoffs. Retries, mailbox reads, claims, acknowledgements, replays, rejected requests, and idempotent duplicates are free. HTTP and MCP use the same price.

Live billing is disabled during the founder-assisted beta. Founder-provisioned workspaces use exempt billing status, can create API keys without connecting a payment method, and still record local usage. Payment activation will become a requirement only after the billing launch gate is enabled.

How do I know my events were delivered?

Every event includes a full delivery log. Check the Events page in the dashboard or use the API:

bash
curl https://api.promptjang.net/api/v1/events/{event_id} \
  -H "Authorization: Bearer pj_live_your_key_here"

The response includes the event status (DELIVERED, FAILED, QUEUED, RETRYING, EXPIRED) and all delivery attempts with HTTP status codes and response bodies.

What status codes do target endpoints need to return?

PromptJang considers any 2xx response as a successful delivery. All other status codes (including 3xx redirects) are treated as failures and will trigger a retry.

Your endpoint should respond quickly — timeouts also count as failures.

Released under the MIT License.