Get a contact card
Returns the card Project Blue stored for the line and, read live, what Messages on the line currently holds. This is the source of truth after an INDETERMINATE set and the way to notice a card someone changed on the Mac by hand.
GET/get-contact-cardBearer token
Query parameters
lineIdstring (UUID v4)RequiredThe line to read. Use a lineId returned from GET /get-lines.
The line object
readiness"READY" | "OFFLINE" | "UNSUPPORTED_SERVER" | "PRIVATE_API_DISABLED" | "HELPER_DISCONNECTED" | "NOT_REGISTERED" | "LINE_NOT_ELIGIBLE"RequiredWhether the line can take contact-card calls right now, checked live on every request. Anything other than READY also appears as an error_code on the write endpoints.
serverVersionstring | nullRequiredBlueBubbles version the line is running. Contact cards need 2.2.0 or newer.
namestring | nullRequiredThe name Messages on the line currently holds, read live. null when the line could not be read.
hasPhotoboolean | nullRequiredWhether Messages on the line currently holds a photo.
state"APPLIED" | "MISMATCH" | "NOT_SET" | "UNMANAGED" | "UNAVAILABLE"RequiredHow the live card compares with the stored one. APPLIED matches; MISMATCH means someone changed it on the Mac or a set did not finish; NOT_SET has no card anywhere; UNMANAGED has a card on the Mac that was never set through Project Blue; UNAVAILABLE means the line could not be read.
When the live card matches the stored one, appliedToLine on the stored card is set to true; when it does not, it is cleared. Reading is always 200 — a line that cannot be reached reports state: UNAVAILABLE with the readiness reason rather than an error.