Agentrixo
Dashboard

Agentrixo API Reference

Integrate with the Agentrixo platform using our REST API. Authenticate with a JWT token or an API key generated from your dashboard.

108
Total endpoints
15
API sections
REST
JSON responses
Download Postman Collection

Import into Postman to test all endpoints instantly.

Authentication
# Option 1: Login to get a JWT token
curl -X POST https://api.agentrixo.com/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "you@agency.com", "password": "secret"}'

# Option 2: Use an API key (generate in Settings)
# API keys start with arx_live_

# Use either token or API key in requests
curl https://api.agentrixo.com/api/agency \
  -H "Authorization: Bearer <token-or-api-key>"
Error Responses

All errors return a JSON object with an error field and an appropriate HTTP status code.

// 400 Bad Request
{ "error": "Email is required" }

// 401 Unauthorized
{ "error": "Invalid token" }

// 404 Not Found
{ "error": "Resource not found" }

// 500 Internal Server Error
{ "error": "Something went wrong" }
Plan badges:Active Any active planGrowth Growth or higherPro Pro onlyAUTHRequires JWT token or API key

Authentication

/auth

Register your agency, log in to get a JWT token, and manage email verification and password resets. No authentication required for these endpoints. After login, include the token in all subsequent requests as: Authorization: Bearer <token>. Alternatively, generate an API key from your dashboard Settings page.

Log in with your email and password to receive a JWT token. Your email must be verified first (check your inbox after registration). The response includes your agency details and user info. Use the returned token in the Authorization header for all authenticated API calls.

Create a new agency account. Provide the agency name, your email, and a password (min 8 characters). A verification email is automatically sent to the provided email address. You must verify your email before you can log in.

Verify your email address. The verification token is sent to your email after registration. Click the link in the email or pass the token as a query parameter. Once verified, you can log in.

Resend the verification email if you didn't receive it or if it expired. Pass the email address you registered with. Only works for accounts that haven't been verified yet.

Request a password reset link. An email with a reset token will be sent to the provided address. The token expires after 1 hour. For security, the response is always the same whether the email exists or not.

Set a new password using the reset token received via email from the forgot-password endpoint. The token is a one-time-use value from the reset link. Password must be at least 8 characters.

Agency

/api/agency

Manage your agency details, company profile, branding settings, and agent roster. All endpoints require authentication.

Retrieve your agency's core details including the current subscription plan, plan status, enabled modules, and branding configuration. Use this to check your agency ID, slug, and what features are available on your plan.

Update your agency's display name. This name appears across the platform and in public-facing pages like tenant applications and property listings.

Get your company profile including business details, contact info, and address. The returned id is your agency's unique identifier (Company ID) which you can find in the dashboard Company Profile page.

Update your company profile. All fields are optional — only include the fields you want to change. The timezone field accepts IANA timezone strings like "Australia/Sydney".

Get your agency's branding settings. Returns your uploaded logo URL, brand colors (hex values), custom domain, and whether the domain's SSL certificate has been provisioned.

Update your brand colors. Pass hex color values (e.g., "#0F172A"). These colors are used in public-facing pages like tenant applications, offer forms, and property listings. Requires Pro plan.

Upload your agency logo as an image file. Send as multipart/form-data with the field name "logo". Supported formats: PNG, JPG, SVG, WebP. The logo appears on public-facing pages. Requires Pro plan.

Remove your agency's uploaded logo. Public-facing pages will show the default Agentrixo branding instead. Requires Pro plan.

Set a custom domain for your public-facing pages (e.g., "apply.myagency.com"). An SSL certificate is automatically provisioned via Let's Encrypt. You must configure a CNAME DNS record pointing to agentrixo.com before calling this endpoint. Requires Pro plan.

List all agents in your agency. Each agent has a unique ID you can use when creating sellers, buyers, properties, or assigning leads. The hasLogin field indicates if the agent has dashboard login credentials.

Create a new agent in your agency. Name is required. If you provide a password, the agent will be able to log in to the dashboard with the agent role. The returned agent ID can be used in other endpoints like creating properties or assigning leads.

Update an existing agent's details. The :id is the agent's UUID returned from GET /api/agency/agents or when creating the agent. All fields are optional — only include what you want to change. Setting a password enables dashboard login for the agent.

Permanently delete an agent and unlink them from all assigned records (properties, leads, sellers, etc.). The :id is the agent UUID from GET /api/agency/agents. This action cannot be undone.

