core

One form for any company. Returns 201 with your API key once (we keep only a hash). Providers say what service they are so leads reach them.

Register once. kind=partner if you send us users; kind=provider if you take leads / orders / tasks from us (then service and at least one delivery are required). service is one of movers | storage | cleaning | furniture | grocery | insurance | isp | mobile, and stages must include the stage that service belongs to (move_planning / settle / activate). Affiliate providers (insurers, ISPs, carriers, stores): delivery.affiliate_code is your full https:// tracking link; config.vendor (one of the vendor names our task graph uses) is required when it is your only delivery and lets you omit service (we infer it). Responds 201; status is pending until approved by email within 1 business day (unless auto-approval is on).

post/v1/partners

Request

  • Base URL: https://www.putroots.com
  • URL: https://www.putroots.com/v1/partners
  • Auth: none required

Request body

codestring required

Your short code: 3–32 lowercase letters / digits / hyphens. Used in hand-off links and outbound links.

namestring required
kind'partner' | 'provider' required

partner = you send us users and watch their stage progress; provider = you take tasks from us (leads, orders).

stagesstring[] required

Which journey stages you are in. Scopes are derived from them.

contact_emailstring email required
service'movers' | 'storage' | 'cleaning' | 'furniture' | 'grocery' | 'insurance' | 'isp' | 'mobile'

Required for kind=provider (partners omit it): what kind of provider you are. movers / storage / cleaning need stage move_planning; furniture / grocery need settle; insurance / isp / mobile need activate. Affiliate providers may omit it when config.vendor is set: we infer it from the vendor. Puts you in the directory so leads / tasks reach you.

testboolean

Issue a pr_test_ sandbox key instead of a pr_live_ one. A sandbox key works immediately, with no approval step, and runs dry: leads come back redacted, real leads are never delivered to you, nothing is recorded, hand-offs are not billable. A code's key type is fixed at registration and a code can only be registered once, so register your sandbox under its own code (e.g. acme-sandbox) and your production code separately.

Response

Created

sourceunknown required
fetched_atstring date-time required
okboolean required
codestring required
kindstring required
stagesstring[] required
scopesstring[] required
status'pending' | 'active' required
api_keystring required

Shown once. Store it; we keep only a hash.

webhook_secretstring

Providers with a delivery.endpoint only. Shown once. We sign every POST to your endpoint: X-PutRoots-Signature: sha256=<hex(HMAC-SHA256(webhook_secret, raw request body))>.

notestring

status=pending: approval by email within 1 business day; the key works once approved. status=active: the key (and webhook_secret) are shown once.

Changes

No recorded changes to this operation across all 1 revision of this API.