Skip to main content

Apply Link

The Online Leasing Link API provides a way to redirect users to a Funnel online leasing application with pre-filled data based on provided parameters. This endpoint allows for seamless integration of the online leasing process into your website or application. The endpoint redirects to a Funnel online leasing application where the data will be pre-filled based on the provided parameters (property, unit, move in date, and lease term).

GET
/api/v2/onlineleasing-link/

Request

Example requestGET
curl -X GET \
    "https://api.funnelleasing.com/api/v2/onlineleasing-link/"

Response

Example responseJSON200 · application/json
302 Found
Location: https://apply.funnelleasing.com/4821?v=eyJhbGnUzI1NiJ9...
⚠️

No API key required

Unlike other Customer API endpoints, Apply Link does not require an Authorization header or API key — do not send one. It's designed to be linked directly from a marketing site, so the request is identified by the communityID (or myOlePropertyId / companyID) parameters alone, not by an authenticated company. One consequence: a communityID lookup is not scoped to any company.
No Authorization header neededJSON200 · application/json
curl -i "https://api.funnelleasing.com/api/v2/onlineleasing-link/?communityID=78349"
📝
Parameter Requirements: You must provide either communityID OR myOlePropertyId (not both). When using myOlePropertyId, you must also provide companyID.

Examples

The following examples demonstrate different ways to use the Online Leasing Link API, from minimal requests to full-featured integrations.

Minimal Examples

Using communityID (Preferred)

This example shows the minimal required parameters using the recommended method for identifying properties. The communityID is a Funnel-assigned identifier that provides the most reliable way to reference a property.

Minimal request with communityIDHTTP
GET /api/v2/onlineleasing-link/?communityID=78349

Using myOlePropertyId (Alternative)

This example shows the minimal required parameters using your internal property ID from your PMS system. This method requires proper integration mapping between your system and Funnel.

Minimal request with myOlePropertyIdHTTP
GET /api/v2/onlineleasing-link/?myOlePropertyId=myComm34&companyID=456

Full Examples (All Parameters)

Using communityID

This example includes all optional parameters to pre-fill the leasing application with property, unit, lease term, and move-in date information. All optional parameters are included to provide the most complete pre-filled experience.

Full request with all parameters (communityID)HTTP
GET /api/v2/onlineleasing-link/?communityID=78349&sLeaseTerm=12&MoveInDate=12/30/2022&UnitID=789

Using myOlePropertyId

This example includes all optional parameters using your internal property ID instead of communityID. This demonstrates how to use the alternative property identifier method with all available optional parameters.

Full request with all parameters (myOlePropertyId)HTTP
GET /api/v2/onlineleasing-link/?myOlePropertyId=123&companyID=456&sLeaseTerm=12&MoveInDate=12/30/2022&UnitID=789

Partial Optional Parameters

You can include any combination of optional parameters. This example shows a request with lease term and move-in date, but without a specific unit. This flexibility allows you to pre-fill only the information that's relevant to your use case.

Request with some optional parametersHTTP
GET /api/v2/onlineleasing-link/?communityID=78349&sLeaseTerm=24&MoveInDate=06/15/2024

Error Responses

The API may return the following error responses when invalid parameters are provided or when requested resources cannot be found. Every error body has the shape { "error_type": "...", "errors": { "error": "..." } } — note it's errors.error, not a top-level message field.

Invalid Parameter Combination (400)

When both myOlePropertyId and communityID are provided, a 400 error response will be returned.

Error responseJSON400 · application/json
{
  "error_type": "Invalid",
  "errors": {
    "error": "Invalid parameter combination: please provide 'myOlePropertyId' OR 'communityID'"
  }
}

Invalid Lease Term Format (400)

When sLeaseTerm is provided but doesn't parse as an integer, a 400 error response will be returned. The message includes the exact value you sent.

Error responseJSON400 · application/json
{
  "error_type": "Invalid",
  "errors": {
    "error": "Invalid lease term format: 'abc' is not a valid integer."
  }
}

Missing Parameter (400)

When neither myOlePropertyId nor communityID is provided, a 400 error response will be returned.

Error responseJSON400 · application/json
{
  "error_type": "Invalid",
  "errors": {
    "error": "Missing parameter: please provide 'myOlePropertyId' OR 'communityID'"
  }
}

Incorrect Move In Date Format (400)

When MoveInDate doesn't match MM/DD/YYYY format, a 400 error response will be returned. Note error_type is DoesNotExist here, not Invalid — that's how this ships in Chuck today, not a documentation typo, so don't branch on error_type alone to distinguish 400s from 404s on this endpoint.

Error responseJSON400 · application/json
{
  "error_type": "DoesNotExist",
  "errors": {
    "error": "Incorrect move in date format. Use MM/DD/YYYY."
  }
}

Invalid Integration Identifier (404)

When myOlePropertyId (with companyID) doesn't match any integration — including when companyID is omitted entirely — a 404 error response will be returned.

Error responseJSON404 · application/json
{
  "error_type": "DoesNotExist",
  "errors": {
    "error": "Invalid integration identifier"
  }
}

Community Does Not Exist (404)

When communityID doesn't match any community, a 404 error response will be returned.

Error responseJSON404 · application/json
{
  "error_type": "DoesNotExist",
  "errors": {
    "error": "Community does not exist"
  }
}

Lease Settings Do Not Exist (404)

When the resolved community has no active lease settings, a 404 error response will be returned.

Error responseJSON404 · application/json
{
  "error_type": "DoesNotExist",
  "errors": {
    "error": "Lease settings do not exist"
  }
}
ℹ️

An unmatched UnitID is not an error

There is no "Unit Does Not Exist" error on this endpoint. If UnitID doesn't match any unit (or matches more than one by unit number), Funnel silently ignores it and redirects successfully with no unit pre-selected — it never returns a 404 for this specific case.