Add a contact record
Track a person. Pass `contact_id` to overlay a corpus contact (idempotent — returns 200 with the existing record rather than duplicating it), or a `name` plus parent entity for someone Bellwork has never seen. There is no bulk import by design: a record means somebody took an interest.
Track a person. Pass contact_id to overlay a corpus contact (idempotent — returns 200 with the existing record rather than duplicating it), or a name plus parent entity for someone Bellwork has never seen. There is no bulk import by design: a record means somebody took an interest.
API key (sk_live_... prefix). Generate keys in the UI under Settings > API Keys, then send it as Authorization: Bearer sk_live_...
In: header
Request Body
application/json
uuidFor a person not in the corpus
uuiduuid"reveal" | "search" | "brief" | "manual"uuidResponse Body
application/json
application/json
application/json
application/json
curl -X POST "https://loading/api/v1/org-contacts" \ -H "Content-Type: application/json" \ -d '{}'{
"data": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",
"contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
"name": "string",
"district_id": "880bc4ee-477a-4e12-a0f0-c89f020ba05d",
"school_id": "c1317ebe-519d-4c8a-9ab1-7bfd15017c1c",
"notes": "string",
"tags": [
"string"
],
"added_at": "string",
"added_via": "reveal",
"added_by": "6f5851d8-8a63-4597-95ec-4f964b8e7696",
"overrides": {
"property1": "string",
"property2": "string"
},
"overridden_at": {
"property1": "string",
"property2": "string"
},
"promoted_from_brief_id": "7d555af3-e03f-40b9-9ba9-f70a244e4343",
"promoted_person_key": "string"
}
}{
"data": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",
"contact_id": "f245e2a3-e141-4d41-912c-b1c1f5bd5598",
"name": "string",
"district_id": "880bc4ee-477a-4e12-a0f0-c89f020ba05d",
"school_id": "c1317ebe-519d-4c8a-9ab1-7bfd15017c1c",
"notes": "string",
"tags": [
"string"
],
"added_at": "string",
"added_via": "reveal",
"added_by": "6f5851d8-8a63-4597-95ec-4f964b8e7696",
"overrides": {
"property1": "string",
"property2": "string"
},
"overridden_at": {
"property1": "string",
"property2": "string"
},
"promoted_from_brief_id": "7d555af3-e03f-40b9-9ba9-f70a244e4343",
"promoted_person_key": "string"
}
}{
"error": "string",
"message": "string",
"statusCode": -9007199254740991
}{
"error": "string",
"message": "string",
"statusCode": -9007199254740991
}List the organization's contact records GET
Every record this organization has, newest first. Records are org-scoped and unowned — every member sees all of them regardless of who added them. Optionally scope to a parent district or school, or look one up by corpus contact id.
Delete a contact record DELETE
Drops the organization's notes and corrections for this person. Does not touch the corpus contact, and does not undo a reveal — a revealed contact stays revealed.