Read Propstack contacts, properties, projects, deals, tasks, events; create and update CRM records.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
WRITE: create a CRM contact. Propstack matches on the email address: if a contact with the same email already exists it is UPDATED with the given fields instead of creating a duplicate. Consent flags (newsletter, contact permission, GDPR status) cannot be set here. Returns the contact id. POST /contacts.
Primary email address.
Company the contact works for.
Contact language.
Position in the company.
User id of the person looking after the contact.
Mobile number.
Last name.
First name.
Landline number.
True if the contact is a company.
Salutation: mr or ms.
Internal note on the contact.
Business mobile number.
Business phone number.
Custom field values by field name; only the given fields change.
Academic title, e.g. Dr.
Contact source id (see propstack_get_reference_data contact_sources).
Contact status id.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
WRITE: create a CRM contact. Propstack matches on the email address: if a contact with the same email already exists it is UPDATED with the given fields instead of creating a duplicate. Consent flags (newsletter, contact permission, GDPR status) cannot be set here. Returns the contact id. POST /contacts.
| Argument | Type | Description |
|---|---|---|
| string | Primary email address. | |
| company | string | Company the contact works for. |
| language | string | Contact language. |
| position | string | Position in the company. |
| broker_id | integer | User id of the person looking after the contact. |
| home_cell | string | Mobile number. |
| last_name | string | Last name. |
| first_name | string | First name. |
| home_phone | string | Landline number. |
| is_company | boolean | True if the contact is a company. |
| salutation | string | Salutation: mr or ms. |
| description | string | Internal note on the contact. |
| office_cell | string | Business mobile number. |
| office_phone | string | Business phone number. |
| custom_fields | object | Custom field values by field name; only the given fields change. |
| academic_title | string | Academic title, e.g. Dr. |
| client_source_id | integer | Contact source id (see propstack_get_reference_data contact_sources). |
| client_status_id | integer | Contact status id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 254,
"description": "Primary email address."
},
"company": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Company the contact works for."
},
"language": {
"enum": [
"de",
"en",
"es"
],
"type": "string",
"description": "Contact language."
},
"position": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Position in the company."
},
"broker_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "User id of the person looking after the contact.",
"exclusiveMinimum": 0
},
"home_cell": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Mobile number."
},
"last_name": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Last name."
},
"first_name": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "First name."
},
"home_phone": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Landline number."
},
"is_company": {
"type": "boolean",
"description": "True if the contact is a company."
},
"salutation": {
"enum": [
"mr",
"ms"
],
"type": "string",
"description": "Salutation: mr or ms."
},
"description": {
"type": "string",
"maxLength": 5000,
"minLength": 1,
"description": "Internal note on the contact."
},
"office_cell": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Business mobile number."
},
"office_phone": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Business phone number."
},
"custom_fields": {
"type": "object",
"description": "Custom field values by field name; only the given fields change.",
"propertyNames": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
]
}
},
"academic_title": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Academic title, e.g. Dr."
},
"client_source_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Contact source id (see propstack_get_reference_data contact_sources).",
"exclusiveMinimum": 0
},
"client_status_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Contact status id.",
"exclusiveMinimum": 0
}
}
}WRITE: create a deal linking a contact to a property in a pipeline stage (see propstack_list_deal_pipelines for stage ids). Returns the new deal. POST /client_properties.
| Argument | Type | Description |
|---|---|---|
| note | string | Internal note on the deal. |
| price | number | Expected price of the deal. |
| broker_id | integer | User id of the deal owner. |
| contact_id* | integer | Contact (prospect) id. |
| property_id* | integer | Property id. |
| deal_stage_id* | integer | Pipeline stage id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"contact_id",
"property_id",
"deal_stage_id"
],
"properties": {
"note": {
"type": "string",
"maxLength": 5000,
"minLength": 1,
"description": "Internal note on the deal."
},
"price": {
"type": "number",
"minimum": 0,
"description": "Expected price of the deal."
},
"broker_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "User id of the deal owner.",
"exclusiveMinimum": 0
},
"contact_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Contact (prospect) id.",
"exclusiveMinimum": 0
},
"property_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Property id.",
"exclusiveMinimum": 0
},
"deal_stage_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Pipeline stage id.",
"exclusiveMinimum": 0
}
}
}WRITE: create a note, a to-do (with due date) or an appointment (with start and end) in Propstack, linked to contacts, properties or projects. note_type_id is the activity type id (see propstack_get_reference_data activity_types). No e-mail or SMS is sent to the contact; the only mail is the reminder to the assignee when remind_at is set. Returns the new task id. POST /tasks.
| Argument | Type | Description |
|---|---|---|
| body | string | Note text (plain text; stored as escaped HTML with line breaks). |
| kind* | string | note = plain note, todo = task with due_date, appointment = event with starts_at and ends_at. |
| title* | string | Title. |
| ends_at | string | End (appointment only). |
| due_date | string | Due date and time (todo only). |
| location | string | Place (appointment only). |
| broker_id | integer | User id the task is assigned to. |
| remind_at | string | When Propstack e-mails a reminder to the assignee, before due_date (todo only). This sends a mail to a colleague. |
One contact by id with address, salutation, language, notes, GDPR status, owner, status, source, tags, sub-contacts and owned properties. Birth data, identity and tax numbers, income and the portal token are never returned. GET /contacts/{id}.
| Argument | Type | Description |
|---|---|---|
| include | array | Related records to include: sub-contacts and/or properties the contact owns. |
| contact_id* | integer | Propstack contact id. |
| custom_fields | array | Names of custom fields to return (only these; sensitive ones such as birth date or income are never returned). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"contact_id"
],
"properties": {
"include": {
"type": "array",
"items": {
"enum": [
"children",
"owned_properties"
],
"type": "string"
},
"maxItems": 2,
"description": "Related records to include: sub-contacts and/or properties the contact owns."
},
"contact_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Propstack contact id.",
"exclusiveMinimum": 0
},
"custom_fields": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Names of custom fields to return (only these; sensitive ones such as birth date or income are never returned)."
}
}
}One property (Objekt) by id: address, type, rooms, areas, prices, status and the description, location and furnishing texts (clipped). No images or owner. GET /units/{id}.
| Argument | Type | Description |
|---|---|---|
| property_id* | integer | Propstack property id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"property_id"
],
"properties": {
"property_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Propstack property id.",
"exclusiveMinimum": 0
}
}
}Look up the ids used by other tools: property_statuses, activity_types (note/task/appointment types, needed as note_type_id), contact_sources, reservation_reasons (rejection reasons), contact_tags or property_tags. GET /property_statuses, /activity_types, /contact_sources, /reservation_reasons or /groups.
| Argument | Type | Description |
|---|---|---|
| kind* | string | Which list to fetch. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"property_statuses",
"activity_types",
"contact_sources",
"reservation_reasons",
"contact_tags",
"property_tags"
],
"type": "string",
"description": "Which list to fetch."
}
}
}One task by id (a note, to-do or appointment): title, body text (clipped), type, linked contacts, properties and projects (id and name only), due date or start/end. GET /tasks/{id}.
| Argument | Type | Description |
|---|---|---|
| task_id* | integer | Propstack task id (the id of a note, to-do or appointment). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id"
],
"properties": {
"task_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Propstack task id (the id of a note, to-do or appointment).",
"exclusiveMinimum": 0
}
}
}List the activity timeline (notes, tasks, appointments, e-mails, SMS, letters, rejections, inquiries) with title, linked contacts and properties, state and dates. Message and note bodies are not returned. Filter by type, contact, property, project, owner, category or date. GET /activities.
| Argument | Type | Description |
|---|---|---|
| per | integer | Results per page, 1-100 (default 25). |
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| order | string | Sort direction. |
| broker_id | integer | Only activities assigned to this user id. |
| item_type | string | Kind of activity; 'reminder' is a to-do. |
| contact_id | integer | Only activities linked to this contact. |
| project_id | integer | Only activities linked to this project. |
| category_id | integer | Only this activity type id (see propstack_get_reference_data activity_types). |
List or search CRM contacts (Kontakte). Returns business fields only (name, company, email, phone numbers, status, source, tags, owner, dates), never birth data, identity or tax numbers, income or portal tokens. Search by free text (name, email, address, phone), exact email, exact phone number, or filter by status, source, tag, owner and dates. Archived contacts are excluded unless archived is set. GET /contacts.
| Argument | Type | Description |
|---|---|---|
| per | integer | Results per page, 1-100 (default 25). |
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| string | Exact email address of the contact. | |
| order | string | Sort direction. |
| query | string | Free-text search over first name, last name, emails, address and phone numbers. |
| sort_by | string | Sort field. |
| tag_ids | array | Only contacts with these tag (Merkmal) ids (see propstack_get_reference_data contact_tags). |
| archived | string | 'only' = only archived contacts, 'include' = archived and active. Default: active only. |
List the deal pipelines with their stages (id, name, position, win chance). Use the stage ids to filter deals or to move a deal. GET /deal_pipelines.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List deals (a deal links a contact to a property and sits in a pipeline stage). Filter by pipeline, stage, category (qualified/unqualified/lost), contact, property, project or owner. Use propstack_list_deal_pipelines for stage ids. GET /client_properties.
| Argument | Type | Description |
|---|---|---|
| per | integer | Results per page, 1-100 (default 25). |
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| order | string | Sort direction. |
| sort_by | string | Sort field (default created_at). |
| category | string | Deal category. |
| broker_id | integer | Only deals owned by this user id. |
| contact_id | integer | Only the deals of this contact. |
| project_id | integer | Only the deals of this project. |
| property_id | integer | Only the deals of this property. |
List calendar appointments (Termine, e.g. viewings) in a time window, with title, place, start/end, state and the linked contact, property and project (id and name only). Paged: follow next_page. GET /events.
| Argument | Type | Description |
|---|---|---|
| per | integer | Results per page, 1-100 (default 25). |
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| state | string | Event state. |
| broker_id | integer | Only events assigned to this user id. |
| contact_id | integer | Only events with this contact. |
| project_id | integer | Only events for this project. |
| property_id | integer | Only events for this property. |
| starts_after | string | Only events that start after this ISO 8601 date-time. |
| starts_before | string | Only events that start before this ISO 8601 date-time. |
List projects (Projekte: a project groups several property units): title, project id, status, address, owner. Not paged; at most 200 are returned. GET /projects.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List or search properties (Objekte / units): address, type, marketing type (buy/rent), rooms, areas, prices, status. Images and owners are not returned. Filter by free text, status, tag, project, marketing type, object type, price and area ranges. GET /units.
| Argument | Type | Description |
|---|---|---|
| per | integer | Results per page, 1-100 (default 25). |
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| order | string | Sort direction. |
| query | string | Free-text search over unit id, street, zip code, city, district and exposee id. |
| country | string | Two-letter ISO country code, e.g. DE. |
| rs_type | string | Property type. |
| sort_by | string | Sort field. |
| tag_ids | array | Only properties with one of these tag ids (see propstack_get_reference_data property_tags). |
| archived | string |
List the users (staff, Nutzer) of the Propstack account: id, name, work email, position, phone, team. Use the ids as owner/broker filters. GET /brokers.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}WRITE: change the given fields of an existing contact; fields not given stay as they are. Returns the updated contact (business fields). PUT /contacts/{id}.
| Argument | Type | Description |
|---|---|---|
| string | Primary email address. | |
| company | string | Company the contact works for. |
| language | string | Contact language. |
| position | string | Position in the company. |
| broker_id | integer | User id of the person looking after the contact. |
| home_cell | string | Mobile number. |
| last_name | string | Last name. |
| contact_id* | integer | Propstack contact id. |
| first_name | string | First name. |
| home_phone | string |
WRITE: change the given fields of a deal, typically move it to another pipeline stage or update its note or price. Fields not given stay as they are. PUT /client_properties/{id}.
| Argument | Type | Description |
|---|---|---|
| note | string | Internal note on the deal (replaces the previous note). |
| price | number | Expected price of the deal. |
| deal_id* | integer | Propstack deal id. |
| broker_id | integer | New deal owner (user id). |
| deal_stage_id | integer | Move the deal to this stage. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"deal_id"
],
"properties": {
"note": {
"type": "string",
"maxLength": 5000,
"minLength": 1,
"description": "Internal note on the deal (replaces the previous note)."
},
"price": {
"type": "number",
"minimum": 0,
"description": "Expected price of the deal."
},
"deal_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Propstack deal id.",
"exclusiveMinimum": 0
},
"broker_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "New deal owner (user id).",
"exclusiveMinimum": 0
},
"deal_stage_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Move the deal to this stage.",
"exclusiveMinimum": 0
}
}
}WRITE: change the given fields of an existing note, to-do or appointment (for example mark a to-do done, move its due date, or reschedule). Fields not given stay as they are. PUT /tasks/{id}.
| Argument | Type | Description |
|---|---|---|
| body | string | Note text (plain text; stored as escaped HTML with line breaks). |
| done | boolean | Mark a to-do done (true) or open (false). |
| title | string | Title. |
| ends_at | string | New end (appointment). |
| task_id* | integer | Propstack task id. |
| due_date | string | New due date and time (to-do). |
| location | string | New place (appointment). |
| broker_id | integer | User id the task is assigned to. |
| remind_at | string | New reminder time (to-do). |
| starts_at |
| starts_at | string | Start (appointment only). |
| contact_ids | array | Contacts the activity is linked to (usually one). |
| project_ids | array | Projects the activity is linked to. |
| note_type_id* | integer | Activity type id; must match the kind (see propstack_get_reference_data activity_types). |
| property_ids | array | Properties the activity is linked to. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"kind",
"title",
"note_type_id"
],
"properties": {
"body": {
"type": "string",
"maxLength": 20000,
"minLength": 1,
"description": "Note text (plain text; stored as escaped HTML with line breaks)."
},
"kind": {
"enum": [
"note",
"todo",
"appointment"
],
"type": "string",
"description": "note = plain note, todo = task with due_date, appointment = event with starts_at and ends_at."
},
"title": {
"type": "string",
"maxLength": 250,
"minLength": 1,
"description": "Title."
},
"ends_at": {
"type": "string",
"description": "End (appointment only)."
},
"due_date": {
"type": "string",
"description": "Due date and time (todo only)."
},
"location": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "Place (appointment only)."
},
"broker_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "User id the task is assigned to.",
"exclusiveMinimum": 0
},
"remind_at": {
"type": "string",
"description": "When Propstack e-mails a reminder to the assignee, before due_date (todo only). This sends a mail to a colleague."
},
"starts_at": {
"type": "string",
"description": "Start (appointment only)."
},
"contact_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 20,
"minItems": 1,
"description": "Contacts the activity is linked to (usually one)."
},
"project_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 20,
"minItems": 1,
"description": "Projects the activity is linked to."
},
"note_type_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Activity type id; must match the kind (see propstack_get_reference_data activity_types).",
"exclusiveMinimum": 0
},
"property_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 20,
"minItems": 1,
"description": "Properties the activity is linked to."
}
}
}| property_id |
| integer |
| Only activities linked to this property. |
| starts_after | string | Only activities that start at or after this ISO 8601 date-time. |
| created_after | string | Only activities created at or after this ISO 8601 date-time. |
| starts_before | string | Only activities that start at or before this ISO 8601 date-time. |
| created_before | string | Only activities created at or before this ISO 8601 date-time. |
| only_inquiries | boolean | Only inquiries (Anfragen). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"per": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction."
},
"broker_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only activities assigned to this user id.",
"exclusiveMinimum": 0
},
"item_type": {
"enum": [
"message",
"note",
"reminder",
"event",
"policy",
"cancelation",
"decision",
"sms",
"letter"
],
"type": "string",
"description": "Kind of activity; 'reminder' is a to-do."
},
"contact_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only activities linked to this contact.",
"exclusiveMinimum": 0
},
"project_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only activities linked to this project.",
"exclusiveMinimum": 0
},
"category_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only this activity type id (see propstack_get_reference_data activity_types).",
"exclusiveMinimum": 0
},
"property_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only activities linked to this property.",
"exclusiveMinimum": 0
},
"starts_after": {
"type": "string",
"description": "Only activities that start at or after this ISO 8601 date-time."
},
"created_after": {
"type": "string",
"description": "Only activities created at or after this ISO 8601 date-time."
},
"starts_before": {
"type": "string",
"description": "Only activities that start at or before this ISO 8601 date-time."
},
"created_before": {
"type": "string",
"description": "Only activities created at or before this ISO 8601 date-time."
},
"only_inquiries": {
"type": "boolean",
"description": "Only inquiries (Anfragen)."
}
}
}| broker_id | integer | Only contacts looked after by this user id (see propstack_list_users). |
| source_ids | array | Only contacts from one of these source ids (see propstack_get_reference_data contact_sources). |
| status_ids | array | Only contacts with one of these contact-status ids. |
| phone_number | string | Exact phone number (spaces and dashes are ignored). |
| created_after | string | Only contacts created at or after this ISO 8601 date-time. |
| updated_after | string | Only contacts updated at or after this ISO 8601 date-time. |
| created_before | string | Only contacts created at or before this ISO 8601 date-time. |
| updated_before | string | Only contacts updated at or before this ISO 8601 date-time. |
| include_children | boolean | Also return sub-contacts (contact persons of a company). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"per": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"email": {
"type": "string",
"maxLength": 254,
"minLength": 1,
"description": "Exact email address of the contact."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction."
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Free-text search over first name, last name, emails, address and phone numbers."
},
"sort_by": {
"enum": [
"last_contact_at",
"created_at",
"updated_at",
"first_name",
"last_name"
],
"type": "string",
"description": "Sort field."
},
"tag_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only contacts with these tag (Merkmal) ids (see propstack_get_reference_data contact_tags)."
},
"archived": {
"enum": [
"only",
"include"
],
"type": "string",
"description": "'only' = only archived contacts, 'include' = archived and active. Default: active only."
},
"broker_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only contacts looked after by this user id (see propstack_list_users).",
"exclusiveMinimum": 0
},
"source_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only contacts from one of these source ids (see propstack_get_reference_data contact_sources)."
},
"status_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only contacts with one of these contact-status ids."
},
"phone_number": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Exact phone number (spaces and dashes are ignored)."
},
"created_after": {
"type": "string",
"description": "Only contacts created at or after this ISO 8601 date-time."
},
"updated_after": {
"type": "string",
"description": "Only contacts updated at or after this ISO 8601 date-time."
},
"created_before": {
"type": "string",
"description": "Only contacts created at or before this ISO 8601 date-time."
},
"updated_before": {
"type": "string",
"description": "Only contacts updated at or before this ISO 8601 date-time."
},
"include_children": {
"type": "boolean",
"description": "Also return sub-contacts (contact persons of a company)."
}
}
}| created_after | string | Only deals created at or after this ISO 8601 date-time. |
| created_before | string | Only deals created at or before this ISO 8601 date-time. |
| deal_stage_ids | array | Only deals in these stages. |
| include_contact | boolean | Embed a short contact record in each deal (default false). |
| deal_pipeline_id | integer | Only deals in this pipeline. |
| include_property | boolean | Embed a short property record in each deal (default false). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"per": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction."
},
"sort_by": {
"type": "string",
"pattern": "^[a-z_]{1,40}$",
"description": "Sort field (default created_at)."
},
"category": {
"enum": [
"qualified",
"unqualified",
"lost"
],
"type": "string",
"description": "Deal category."
},
"broker_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only deals owned by this user id.",
"exclusiveMinimum": 0
},
"contact_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only the deals of this contact.",
"exclusiveMinimum": 0
},
"project_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only the deals of this project.",
"exclusiveMinimum": 0
},
"property_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only the deals of this property.",
"exclusiveMinimum": 0
},
"created_after": {
"type": "string",
"description": "Only deals created at or after this ISO 8601 date-time."
},
"created_before": {
"type": "string",
"description": "Only deals created at or before this ISO 8601 date-time."
},
"deal_stage_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1,
"description": "Only deals in these stages."
},
"include_contact": {
"type": "boolean",
"description": "Embed a short contact record in each deal (default false)."
},
"deal_pipeline_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only deals in this pipeline.",
"exclusiveMinimum": 0
},
"include_property": {
"type": "boolean",
"description": "Embed a short property record in each deal (default false)."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"per": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"state": {
"enum": [
"neutral",
"took_place",
"cancelled"
],
"type": "string",
"description": "Event state."
},
"broker_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only events assigned to this user id.",
"exclusiveMinimum": 0
},
"contact_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only events with this contact.",
"exclusiveMinimum": 0
},
"project_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only events for this project.",
"exclusiveMinimum": 0
},
"property_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only events for this property.",
"exclusiveMinimum": 0
},
"starts_after": {
"type": "string",
"description": "Only events that start after this ISO 8601 date-time."
},
"starts_before": {
"type": "string",
"description": "Only events that start before this ISO 8601 date-time."
}
}
}| 'only' = only archived properties, 'include' = archived and active. Default: active only. |
| price_to | number | Maximum purchase price. |
| rooms_to | number | Maximum number of rooms. |
| price_from | number | Minimum purchase price. |
| project_id | integer | Only the units of this project id. |
| rooms_from | number | Minimum number of rooms. |
| status_ids | array | Only properties in one of these status ids (see propstack_get_reference_data property_statuses). |
| base_rent_to | number | Maximum cold rent. |
| base_rent_from | number | Minimum cold rent. |
| marketing_type | string | Sale or rent. |
| living_space_to | number | Maximum living space in square metres. |
| living_space_from | number | Minimum living space in square metres. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"per": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction."
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Free-text search over unit id, street, zip code, city, district and exposee id."
},
"country": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "Two-letter ISO country code, e.g. DE."
},
"rs_type": {
"enum": [
"APARTMENT",
"HOUSE",
"TRADE_SITE",
"GARAGE",
"SHORT_TERM_ACCOMODATION",
"OFFICE",
"GASTRONOMY",
"INDUSTRY",
"STORE",
"SPECIAL_PURPOSE",
"INVESTMENT"
],
"type": "string",
"description": "Property type."
},
"sort_by": {
"enum": [
"created_at",
"updated_at",
"price",
"base_rent",
"property_space_value",
"number_of_rooms",
"construction_year"
],
"type": "string",
"description": "Sort field."
},
"tag_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 30,
"minItems": 1,
"description": "Only properties with one of these tag ids (see propstack_get_reference_data property_tags)."
},
"archived": {
"enum": [
"only",
"include"
],
"type": "string",
"description": "'only' = only archived properties, 'include' = archived and active. Default: active only."
},
"price_to": {
"type": "number",
"minimum": 0,
"description": "Maximum purchase price."
},
"rooms_to": {
"type": "number",
"minimum": 0,
"description": "Maximum number of rooms."
},
"price_from": {
"type": "number",
"minimum": 0,
"description": "Minimum purchase price."
},
"project_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only the units of this project id.",
"exclusiveMinimum": 0
},
"rooms_from": {
"type": "number",
"minimum": 0,
"description": "Minimum number of rooms."
},
"status_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 30,
"minItems": 1,
"description": "Only properties in one of these status ids (see propstack_get_reference_data property_statuses)."
},
"base_rent_to": {
"type": "number",
"minimum": 0,
"description": "Maximum cold rent."
},
"base_rent_from": {
"type": "number",
"minimum": 0,
"description": "Minimum cold rent."
},
"marketing_type": {
"enum": [
"BUY",
"RENT"
],
"type": "string",
"description": "Sale or rent."
},
"living_space_to": {
"type": "number",
"minimum": 0,
"description": "Maximum living space in square metres."
},
"living_space_from": {
"type": "number",
"minimum": 0,
"description": "Minimum living space in square metres."
}
}
}| Landline number. |
| is_company | boolean | True if the contact is a company. |
| salutation | string | Salutation: mr or ms. |
| description | string | Internal note on the contact. |
| office_cell | string | Business mobile number. |
| office_phone | string | Business phone number. |
| custom_fields | object | Custom field values by field name; only the given fields change. |
| academic_title | string | Academic title, e.g. Dr. |
| client_source_id | integer | Contact source id (see propstack_get_reference_data contact_sources). |
| client_status_id | integer | Contact status id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"contact_id"
],
"properties": {
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 254,
"description": "Primary email address."
},
"company": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Company the contact works for."
},
"language": {
"enum": [
"de",
"en",
"es"
],
"type": "string",
"description": "Contact language."
},
"position": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Position in the company."
},
"broker_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "User id of the person looking after the contact.",
"exclusiveMinimum": 0
},
"home_cell": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Mobile number."
},
"last_name": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Last name."
},
"contact_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Propstack contact id.",
"exclusiveMinimum": 0
},
"first_name": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "First name."
},
"home_phone": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Landline number."
},
"is_company": {
"type": "boolean",
"description": "True if the contact is a company."
},
"salutation": {
"enum": [
"mr",
"ms"
],
"type": "string",
"description": "Salutation: mr or ms."
},
"description": {
"type": "string",
"maxLength": 5000,
"minLength": 1,
"description": "Internal note on the contact."
},
"office_cell": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Business mobile number."
},
"office_phone": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Business phone number."
},
"custom_fields": {
"type": "object",
"description": "Custom field values by field name; only the given fields change.",
"propertyNames": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
]
}
},
"academic_title": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Academic title, e.g. Dr."
},
"client_source_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Contact source id (see propstack_get_reference_data contact_sources).",
"exclusiveMinimum": 0
},
"client_status_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Contact status id.",
"exclusiveMinimum": 0
}
}
}| string |
| New start (appointment). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"task_id"
],
"properties": {
"body": {
"type": "string",
"maxLength": 20000,
"minLength": 1,
"description": "Note text (plain text; stored as escaped HTML with line breaks)."
},
"done": {
"type": "boolean",
"description": "Mark a to-do done (true) or open (false)."
},
"title": {
"type": "string",
"maxLength": 250,
"minLength": 1,
"description": "Title."
},
"ends_at": {
"type": "string",
"description": "New end (appointment)."
},
"task_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Propstack task id.",
"exclusiveMinimum": 0
},
"due_date": {
"type": "string",
"description": "New due date and time (to-do)."
},
"location": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "New place (appointment)."
},
"broker_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "User id the task is assigned to.",
"exclusiveMinimum": 0
},
"remind_at": {
"type": "string",
"description": "New reminder time (to-do)."
},
"starts_at": {
"type": "string",
"description": "New start (appointment)."
}
}
}