API reference navigation
POST /v1/contacts/save-developers

Save developers as contacts

Access
Authenticated
contact:create
Cost
Free
Rate limit
30 / minute per account
Quota
None

Bulk save 1..500 developers as contacts, each with its own source reason and do-not-contact bit. Backs the onboarding moment: a company's own top devs save do-not-contact (own-company), competitor devs save contactable (competitor). Idempotent: re-adds restore removed contacts, and each saved row is converged to its requested do-not-contact state.

Request body SaveDevelopersRequest

  • developers array of object required

    The developers to save, 1 to 500 at a time, each with its own do-not-contact bit.

    min 1 items, max 500 items
    • developerId string required

      The developer to save.

      max 200 chars
    • doNotContact boolean required

      True to save them as do-not-contact, which is how you record your own employees so outreach can never reach them. False to save them as contactable.

    • source string

      Why they are being saved, recorded as provenance. Defaults to a manual add.

      searchfeedimportmanualapilookupown-companycompetitor
    • sourceDetail string

      Free-text detail behind `source`.

      max 1000 chars

Responses

  • 200 Save result
    • created array of string required

      Contacts newly created by this call.

    • restored array of string required

      Contacts that had been removed and were brought back, rather than created fresh. Their history is intact.

    • existing array of string required

      Contacts that were already present and were left as they were.

  • 400 Empty, too many, or non-numeric ids
    • code string required

      Stable machine-readable error code. Branch on this, never on the numeric status.

      bad_requestunauthorizedsignature_requiredpayment_requiredforbiddennot_foundconflictgonepayload_too_largeunprocessable_entitytoo_many_requestsinternal_errornot_implementedbilling_unavailablenot_contactablemailbox_link_unavailablemailbox_requiredmail_engine_unavailablewebhook_publisher_unavailabledatabase_unavailableclient_error
    • message string required

      Human-readable explanation of the refusal.

    • status integer required

      The HTTP status code, repeated in the body.

    • remedy object

      A self-serve path forward, when one exists (a 402 points at the credit top-up).

      • kind string required

        What kind of remedy this is, so a client can route it: whether the caller can clear the condition through the API, or a person must act in the web app.

        topupconnect_mailbox
      • url string required

        Where to go to clear the condition: an API path, or a web app page when only a person can.

  • 401 No or invalid credential
    • code string required

      Stable machine-readable error code. Branch on this, never on the numeric status.

      bad_requestunauthorizedsignature_requiredpayment_requiredforbiddennot_foundconflictgonepayload_too_largeunprocessable_entitytoo_many_requestsinternal_errornot_implementedbilling_unavailablenot_contactablemailbox_link_unavailablemailbox_requiredmail_engine_unavailablewebhook_publisher_unavailabledatabase_unavailableclient_error
    • message string required

      Human-readable explanation of the refusal.

    • status integer required

      The HTTP status code, repeated in the body.

    • remedy object

      A self-serve path forward, when one exists (a 402 points at the credit top-up).

      • kind string required

        What kind of remedy this is, so a client can route it: whether the caller can clear the condition through the API, or a person must act in the web app.

        topupconnect_mailbox
      • url string required

        Where to go to clear the condition: an API path, or a web app page when only a person can.

  • 403 Missing contact:create
    • code string required

      Stable machine-readable error code. Branch on this, never on the numeric status.

      bad_requestunauthorizedsignature_requiredpayment_requiredforbiddennot_foundconflictgonepayload_too_largeunprocessable_entitytoo_many_requestsinternal_errornot_implementedbilling_unavailablenot_contactablemailbox_link_unavailablemailbox_requiredmail_engine_unavailablewebhook_publisher_unavailabledatabase_unavailableclient_error
    • message string required

      Human-readable explanation of the refusal.

    • status integer required

      The HTTP status code, repeated in the body.

    • remedy object

      A self-serve path forward, when one exists (a 402 points at the credit top-up).

      • kind string required

        What kind of remedy this is, so a client can route it: whether the caller can clear the condition through the API, or a person must act in the web app.

        topupconnect_mailbox
      • url string required

        Where to go to clear the condition: an API path, or a web app page when only a person can.