Check which messaging channels your agency has configured. Returns true/false for each channel. Email requires a configured email provider (Resend), SMS requires an SMS provider (Twilio). Chat is always available.

Contacts

/api/contacts

Unified CRM view combining all your sellers, buyers, and tenants into a single list. Contacts are created through their respective endpoints (POST /api/sellers, POST /api/buyers, or POST /api/screening). Use this section for cross-type search, messaging, documents, and activity logs.

List all contacts across sellers, buyers, and tenants in a single unified list. Results include last message preview, unread message count, and are sorted with unread messages first. Use the type filter to show only one contact type. The search parameter matches against name, email, and phone.

Get detailed info for a single contact. The :type must be "seller", "buyer", or "tenant". The :id is the contact's UUID from the list endpoint. For sellers, includes linked properties. For buyers, includes linked offers. For tenants, includes screening application data.

Update a contact's fields. The :type is "seller", "buyer", or "tenant". The :id is the contact UUID. Updatable fields depend on type: sellers support name, email, phone, address, status, agentId, notes, tags. Buyers support budgetMin, budgetMax, financeType, preferences. Tenants support applicantName, applicantEmail, status.

Get the full message thread for a contact. Returns all messages (both sent by your agency and received from the contact) sorted chronologically. Unread messages from the contact are automatically marked as read when you call this endpoint. The :type and :id come from the contacts list.

Send a message to a contact via chat, email, or SMS. For chat: the message is stored and visible in the contact portal. For email: requires the contact to have an email address and your agency to have email configured. For SMS: requires a phone number and SMS provider. Use the html field for rich email content.

List all documents attached to a contact. Returns file metadata including name, size, type, URL, and upload date. The :type and :id come from the contacts list.

Upload a document to a contact's file. Send as multipart/form-data with the field name "file". Maximum file size is 25MB. Supported types include PDF, DOC, XLS, images, and more. The document is linked to the specific contact.

Delete a document from a contact. The :docId is the document UUID returned from the list documents endpoint. This permanently removes the file.

Sellers

/api/sellers

Create and manage seller contacts. Sellers can be linked to properties and have their own activity log for tracking interactions.

List all sellers in your agency. Use the search parameter to filter by name, email, or phone. Use the status parameter to filter by active or inactive sellers. Results are sorted by most recently created.

Get a seller's full details including all their linked properties. The :id is the seller UUID from the sellers list. The response includes the seller's contact info, status, assigned agent, and an array of properties they own.

Create a new seller contact. Only name is required. You can optionally assign an agentId (get agent IDs from GET /api/agency/agents). Tags is a JSON array of strings for categorization. The seller's ID is returned in the response for use in other endpoints.

Update a seller's details. The :id is the seller UUID. All fields are optional — only include what you want to change. Changing the status automatically creates an activity log entry. The agentId must be a valid agent UUID from GET /api/agency/agents.

Permanently delete a seller and all their activity history. The :id is the seller UUID. This does not delete properties linked to the seller, but unlinks them. This action cannot be undone.

Get the activity log for a seller. Returns all activities (notes, status changes, calls, emails) sorted by most recent first. The :id is the seller UUID.

Add a manual note or activity to a seller's log. The :id is the seller UUID. Use title for a short summary and description for longer details. Activities are timestamped automatically.

Buyers

/api/buyers

Create and manage buyer contacts. Buyers can be linked to property offers and track their budget and finance details.

List all buyers in your agency. Use search to filter by name, email, or phone. Use status to filter active/inactive. Results include budget range, finance status, and assigned agent.

Get a buyer's full details including all their linked offers. The :id is the buyer UUID from the buyers list. The response includes contact info, budget range, finance details, preferences, and an array of offers they've made on properties.

Create a new buyer contact. Only name is required. Budget fields accept numbers (e.g., 500000). Finance status options: "pre_approved", "pending", "not_started". You can assign an agentId from GET /api/agency/agents. The buyer ID is returned for use in creating offers.

Update a buyer's details. The :id is the buyer UUID. All fields are optional — only include what you want to change. You can update their budget, finance status, preferences, assigned agent, and tags.

Permanently delete a buyer. The :id is the buyer UUID. This also removes all offers the buyer has made on properties. This action cannot be undone.

Tenants

/api/tenants

Create and manage tenant contacts directly. Tenants can also be created automatically through the Screening module when applications are submitted via the public apply form.

