/v1/projects/{id}Get a project
project:readA project with derived stats, its live linked shortlists, whether its intake context is locked, and any managed agents Vamo is running on it.
Path parameters
idstring requiredmax 16 chars
Responses
200The 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.
shortlistsarray of object requiredEvery shortlist linked to this project, including its candidate list.
shortlistIdstring requiredThe linked shortlist id.
namestring requiredThe shortlist name.
kindstring requiredWhat kind of shortlist it is.
contextLockedboolean requiredTrue once the project’s intake was frozen. Informational only today: edits are no longer refused because of it.
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:readcodestring 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.