Title100/100
List affiliates
The title clearly communicates the tool’s action and subject. Keep it concise.
Description92/100
List affiliates with pagination, filtering, and sorting. Supports searching by name, email, or tracking ID, filtering by partnership status, group, or tag IDs (OR), and date range filters. Returns data with the affiliate ID, contact details, tracking_id, partnership_status, onboarding state, group, integration metadata, and timestamps. Pagination reports total, count, offset, limit, has_more, and next_offset when another page exists.
The description explains the capability, when to use it, and what to expect.
Inputs84/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
limit
Maximum number of matching records to request for this page. The result may contain fewer; use pagination.has_more and next_offset to continue.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
offset
Number of matching records to skip before collecting this page. Use pagination.next_offset from the previous result to continue.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
partnership_status
Partnership state in your program: pending awaits approval, approved allows participation, and rejected denies participation.
Clear enough to supply this argument.
search
Find affiliates by a case-insensitive partial match on name, contact email, or referral-link tracking ID.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
group_id
Affiliate group to assign or filter by. Use a group ID configured in your Affonso dashboard.
Clear enough to supply this argument.
tag_ids
Tag IDs from affonso_list_tags. Returns affiliates matching any supplied tag.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
sort
Sort by createdAt, updatedAt, name, or partnershipStatus, followed by :asc or :desc. For example, name:asc sorts alphabetically.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
dateFrom
Include records created at or after this UTC timestamp, such as 2026-10-15T00:00:00Z.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
dateTo
Include records created at or before this UTC timestamp, such as 2026-10-15T23:59:59Z.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
expand
Include promoCodes for coupons, commissionOverrides for custom rates, invoiceDetails for billing, or payoutMethod for payment details.
Clear enough to supply this argument.
response_format
Presentation of the text content. Omit for readable Markdown, or choose json for JSON text. Read structuredContent for the machine-readable result in either case.
Clear enough to supply this argument.
Annotations100/100
All four behavior hints are declared.
{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Output schema82/100
Align the output schema with the tool’s documented result.
View output schema
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"data",
"pagination"
],
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"created_at"
],
"properties": {
"id": {
"type": "string",
"description": "Affiliate record ID. Pass this as affiliate_id to get or update the affiliate."
},
"name": {
"type": [
"string",
"null"
],
"description": "Affiliate display name, null when unavailable."
},
"email": {
"type": [
"string",
"null"
],
"description": "Affiliate contact email, null when unavailable."
},
"source": {
"type": [
"string",
"null"
],
"description": "Stored acquisition source for this record, when available."
},
"status": {
"type": "string",
"description": "Affiliate lifecycle status when included by the operation; program membership is partnership_status."
},
"currency": {
"type": "string",
"description": "Currency associated with total_commissions when included."
},
"group_id": {
"type": [
"string",
"null"
],
"description": "Assigned affiliate group ID, null when no group is assigned."
},
"metadata": {
"description": "Custom integration data stored on the record. Its keys depend on the caller."
},
"created_at": {
"type": "string",
"description": "Record creation time as an ISO 8601 UTC timestamp."
},
"promoCodes": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"promo_code_id",
"coupon_id",
"discount_type",
"discount_value",
"duration",
"created_at"
],
"properties": {
"code": {
"type": "string",
"description": "Coupon text associated with the affiliate."
},
"duration": {
"type": [
"string",
"null"
],
"description": "Configured duration of the coupon discount, null when unavailable."
},
"coupon_id": {
"type": [
"string",
"null"
],
"description": "Payment provider coupon ID, null when unlinked."
},
"created_at": {
"type": "string",
"description": "Record creation time as an ISO 8601 UTC timestamp."
},
"discount_type": {
"type": [
"string",
"null"
],
"description": "Configured discount model used to interpret discount_value, null when unavailable."
},
"promo_code_id": {
"type": [
"string",
"null"
],
"description": "Payment provider promotion-code ID, null when unlinked."
},
"discount_value": {
"type": [
"number",
"null"
],
"description": "Configured discount value interpreted according to discount_type, null when unavailable."
}
},
"additionalProperties": false
},
"description": "Program coupon records included when expand requests promoCodes."
},
"updated_at": {
"type": "string",
"description": "Last record update as an ISO 8601 UTC timestamp."
},
"tracking_id": {
"type": [
"string",
"null"
],
"description": "Affiliate referral-link identifier, separate from the affiliate record ID."
},
"payoutMethod": {
"anyOf": [
{
"type": "object",
"required": [
"type",
"details"
],
"properties": {
"type": {
"type": "string",
"description": "Configured payout method, such as paypal or wire_transfer."
},
"details": {
"type": "object",
"description": "Recipient fields for the configured payment method, such as email or bank account details. Values may be null.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"null"
]
}
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Expanded affiliate payout method, null when none is configured."
},
"invoiceDetails": {
"anyOf": [
{
"type": "object",
"required": [
"company_name",
"first_name",
"last_name",
"address_line_1",
"address_line_2",
"city",
"postal_code",
"state",
"country",
"vat_id",
"tax_id",
"vat_validated",
"vat_validated_at"
],
"properties": {
"city": {
"type": "string",
"description": "City used on invoices."
},
"state": {
"type": [
"string",
"null"
],
"description": "State or region used on invoices, null when unset."
},
"tax_id": {
"type": [
"string",
"null"
],
"description": "Other tax identifier, null when unset."
},
"vat_id": {
"type": [
"string",
"null"
],
"description": "VAT registration identifier, null when unset."
},
"country": {
"type": "string",
"description": "Country code used for affiliate billing."
},
"last_name": {
"type": "string",
"description": "Invoice recipient family name."
},
"first_name": {
"type": "string",
"description": "Invoice recipient given name."
},
"postal_code": {
"type": [
"string",
"null"
],
"description": "Postal or ZIP code used on invoices, null when unset."
},
"company_name": {
"type": [
"string",
"null"
],
"description": "Company name printed on affiliate invoices, null when unset."
},
"vat_validated": {
"type": "boolean",
"description": "Whether VAT validation has succeeded for the invoice record."
},
"address_line_1": {
"type": "string",
"description": "Primary street address used on invoices."
},
"address_line_2": {
"type": [
"string",
"null"
],
"description": "Additional street or apartment details, null when unset."
},
"vat_validated_at": {
"type": [
"string",
"null"
],
"description": "VAT validation time in ISO 8601 UTC, null when no validation time is stored."
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Expanded invoice recipient details, null when no billing record exists."
},
"external_user_id": {
"type": [
"string",
"null"
],
"description": "Identifier supplied by your integration to link this record to your own system."
},
"total_commissions": {
"type": [
"number",
"string"
],
"description": "Commission total when supplied by the operation, interpreted in currency."
},
"partnership_status": {
"type": [
"string",
"null"
],
"description": "Membership state in the program, such as APPROVED or PENDING; null when no partnership is available."
},
"commissionOverrides": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"incentive_id",
"incentive_name",
"incentive_type",
"amount",
"is_percentage",
"apply_to",
"product_ids",
"approval_type",
"hold_period_days",
"incentive_length",
"length_value",
"variable_commission",
"variable_config"
],
"properties": {
"id": {
"type": "string",
"description": "Affiliate commission override record ID."
},
"amount": {
"type": "number",
"description": "Configured commission value. is_percentage identifies a rate versus a fixed amount."
},
"apply_to": {
"type": "string",
"description": "Which sales or products this override applies to."
},
"product_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Payment provider product IDs selected for this override."
},
"incentive_id": {
"type": "string",
"description": "Commission incentive ID referenced by this override."
},
"length_value": {
"type": [
"number",
"null"
],
"description": "Value associated with incentive_length, null when no duration value is stored."
},
"approval_type": {
"type": "string",
"description": "Configured approval mode for earnings created by this incentive."
},
"is_percentage": {
"type": "boolean",
"description": "Whether amount is a percentage rate rather than a fixed commission amount."
},
"incentive_name": {
"type": "string",
"description": "Display name of the referenced incentive."
},
"incentive_type": {
"type": "string",
"description": "Configured incentive category in lowercase."
},
"variable_config": {
"description": "Stored variable commission rules, interpreted only when variable_commission is true."
},
"hold_period_days": {
"type": [
"number",
"null"
],
"description": "Number of days the earning is held before becoming payable; null when no hold is stored."
},
"incentive_length": {
"type": "string",
"description": "Configured duration model for commission eligibility."
},
"variable_commission": {
"type": "boolean",
"description": "Whether commission calculation uses variable_config."
}
},
"additionalProperties": false
},
"description": "Custom commission incentive settings included when expand requests commissionOverrides."
},
"onboarding_completed": {
"type": "boolean",
"description": "Whether the affiliate has completed program onboarding."
}
},
"additionalProperties": false
},
"description": "Affiliate records with their program membership and optional expanded details."
},
"pagination": {
"type": "object",
"required": [
"total",
"count",
"offset",
"limit",
"has_more"
],
"properties": {
"count": {
"type": "number",
"description": "Number of items in current page"
},
"limit": {
"type": "number",
"description": "Items per page"
},
"total": {
"type": "number",
"description": "Total number of items"
},
"offset": {
"type": "number",
"description": "Current offset"
},
"has_more": {
"type": "boolean",
"description": "Whether more results are available"
},
"next_offset": {
"type": "number",
"description": "Offset for the next page if has_more is true"
}
},
"description": "Page position and matching-record totals. Follow next_offset while has_more is true.",
"additionalProperties": false
}
},
"additionalProperties": false
}