List all tenants in your agency. Use search to filter by name, email, phone, or property address. Use status to filter by pending, in_review, approved, or rejected. Results include AI risk scores and employment details.

Get a tenant's full application details. The :id is the tenant UUID from the tenants list. Includes all submitted application data, AI risk score breakdown, employment info, references, and screening history.

Create a tenant application manually. Only applicantName is required. You can include employment and income details for AI scoring. The application is automatically scored by the AI risk engine after creation. Alternatively, tenants can submit applications through the public apply form.

Update a tenant's application details. The :id is the tenant UUID. You can update personal info, employment details, income, and notes. Use the Screening module endpoints (PUT /api/screening/:id/decision) to approve or reject applications.

Permanently delete a tenant application. The :id is the tenant UUID. This removes all application data and screening history. This action cannot be undone.

Properties & Offers

/api/properties

Create and manage property listings, upload images, and handle buyer offers. Properties can be linked to sellers and agents. Each property gets an auto-generated share token for the seller comparison page.

List all properties in your agency. Owners and admins see all properties. Agents only see properties assigned to them. Results include address, type, price, status, assigned agent, and linked seller info.

Create a new property listing. Only address is required. Set agentId to assign an agent (from GET /api/agency/agents) and sellerId to link a seller (from GET /api/sellers). Status defaults to "active". A unique shareToken is auto-generated for the seller comparison page. The propertyType field accepts: "house", "apartment", "townhouse", "land", "commercial", "other".

Update a property's details. The :id is the property UUID from the properties list. All fields are optional — only include what you want to change. You can reassign the agent, update price, change status, etc.

Permanently delete a property and all its offers and images. The :id is the property UUID. Any leases linked to this property are also deleted. This action cannot be undone.

List all buyer offers for a property, sorted by highest price first. The :id is the property UUID. Each offer includes buyer details, offer price, conditions, status, and timestamps.

Create a new offer on a property. The :id is the property UUID. You can optionally link to an existing buyer by passing their buyerId (from GET /api/buyers). If not linked, provide the buyer's name directly. The offer status starts as "pending".

Accept or reject a buyer offer. The :id is the offer UUID from the list offers endpoint. Accepting an offer does not automatically reject other offers — you must handle that separately.

Delete a buyer offer. The :id is the offer UUID from the list offers endpoint. This permanently removes the offer record.

List all images for a property in display order. The :id is the property UUID. Returns image URLs, dimensions, and sort order. Maximum 20 images per property.

Upload one or more images to a property. The :id is the property UUID. Send as multipart/form-data with the field name "images". Maximum 20 images per property, 10MB per image. Supported formats: JPG, PNG, WebP.

Reorder property images. The :id is the property UUID. Pass an array of image IDs (from the list images endpoint) in the desired display order.

Delete a specific image from a property. The :id is the property UUID and :imageId is the image UUID from the list images endpoint. The image file is permanently removed.

Lead Response Tracker

/api/modules/response-tracker

Track how fast your agents respond to new leads. Measure response times, monitor SLA compliance, and improve conversion rates. Leads are created automatically from inquiry form submissions or can be added manually.

Get response time statistics per agent including average response time, total leads, responded count, and conversion rate. Use the days parameter to set the time window (default 30 days).

List all leads with pagination. Returns lead details including contact info, assigned agent, response status, and source. Sorted by most recent first. Max 200 per page.

Get a single lead's full details. The :id is the lead UUID from the leads list. Includes contact info, assigned agent, message content, response timestamp, and source.

Create a lead manually. Leads are also created automatically when someone submits an inquiry form. The contactName is required. Set agentId to assign to a specific agent (from GET /api/agency/agents) — if not set, round-robin or manual assignment applies. Source helps track where the lead came from (e.g., "website", "referral", "walk-in").

Update a lead's fields. The :id is the lead UUID. You can reassign to a different agent, update contact info, or add a message. Use the respond endpoint below to mark a lead as responded (which records the response time).

Mark a lead as responded. The :id is the lead UUID. This records the response timestamp and calculates the response time from when the lead was created. Can only be called once per lead — subsequent calls have no effect.

Delete a lead permanently. The :id is the lead UUID. This removes the lead from all statistics and reports. This action cannot be undone.

Commission Calculator

/api/modules/commission

Configure commission split rules and track deal payouts. Supports three rule types: flat (fixed amount), percentage (of deal value), and tiered (graduated rates based on deal value brackets). Each deal can be linked to a specific agent and rule.

