listMemberSubCategoryLinks
List member-subcategory links with per-link metadata such as average price, specialty, and completion count. Filter by user or service to audit pricing and specialty flags across directory members.
Instructions
List user-service relationships - Paginated enumeration of MEMBER ↔ SUB CATEGORY links. Read-only.
Each record links a member (user_id) to a Sub Category (service_id) with per-link metadata: avg_price, specialty, num_completed, date. This is level 3 of the member-taxonomy relationship. Backed by BD's rel_services table.
Use when: auditing per-service-link metadata (prices, specialty flags, completion counts) across members. Filter by user_id to see one member's links, service_id to see everyone offering that service. For simpler "is this member tagged with this sub-cat" checks, the users_data.services CSV on the member record is cheaper.
When to use this vs. the simpler users_data.services CSV field: use this resource when you need PER-LINK metadata (pricing tier, specialty flag, completion counter). If you just want "this member is tagged with these Sub Categories" with no extra data, set updateUser.services (CSV of service IDs) instead.
Pagination + filter/sort: standard.
See also: getMemberSubCategoryLink, createMemberSubCategoryLink, listSubCategories (available Sub Categories), updateUser (sets the services CSV for simpler cases).
Returns: { status: "success", ..., message: [...records] }. Each has rel_id, user_id, service_id, date, avg_price, num_completed, specialty.
How a member gets classified on their public profile:
users_data.profession_id-> points at a single Top Category (the member's primary classification; shown in URL slug)users_data.services-> CSV of Sub Category IDs the member is tagged with (multiple allowed; simpler than the join table)rel_servicesrows (Member ↔ Sub Category links) -> used when you need per-link metadata likeavg_price,specialty,num_completed. Optional; most sites use just the CSV field.
Sub-sub-categories: createSubCategory with master_id=<parent service_id> creates a Sub Category nested under another Sub Category (a "sub-sub"). master_id=0 (default) means the Sub Category sits directly under a Top Category (the profession_id).
There is NO createProfession or createService tool in this MCP — those are BD's internal table names. Use createTopCategory / createSubCategory instead (BD's table-name → tool-name mapping is documented in Rule: Table to endpoint).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Pagination cursor (use next_page from previous response) | |
| limit | No | Records per page (default 25, max 100) | |
| property | No | Column key to filter by (present on the response rows; a wrong name silently returns empty). For multi-condition AND, pass parallel arrays here and in `property_value`/`property_operator` — equal length, Nth entries paired. See Rule: Compound filters. | |
| order_type | No | Sort direction: ASC or DESC | |
| order_column | No | Column to sort by — a column key present on the response rows (a wrong name silently returns empty) | |
| property_value | No | Value to filter by; array to pair with a `property` array (same length). | |
| property_operator | No | Filter operator (word-form; symbol forms WAF-stripped). Single: eq, ne, lt, lte, gt, gte, like, not_like. CSV: in, not_in, between. Substring: contains, starts_with, ends_with (+not_). Date: year_eq, month_eq, day_eq (+not_), since_days, until_days. Length: length_eq, length_lt, length_gt, length_between. Null: is_set, is_not_set, is_null, is_not_null. Array to pair with a `property` array (same length). See Rule: Filter operators for value shapes. |