Trestle · OAuth Scopes

Trestle OAuth Scopes

OAuth 2.0 searched

Trestle publishes 3 OAuth 2.0 scopes via the clientCredentials and authorizationCode flows. Scopes are the fine-grained permissions an application requests at authorization time to act against the Trestle API on a user’s behalf.

Tokens are issued from https://api.cotality.com/trestle/oidc/connect/token.

This index is generated from the provider’s OpenAPI security definitions (and, where available, its documented scope reference) and refreshes on every APIs.io network build. Browse every provider’s scopes at scopes.apis.io.

Real EstateUnited StatesMLSRESOProperty ListingsIDXPropTechData DistributionODataRETSListing Syndication
Scopes: 3 Flows: clientCredentials, authorizationCode Method: searched

OAuth endpoints

Authorization URL
https://trestle-auth-prd.kfusw1prd.solutions.corelogic.com/connect/authorize
Token URL
https://api.cotality.com/trestle/oidc/connect/token https://trestle-auth-prd.kfusw1prd.solutions.corelogic.com/connect/token
Flows
clientCredentialsauthorizationCode

Scopes (3)

ScopeDescriptionFlows
api RESO Web API (OData 4.0) access, and Participant Reporting for Web API feeds. The documentation states this "should always be api for WebAPI". clientCredentials
rets RETS 1.8 access, and Participant Reporting for RETS feeds. Requesting scope=api with RETS credentials is documented to fail with a 400. clientCredentials
offline_access Standard OIDC refresh-token scope, advertised in scopes_supported. Not referenced anywhere in the Trestle developer documentation; the documented client_credentials flow simply re-requests an 8-hour token. authorizationCode

Source

OAuth Scopes

trestle-scopes.yml Raw ↑
generated: '2026-07-26'
method: searched
source: >-
  https://api.cotality.com/trestle/oidc/.well-known/openid-configuration
  (scopes_supported, fetched anonymously, HTTP 200 — saved verbatim at
  well-known/trestle-openid-configuration.json) cross-checked against the
  documented scope values in
  https://trestle-documentation.corelogic.com/webapi.html,
  https://trestle-documentation.corelogic.com/rets.html and
  https://trestle-documentation.corelogic.com/participant-reporting-api.html
docs: https://trestle-documentation.corelogic.com/webapi.html
description: >-
  Trestle's OAuth2 scope surface is deliberately tiny: the scope selects a
  transport/product surface, not a permission set. Row-level authorization is
  not expressed in scopes at all — it comes from the per-MLS licence contracts
  attached to the credential (which MLSs, which feed type, IDX vs IDX Plus).
  There is no published scope-to-permission matrix because there are no
  fine-grained scopes.

schemes:
  - name: TrestleIdentityServer
    type: oauth2
    source: well-known/trestle-openid-configuration.json
    flows:
      - flow: clientCredentials
        tokenUrl: https://api.cotality.com/trestle/oidc/connect/token
      - flow: authorizationCode
        authorizationUrl: https://trestle-auth-prd.kfusw1prd.solutions.corelogic.com/connect/authorize
        tokenUrl: https://trestle-auth-prd.kfusw1prd.solutions.corelogic.com/connect/token
        note: >-
          Advertised by discovery (grant_types_supported includes
          authorization_code, implicit, refresh_token and device_code) but the
          documented developer flow is client_credentials only.

scopes:
  - scope: api
    description: >-
      RESO Web API (OData 4.0) access, and Participant Reporting for Web API
      feeds. The documentation states this "should always be api for WebAPI".
    flows: [clientCredentials]
    sources:
      - well-known/trestle-openid-configuration.json
      - https://trestle-documentation.corelogic.com/webapi.html
  - scope: rets
    description: >-
      RETS 1.8 access, and Participant Reporting for RETS feeds. Requesting
      scope=api with RETS credentials is documented to fail with a 400.
    flows: [clientCredentials]
    sources:
      - well-known/trestle-openid-configuration.json
      - https://trestle-documentation.corelogic.com/rets.html
  - scope: offline_access
    description: >-
      Standard OIDC refresh-token scope, advertised in scopes_supported. Not
      referenced anywhere in the Trestle developer documentation; the documented
      client_credentials flow simply re-requests an 8-hour token.
    flows: [authorizationCode]
    sources: [well-known/trestle-openid-configuration.json]

authorization_beyond_scopes:
  model: contract-scoped credentials
  detail: >-
    Each credential is issued per product / feed-type pair and carries the set
    of multiple listing organizations that pair is licensed for. An observed
    example JWT published in Trestle's own Postman collection carries
    client_mlo_id_list, client_business_conn_id_list, client_product_id,
    client_product_datafeed_transport and client_role claims — i.e. entitlement
    is expressed as claims on the token, not as OAuth scopes.
  evidence: postman/trestle-webapi.postman_collection.json
  feed_types_documented: [IDX, IDX Plus]