List all commission rules configured for your agency. Each rule defines how commissions are split between the agent and broker. One rule can be marked as default and is automatically applied to new deals.

Create a new commission rule. The ruleType determines the calculation: "flat" uses a fixed dollar amount, "percentage" applies a percentage of deal value, "tiered" uses graduated brackets. Split percentages should add up to 100. Set isDefault to true to auto-apply to new deals. You can optionally tie a rule to a specific agent by agentId (from GET /api/agency/agents).

Update an existing commission rule. The :id is the rule UUID from the rules list. All fields are optional. Changing a rule does not retroactively update existing commission records — only new deals are affected.

Delete a commission rule. The :id is the rule UUID. Existing commission records that used this rule are not deleted, but new deals can no longer use it. This action cannot be undone.

List all commission records (completed deals) for your agency. Each record shows the deal value, applied rule, agent/broker split amounts, and close date. Sorted by most recent. Use pagination to handle large datasets.

Get per-agent commission summary for a time period. Shows each agent's total deal value, total commission earned, number of deals, and average deal size. Use the days parameter to set the window (default 90 days).

Create a manual commission entry for a closed deal. Provide the dealValue (total sale price) and optionally a ruleId to apply a specific commission rule (from GET /api/modules/commission/rules). If no ruleId is given, the default rule is used. Set agentId to credit a specific agent.

Dashboard & Leaderboard

/api/modules

Get agent performance rankings and dashboard overview statistics. The leaderboard ranks agents by a composite score based on response time, conversion rate, and commission earned.

Get the agent leaderboard with composite performance scores. Each agent is ranked by a weighted score combining response time (30%), conversion rate (30%), and commission earned (40%). Use the days parameter to set the evaluation period. Requires Growth plan or higher.

Get a high-level dashboard overview with key metrics: total leads this month, average response time, total commissions earned, active properties count, pending screening applications, and more. Useful for building a quick dashboard view.

Tenant Screening

/api/screening

AI-powered tenant screening with automated risk scoring from 0 to 100. Applications can be submitted via the public apply form or created manually. The AI analyzes employment, income, rental history, and references to generate a risk score. Requires Pro plan.

Get screening statistics: total applications, counts by status (pending, in_review, approved, rejected), and average AI risk score. Useful for KPI dashboards and monitoring application volume.

List all screening applications for your agency. Returns applicant info, property, employment status, income, AI risk score, and current status. Sorted by most recent first.

Get full details of a screening application including all submitted data, AI risk score breakdown, employment verification, references, income details, and screening history. The :id is the application UUID from the list.

Create a screening application manually. The AI risk engine automatically scores the application based on employment status, income, rental history, and references. Alternatively, applicants can submit through the public apply form (GET /apply/:applyToken) which creates the application automatically.

Update fields on a screening application. The :id is the application UUID. You can update applicant details, employment info, and notes. To change the application status (approve/reject), use the decision endpoint below instead.

Set the decision on an application — approve, reject, or mark for review. The :id is the application UUID. Add optional notes explaining the decision. After approving, you can assign the tenant to a property using the assign endpoint below to create a lease.

Re-run the AI risk scoring engine on an application. The :id is the application UUID. Useful after updating applicant data (income, employment, references) to get a fresh score. The new score replaces the previous one.

Assign an approved tenant to a property and automatically create a lease. The :id is the application UUID (must have status "approved"). Get the propertyId from GET /api/properties. Lease start/end are dates (e.g., "2026-04-01"). Weekly rent and bond are numbers. The created lease appears in the Leases section.

Permanently delete a screening application and all its data. The :id is the application UUID. This removes the application from statistics. This action cannot be undone.

Referral Nurture

/api/referral

Automated follow-up campaigns that trigger after deals close. Keep in touch with past clients to generate referrals through scheduled email touchpoints. Requires Pro plan.

Get referral campaign statistics: total campaigns, active count, completed count, and conversion metrics. Useful for measuring the effectiveness of your post-deal follow-up strategy.

List all referral campaigns for your agency. Each campaign represents a past client you're nurturing for referrals. Returns contact info, deal value, campaign status, and next scheduled touch.

Get a single campaign with all its scheduled and completed touches (email follow-ups). The :id is the campaign UUID from the list. Includes full contact details, deal info, and the timeline of automated touchpoints.

Create a new referral nurture campaign for a past client. Provide the client's contact details and the deal value. The system automatically schedules email follow-ups at configured intervals (e.g., 30 days, 90 days, 6 months, 12 months after deal close).

