/v1/projects/{id}Update a project
project:updateRename a project, change its status (active | paused | archived), or reassign its company. A project Vamo is working edits like any other: attaching a managed agent no longer freezes the name, the company or the role profile. Handing the role to Vamo is not a mode on this row: create a managed agent on the project instead.
Path parameters
idstring requiredmax 16 chars
Request body UpdateProjectRequest
namestringRename the project.
min 1 chars, max 80 charsstatusstringChange the project status.
activepausedarchivedcompanyIdstring | nullReassign the client company, or send null to make it in-house.
max 16 chars
Responses
200The updated projectidstring requiredThe project id.
namestring requiredThe project name, usually the role being hired for.
statusstring requiredWhere the project stands.
companyRefProjectCompanyRef requiredThe company this role hires for. Null only on projects created before companies existed.
subjectTypestring requiredWhat kind of company record this points at: a client company on this account, or the account’s own profile.
subjectIdstring requiredThe id of that record.
companyNamestring | null requiredThat company’s display name, resolved for you. Null only when no printable name is on file.
createdBystring | null requiredThe member or key that created the project. Null when unknown.
createdAtstring requiredWhen the project was created, as an ISO 8601 instant.
updatedAtstring requiredWhen it last changed, as an ISO 8601 instant.
candidateListIdstring | null requiredThe shortlist holding this project’s candidates. Every project gets one at creation.
managedAgentsarray of ProjectManagedAgent requiredVamo-managed agents working this project. Empty on an ordinary project; a project can have any number.
idstring requiredThe managed agent id.
namestring requiredThe agent’s name.
statusstring requiredWhere the agent stands on this project.
statsobject requiredCandidate, sequence and outreach counters for this project.
candidatesinteger requiredHow many candidates are on this project.
sequencesinteger requiredHow many outreach sequences are running for it.
contactedinteger requiredDistinct people who have actually had at least one message sent to them on this project. Not the number of messages, and not the number scheduled.
replyRatenumber | null requiredReplies as a fraction of people contacted, 0 to 1. Null when nobody has been contacted yet, which is different from a rate of zero.
401No or invalid credentialcodestring requiredStable 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_errormessagestring requiredHuman-readable explanation of the refusal.
statusinteger requiredThe HTTP status code, repeated in the body.
remedyobjectA self-serve path forward, when one exists (a 402 points at the credit top-up).
kindstring requiredWhat 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_mailboxurlstring requiredWhere to go to clear the condition: an API path, or a web app page when only a person can.
403Missing project:updatecodestring requiredStable 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_errormessagestring requiredHuman-readable explanation of the refusal.
statusinteger requiredThe HTTP status code, repeated in the body.
remedyobjectA self-serve path forward, when one exists (a 402 points at the credit top-up).
kindstring requiredWhat 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_mailboxurlstring requiredWhere to go to clear the condition: an API path, or a web app page when only a person can.
404No such project in this accountcodestring requiredStable 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_errormessagestring requiredHuman-readable explanation of the refusal.
statusinteger requiredThe HTTP status code, repeated in the body.
remedyobjectA self-serve path forward, when one exists (a 402 points at the credit top-up).
kindstring requiredWhat 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_mailboxurlstring requiredWhere to go to clear the condition: an API path, or a web app page when only a person can.
409Rename collisioncodestring requiredStable 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_errormessagestring requiredHuman-readable explanation of the refusal.
statusinteger requiredThe HTTP status code, repeated in the body.
remedyobjectA self-serve path forward, when one exists (a 402 points at the credit top-up).
kindstring requiredWhat 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_mailboxurlstring requiredWhere to go to clear the condition: an API path, or a web app page when only a person can.