Update a campaign's details. The :id is the campaign UUID. You can update contact info and deal value. Changing contact email updates where future follow-up emails are sent.

Delete a referral campaign and cancel all scheduled follow-ups. The :id is the campaign UUID. Past touches that have already been sent are not affected. This action cannot be undone.

Leases

/api/leases

Manage property leases. Leases are created when you assign an approved tenant to a property via the Screening module (POST /api/screening/:id/assign). You can then update lease terms, track bond status, and manage lease lifecycle.

List all leases in your agency. Returns tenant details, property info, weekly rent, bond amount, bond status, lease dates, and current status. Sorted by most recently created. Status can be: active, ending_soon, ended, or terminated.

List all leases for a specific property. The :propertyId is the property UUID from GET /api/properties. Returns the same lease data as the main list, filtered to one property. Useful for viewing lease history of a property.

Get full details of a single lease. The :id is the lease UUID from the leases list. Returns all lease terms, tenant info, bond tracking, and notes.

Update lease terms and status. The :id is the lease UUID. You can change rent, bond amount, bond status (held/partially_returned/returned), lease end date, status, and notes. When status is changed to "ended" or "terminated", the linked property is automatically set back to active.

Delete a lease permanently. The :id is the lease UUID. The linked property is automatically set back to active status. This action cannot be undone.

Inquiry Forms

/api/forms

Create embeddable inquiry forms for lead capture on your website. Each form has a unique token URL that can be shared or embedded. Submissions automatically create leads in the Response Tracker module.

List all inquiry forms configured for your agency. Each form has a unique token for its public URL, assignment rules, and customizable settings. The form token is used to construct the public inquiry URL.

Create a new inquiry form. The assignmentMode determines how submitted leads are assigned: "specific" assigns all leads to one agent (set assignedAgentId from GET /api/agency/agents), "round_robin" distributes evenly among selected agents (set roundRobinAgentIds array), "manual" leaves leads unassigned. The sourceLabel helps identify where inquiries came from. The redirectUrl is where users go after submitting.

Update form settings. The :id is the form UUID from the forms list. You can change the name, assignment mode, assigned agents, redirect URL, and notification settings.

Delete an inquiry form. The :id is the form UUID. The public form URL will stop working immediately. Existing leads created from this form are not deleted. This action cannot be undone.

Public Endpoints

No authentication required. These endpoints power the public-facing forms and pages — tenant applications, buyer offer forms, inquiry forms, property listings, and seller offer comparison. Use these to embed functionality into your own website.

Load the tenant application form for an agency. The :applyToken is your agency's apply token, found in the dashboard Screening page (copy the apply link). Returns agency branding (logo, colors) and a list of properties the applicant can select from.

Submit a tenant application through the public apply form. The :applyToken is the same token from the GET endpoint above. The application is automatically scored by the AI risk engine and appears in your dashboard Screening page.

Load the buyer offer form for a property. The :buyerToken is auto-generated per property and can be found in the property details on the dashboard. Returns property details and agency branding for the form.

Submit a buyer offer through the public offer form. The :buyerToken is the same token from the GET endpoint above. The offer appears in your dashboard under the property's offers tab.

Load an inquiry form by its token. The :token is the form token from GET /api/forms. Returns the form name, agency branding, and any custom fields configured for the form.

Submit an inquiry through a public form. The :token is the form token. The submission creates a lead in the Response Tracker and assigns it based on the form's assignment rules. An email notification is sent to the configured notification address.

Get all public property listings for an agency. The :slug is your agency's URL slug (found in GET /api/agency response). Returns active properties with images, pricing, and basic details. Used to power your public listings page.

Get a single property with full details and all images for public display. The :slug is your agency slug and :propertyId is the property UUID. Used for individual property detail pages on your website.

Submit an inquiry from a public property listing page. The :slug is your agency slug and :propertyId is the property UUID. Creates a lead in the Response Tracker linked to the specific property and assigned agent.

Load the seller offer comparison page. The :shareToken is auto-generated per property and included in the property data (from GET /api/properties). Share this URL with sellers so they can view all offers on their property side-by-side and compare prices, conditions, and buyer details.

Seller accepts a specific offer from the comparison page. The :shareToken is the same as above. The :offerId is the UUID of the offer the seller wants to accept, visible on the comparison page. This updates the offer status to "accepted".

© 2026 Agentrixo. API Documentation.

Base URL: https://api.agentrixo.com