Live

SiteMinder logo

SiteMinder API and MCP server

siteminder.com

SiteMinder has APIs, but the ones that change rates, availability and restrictions or deliver reservations are for technology partners who sign a partnership agreement and certify each API (checked 11 Oct 2026). Cotlet is a hosted MCP server and REST API for SiteMinder with 12 endpoints (8 read, 4 write): your AI agent signs in as you and does the work.

Category
Travel
Endpoints
12 8 read, 4 write
Updated
How Cotlet connects your agent to SiteMinder
  1. Your agent

    Claude Code, Codex, Cursor or a script

  2. Cotlet

    MCP server and REST API · 12 endpoints

    cotlet.dev/mcp/v1

  3. SiteMinder logo

    SiteMinder

    Signed in as you on siteminder.com

You sign in once. We never store your password.

Official API

Does SiteMinder have an official API?

SiteMinder has APIs, but the ones that change rates, availability and restrictions or deliver reservations are for technology partners who sign a partnership agreement and certify each API (checked 11 Oct 2026). A hotel can generate its own key only for the read-only Direct Booking API.

What SiteMinder's own tools do compared with Cotlet
Task SiteMinder official Cotlet
Update rates for a date range Partly Certified PMS or RMS partners only (pmsXchange, SMX) Yes
Set availability per room type Partly Certified partners only Yes
Stop sell, min stay, CTA and CTD Partly Certified partners only Yes
Read rates and availability Partly Direct Booking API, key from the property, read only, for booking flows Yes
Search and read reservations Partly Delivered to a certified PMS, not to your own script Yes
Booking performance by channel No Insights report in the platform only Yes
Pace report against last year No Insights report in the platform only Yes
Rate parity across OTAs No Platform report, SiteMinder Plus only Yes

Sources: SiteMinder Developer Guide FAQ · SiteMinder Help: Direct Booking API · SiteMinder Help: update rates, availability and restrictions in the inventory grid · SiteMinder Help: view your reservations · SiteMinder Help: dynamic pricing with Dynamic Revenue Plus · SiteMinder Help: Booking performance report

Common use cases

What can an AI agent do in SiteMinder?

Cotlet is best for independent hotels and small groups without a certified PMS or RMS who want their AI agent to change rates, restrictions and availability and read reservations and reports without running or fixing a server.

  • Update rates for busy dates

    The city marathon is on 6 and 7 December. Raise every base room rate by 25% for 5 to 7 December on all channels, but keep the Standard Double at no more than 210. Your agent calls list_room_rates, get_inventory and update_rates.

  • Set minimum stay and closed to arrival for peak dates

    For Christmas, close all room rates to arrivals on 24 and 25 December and set a 3-night minimum stay from 23 to 27 December on every channel that supports it. Your agent calls list_channels, list_room_rates, update_restrictions and close_dates.

  • Fill gap nights between bookings Runs: Daily

    Every morning, find single and two-night gaps between bookings in the next 60 days that our minimum stay blocks, and lower the minimum stay on those nights so they can sell. Your agent calls list_room_rates, get_inventory, list_channels and update_restrictions.

  • Daily arrivals list from SiteMinder Runs: Daily

    List every reservation checking in tomorrow, with channel, room and total, as a table. Your agent calls list_reservations and get_reservation.

  • Weekly channel performance and pace report Runs: Weekly

    Every Monday, compare last week's bookings by channel with the week before, and tell me how the next 30 days pace against last year. Your agent calls get_booking_performance, get_pace_report and get_rate_parity.

  • Close rooms and dates when rooms go out of order

    We have a burst pipe in rooms 201 to 204: drop Standard Double availability by 4 for the next two weeks. Your agent calls get_inventory, update_availability and close_dates.

  • Check rate parity across OTAs Runs: Weekly

    Check rate parity for the next 30 days and tell me where Expedia undercuts our direct rate. Your agent calls get_rate_parity.

Endpoints

What is the SiteMinder API?

Cotlet's SiteMinder API exposes 12 endpoints for your own SiteMinder account: list room rates, list channels, get inventory, list reservations, get reservation, get booking performance, get pace report, get rate parity, update rates, update availability, update restrictions and close dates. The list_room_rates endpoint returns room types and their room rates, with derived rates and the channels each one is mapped to. Each endpoint takes simple JSON inputs like from, to or room_rate_ids and works both as an MCP tool for agents and as a REST call for scripts.

All endpoints · 12 total

missing one? request an endpoint

  • POST

    list_room_rates

    read

    Returns every room type with its room rates. A derived rate shows the base rate it follows; SiteMinder does not let you set derived rates by hand. Use the IDs from here in get_inventory and the update tools.

    POST /api/v1/siteminder/list_room_rates

    Input

    No parameters.

    Example response

    {
      "room_types": [
        {
          "room_type_id": "rt_1021",
          "name": "Standard Double",
          "room_rates": [
            {
              "room_rate_id": "rr_48210",
              "name": "Standard Double Flexible",
              "type": "base",
              "channels": [
                "Booking.com",
                "Expedia",
                "Direct Booking"
              ]
            }
          ]
        },
        {
          "room_type_id": "rt_1022",
          "name": "Deluxe King",
          "room_rates": [
            {
              "room_rate_id": "rr_48213",
              "name": "Deluxe King Flexible",
              "type": "base",
              "channels": [
                "Booking.com",
                "Expedia",
                "Agoda",
                "Direct Booking"
              ]
            },
            {
              "room_rate_id": "rr_48214",
              "name": "Deluxe King Non-refundable",
              "type": "derived",
              "derived_from": "rr_48213",
              "channels": [
                "Booking.com",
                "Expedia"
              ]
            }
          ]
        }
      ]
    }
  • POST

    list_channels

    read

    Returns the channels connected to the property, including Direct Booking, with their status. For each channel rate it lists the data SiteMinder can send: rates, availability and the restrictions. Not every channel rate supports every type, so check here before a restriction change.

    POST /api/v1/siteminder/list_channels

    Input

    No parameters.

    Example response

    {
      "channels": [
        {
          "channel": "Booking.com",
          "status": "enabled",
          "supports": [
            "rates",
            "availability",
            "stop_sell",
            "min_los",
            "max_los",
            "cta",
            "ctd"
          ]
        },
        {
          "channel": "Agoda",
          "status": "enabled",
          "supports": [
            "rates",
            "availability",
            "stop_sell",
            "min_los"
          ]
        },
        {
          "channel": "Direct Booking",
          "status": "enabled",
          "supports": [
            "rates",
            "availability",
            "stop_sell",
            "min_los",
            "max_los",
            "cta",
            "ctd"
          ]
        }
      ]
    }
  • POST

    get_inventory

    read

    Returns what the inventory grid shows, one row per date: rate, availability and restrictions for each room rate. Pass channel to see the values sent to one channel instead. SiteMinder shows only today and future dates here. A dash in the grid, returned as null, means the channel rate does not support that data.

    POST /api/v1/siteminder/get_inventory

    Input

    Input: get_inventory
    Parameter Type Description
    from required date First date of the range. Today or later.
    to required date Last date of the range.
    room_type_ids string[] Only these room types. Default: all.
    channel string Show channel rates for one channel. Default: room rates.

    Example response

    {
      "room_rate_id": "rr_48213",
      "channel": null,
      "dates": [
        {
          "date": "2026-12-04",
          "rate": "159.00",
          "availability": 4,
          "stop_sell": false,
          "min_los": 1,
          "cta": false,
          "ctd": false
        },
        {
          "date": "2026-12-05",
          "rate": "159.00",
          "availability": 2,
          "stop_sell": false,
          "min_los": 2,
          "cta": false,
          "ctd": false
        }
      ]
    }
  • POST

    list_reservations

    read

    Returns reservations that match your filters, with booking reference, channel, status, stay dates, room and total. SiteMinder searches only reservations created or checked out within the last 548 days. Guest email, phone and card details are not returned. Pass booking_reference to get_reservation for the full record.

    POST /api/v1/siteminder/list_reservations

    Input

    Input: list_reservations
    Parameter Type Description
    date_type enum booked_on, check_in, check_out or cancelled_on. Default: booked_on.
    from date Start of the date range.
    to date End of the date range.
    status enum booked, modified or cancelled. Default: all.
    channel string Only reservations from this channel.
    guest_last_name string Guest last name.
    pms_delivery_status enum pending, delivered or failed. Default: all.
    limit integer Page size. Default: 50.
    cursor string Next page cursor from the previous call.

    Example response

    {
      "reservations": [
        {
          "booking_reference": "4830217655",
          "channel": "Booking.com",
          "status": "booked",
          "check_in": "2026-10-12",
          "check_out": "2026-10-14",
          "nights": 2,
          "room_type": "Standard Double",
          "guests": 2,
          "total": {
            "amount": "318.00",
            "currency": "EUR"
          },
          "guest_last_name": "Rossi",
          "pms_delivery": "delivered"
        },
        {
          "booking_reference": "BBN-BB0000412907",
          "channel": "Direct Booking",
          "status": "booked",
          "check_in": "2026-10-12",
          "check_out": "2026-10-13",
          "nights": 1,
          "room_type": "Deluxe King",
          "guests": 1,
          "total": {
            "amount": "172.00",
            "currency": "EUR"
          },
          "guest_last_name": "Lindqvist",
          "pms_delivery": "pending"
        }
      ],
      "next_cursor": null
    }
  • POST

    get_reservation

    read

    Returns one reservation by booking reference: status and the time it last changed, stay dates and length, estimated arrival time, room and number of guests, rate plan, total rate and the channel, with the secondary source such as Hotels.com via Expedia where SiteMinder shows one. SiteMinder shows guest email, phone and card details only on a trusted device, so they are not returned.

    POST /api/v1/siteminder/get_reservation

    Input

    Input: get_reservation
    Parameter Type Description
    booking_reference required string Booking reference from list_reservations.

    Example response

    {
      "booking_reference": "4830217655",
      "channel": "Booking.com",
      "status": "booked",
      "status_changed_at": "2026-10-02T14:20:00Z",
      "check_in": "2026-10-12",
      "check_out": "2026-10-14",
      "nights": 2,
      "estimated_arrival": "15:00",
      "rooms": [
        {
          "room_type": "Standard Double",
          "room_rate": "Standard Double Flexible",
          "guests": 2
        }
      ],
      "total": {
        "amount": "318.00",
        "currency": "EUR"
      },
      "pms_delivery": "delivered"
    }
  • POST

    get_booking_performance

    read

    Returns the Insights > Booking performance numbers for a period: room revenue, total revenue, reservations after cancellations, room nights, average lead time, ADR, average length of stay and cancelled reservations, plus the breakdown you ask for. Revenue in other currencies is converted to your default currency at xe.com rates. With date_basis stay_date, total revenue is not returned and room nights count only the chosen period.

    POST /api/v1/siteminder/get_booking_performance

    Input

    Input: get_booking_performance
    Parameter Type Description
    from required date First date of the range. Today or later.
    to required date Last date of the range.
    date_basis enum booked_on or stay_date. Default: booked_on.
    breakdown enum channel_mix, source_market, room_types or rate_plans. Default: channel_mix.

    Example response

    {
      "from": "2026-09-01",
      "to": "2026-09-30",
      "date_basis": "booked_on",
      "currency": "EUR",
      "room_revenue": "42500.00",
      "total_revenue": "45000.00",
      "reservations": 212,
      "cancelled_reservations": 18,
      "room_nights": 500,
      "avg_lead_time_days": 21.4,
      "adr": "90.00",
      "alos": 2.36,
      "channel_mix": [
        {
          "channel": "Booking.com",
          "reservations": 95,
          "room_nights": 225,
          "room_revenue": "19500.00"
        },
        {
          "channel": "Expedia",
          "reservations": 55,
          "room_nights": 135,
          "room_revenue": "11500.00"
        },
        {
          "channel": "Direct Booking",
          "reservations": 45,
          "room_nights": 105,
          "room_revenue": "9000.00"
        },
        {
          "channel": "Agoda",
          "reservations": 17,
          "room_nights": 35,
          "room_revenue": "2500.00"
        }
      ]
    }
  • POST

    get_pace_report

    read

    Returns the Insights > Pace numbers: reservations, reservation revenue (nightly room rates, without extras and card surcharges), room nights and ADR for the period and for last year, with the change in percent. The default period is the next 30 days; SiteMinder shows one year of forward-looking pace data. Source markets are included.

    POST /api/v1/siteminder/get_pace_report

    Input

    Input: get_pace_report
    Parameter Type Description
    from date Start of the period. Default: today.
    to date End of the period. Default: 30 days from today.

    Example response

    {
      "from": "2026-10-12",
      "to": "2026-11-10",
      "currency": "EUR",
      "this_year": {
        "reservations": 148,
        "revenue": "28400.00",
        "room_nights": 341,
        "adr": "83.28"
      },
      "last_year": {
        "reservations": 131,
        "revenue": "25100.00",
        "room_nights": 302,
        "adr": "83.11"
      },
      "change_percent": {
        "reservations": 13,
        "revenue": 13.1,
        "room_nights": 12.9,
        "adr": 0.2
      },
      "source_markets": [
        {
          "country": "DE",
          "room_nights": 96
        },
        {
          "country": "GB",
          "room_nights": 74
        }
      ]
    }
  • POST

    get_rate_parity

    read

    Returns the Insights > Rate parity grid: your rate on each of the five channels for each stay date, with a flag for channels below your Direct Booking rate. A cell can hold MLOS (a minimum stay applies), SOLD (no availability) or N/A instead of a rate. Dates reach 30 days ahead, or 90 with Dynamic Revenue Plus. A refresh times out after about two minutes; call again for dates that did not load. Without SiteMinder Plus the call fails with a plan error.

    POST /api/v1/siteminder/get_rate_parity

    Input

    Input: get_rate_parity
    Parameter Type Description
    from required date First date of the range. Today or later.
    to required date Last date of the range.
    nights integer 1 to 7. Default: 1.
    guests integer 1 or 2. Default: 2.
    include_taxes boolean Fully inclusive rates instead of base rates. Default: false.

    Example response

    {
      "nights": 1,
      "guests": 2,
      "include_taxes": false,
      "currency": "EUR",
      "dates": [
        {
          "date": "2026-10-17",
          "rates": {
            "Agoda": "142.00",
            "Booking.com": "142.00",
            "Expedia": "138.00",
            "HRS": "142.00",
            "Direct Booking": "142.00"
          },
          "below_direct": [
            "Expedia"
          ]
        },
        {
          "date": "2026-10-18",
          "rates": {
            "Agoda": "149.00",
            "Booking.com": "149.00",
            "Expedia": "MLOS",
            "HRS": "149.00",
            "Direct Booking": "149.00"
          },
          "below_direct": []
        }
      ]
    }
  • POST

    update_rates

    write

    Sets one nightly rate for the room rates you list, on all mapped channels or only the channels you name. Derived rates cannot be set; they follow their base rate by their own rules. Channels receive updates only inside their maximum update period. If a two-way PMS, RMS or CRS sends rates to SiteMinder, it overwrites this change. Large updates can take a few minutes. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/siteminder/update_rates

    Input

    Input: update_rates
    Parameter Type Description
    room_rate_ids required string[] Room rate IDs from list_room_rates.
    from required date First date of the range. Today or later.
    to required date Last date of the range.
    rate required string New nightly rate, as a decimal in the property currency.
    channels string[] Only these channels. Default: the room rate for all mapped channels.
    days_of_week string[] Only these weekdays (mon, tue, wed, thu, fri, sat, sun). Default: all days.

    Example response

    {
      "status": "updated",
      "room_rates": 1,
      "dates": 8,
      "channels": [
        "Booking.com",
        "Expedia",
        "Agoda",
        "Direct Booking"
      ],
      "derived_rates_updated": 1,
      "skipped": []
    }
  • POST

    update_availability

    write

    Sets rooms available per night for a room type. SiteMinder manages availability at room type level, so it applies to every channel; to limit one channel, use close_dates or update_restrictions. Availability 0 closes the whole room type and all its rates. If a two-way PMS, RMS or CRS sends availability to SiteMinder, it overwrites this change. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/siteminder/update_availability

    Input

    Input: update_availability
    Parameter Type Description
    room_type_ids required string[] Room type IDs from list_room_rates.
    from required date First date of the range. Today or later.
    to required date Last date of the range.
    rooms required integer Rooms available per night.
    days_of_week string[] Only these weekdays (mon, tue, wed, thu, fri, sat, sun). Default: all days.

    Example response

    {
      "status": "updated",
      "room_types": 1,
      "dates": 14,
      "rooms": 6,
      "channels": "all"
    }
  • POST

    update_restrictions

    write

    Sets the restrictions you pass for the room rates and dates you give, on all mapped channels or only the channels you name. Set stop_sell, cta or ctd to false to remove them. Not every channel rate supports every restriction; unsupported ones are listed under skipped. A connected two-way PMS, RMS or CRS overwrites restrictions set in SiteMinder. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/siteminder/update_restrictions

    Input

    Input: update_restrictions
    Parameter Type Description
    room_rate_ids required string[] Room rate IDs from list_room_rates.
    from required date First date of the range. Today or later.
    to required date Last date of the range.
    restrictions required object Any of stop_sell, cta, ctd (boolean), min_los, max_los (integer).
    channels string[] Only these channels. Default: all mapped channels.
    days_of_week string[] Only these weekdays (mon, tue, wed, thu, fri, sat, sun). Default: all days.

    Example response

    {
      "status": "updated",
      "room_rates": 2,
      "dates": 3,
      "channels": [
        "Booking.com",
        "Expedia",
        "Direct Booking"
      ],
      "skipped": [
        {
          "channel": "Agoda",
          "reason": "CTA not supported by this channel rate"
        }
      ]
    }
  • POST

    close_dates

    write

    Applies a stop sell for the dates you give: to every room rate, to the room rates you pick (all their channel rates close), or to one channel. Other rates and channels stay open. To reopen, call update_restrictions with stop_sell set to false. A connected two-way PMS, RMS or CRS overwrites stop sells set in SiteMinder. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/siteminder/close_dates

    Input

    Input: close_dates
    Parameter Type Description
    from required date First date of the range. Today or later.
    to required date Last date of the range.
    room_rate_ids string[] Only these room rates. Default: all.
    channels string[] Close only these channels. Default: all mapped channels.

    Example response

    {
      "status": "closed",
      "room_rates": 2,
      "dates": 8,
      "channels": [
        "Booking.com",
        "Expedia",
        "Direct Booking"
      ]
    }

Setup

How do I connect SiteMinder to Claude Code, Codex or Cursor?

Connecting SiteMinder takes three steps: request access, sign in to SiteMinder once, then add one MCP server or call the REST API with the same key.

Connect SiteMinder over MCP

  1. 1

    Create an account

    Sign up and add SiteMinder in the console. Your API key is there too.

  2. 2

    Sign in to SiteMinder once

    Open the connect page from the console and sign in to SiteMinder the way you always do. We keep the session, never your password, and you can revoke it anytime.

  3. 3

    Add Cotlet to your agent

    Claude Code
    claude mcp add --transport http cotlet \
      https://cotlet.dev/mcp/v1 \
      --header "Authorization: Bearer $COTLET_API_KEY"
    Cursor
    {
      "mcpServers": {
        "cotlet": {
          "url": "https://cotlet.dev/mcp/v1",
          "headers": {
            "Authorization": "Bearer ${COTLET_API_KEY}"
          }
        }
      }
    }
    Codex
    # ~/.codex/config.toml
    [mcp_servers.cotlet]
    url = "https://cotlet.dev/mcp/v1"
    bearer_token_env_var = "COTLET_API_KEY"

    Paste the snippet for your client. The same server and key serve every app you connect, so you do this once.

  4. 4

    Ask your agent

    Prompt

    The city marathon is on 6 and 7 December. Raise every base room rate by 25% for 5 to 7 December on all channels, but keep the Standard Double at no more than 210.

    Ask in plain words. Your agent finds the SiteMinder tools on the server and calls them for you; anything that reaches other people waits for your OK unless you switch that off for a tool.

Call SiteMinder over REST

  1. 1

    Export your API key

    Shell

    export COTLET_API_KEY="cotlet_..."

    Your scripts use the same API key as your agent. Keep it in an environment variable, never in your code.

  2. 2

    Call a tool

    curl

    curl https://cotlet.dev/api/v1/siteminder/update_restrictions \
      -H "Authorization: Bearer $COTLET_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"room_rate_ids":["rr_48213","rr_48214"],"from":"2026-12-24","to":"2026-12-26","restrictions":{"cta":true,"min_los":3}}'

    Every tool is a POST endpoint at /api/v1/siteminder/{tool}. Send its parameters as JSON, exactly as listed in the endpoints above.

  3. 3

    Read the result

    Example response · update_restrictions

    {
      "status": "updated",
      "room_rates": 2,
      "dates": 3,
      "channels": [
        "Booking.com",
        "Expedia",
        "Direct Booking"
      ],
      "skipped": [
        {
          "channel": "Agoda",
          "reason": "CTA not supported by this channel rate"
        }
      ]
    }

    You get plain JSON back, ready for your script. A failed call costs nothing.

Why Cotlet

Why use Cotlet for SiteMinder? Hosted, safe and kept working.

  • Built for agents

    • One MCP server for every app you connect.
    • The same tools as a REST API for scripts and cron jobs.
    • Works with Claude Code, Codex and Cursor.
  • Your login stays yours

    • You sign in to SiteMinder yourself. We keep only the session, encrypted with AES-256.
    • The model never sees a login.
    • No stored passwords, no CAPTCHA solving, no MFA bypass.
  • You stay in control

    • Pick read only, or read and write.
    • Anything that reaches other people waits for your OK, unless you switch it off per tool.
    • Revoke access in one click.
  • Kept working for you

    • We test every integration daily.
    • When SiteMinder changes, the tool pauses until we fix it.
    • Failed calls cost nothing.

Alternatives

Is there a SiteMinder MCP server on GitHub?

SiteMinder publishes no MCP server (checked 11 Oct 2026). A hotel without a certified PMS or RMS changes rates in the inventory grid or Bulk update, reads the Reservations tab and Insights reports, and downloads reservations as CSV by hand.

Cotlet compared with a SiteMinder by hand
SiteMinder by hand Cotlet
Setup None, you already have the login Request access, sign in to SiteMinder once in your browser, add one MCP server or API key
Rate and restriction changes Bulk update form: one value, one date range, the room rates and channels you tick Your agent applies a rule across dates, room rates and channels; you confirm each change
Reservations and reports Filter the Reservations tab, download CSV, open Insights Your agent reads reservations, booking performance, pace and parity as data
When SiteMinder changes You learn the new screens Our team tests it daily and fixes it for you; failed calls are free
Your SiteMinder session Your browser, signed in by you with MFA; when it expires you sign in again Encrypted in an EU vault, limited to the actions you allow, revoked in one click; if it expires, your agent gets a link to sign in again
Where it runs Your browser, when you are at the desk Hosted: Claude Code, Codex, Cursor, n8n and scripts, also on a schedule
Price Free, paid for with your time Free 7-day trial with 5,000 credits, then credits per call

Which one fits you

Pick Cotlet if

  • you are not a developer, or you do not want to maintain a server
  • you need it to keep working when SiteMinder changes, without checking it yourself
  • your agent or a script should run it on a schedule, also while your computer is off

Pick an open-source server if

  • you are comfortable installing, updating and fixing it yourself
  • you want the session to stay on your own computer
  • you only need it now and then, from one MCP client

For AI agents

Cotlet for SiteMinder in plain text The facts on this page in one block: status, endpoints, access, pricing, contact.

Endpoint health

verified 2h ago

  • list_room_rates passing
  • list_channels passing
  • get_inventory passing
  • list_reservations passing
  • get_reservation passing

+ 7 more endpoints

12/12 passing latest check self-healing

siteminder.txt

SiteMinder has APIs, but the ones that change rates, availability and restrictions or deliver reservations are for technology partners who sign a partnership agreement and certify each API (checked 11 Oct 2026). A hotel can generate its own key only for the read-only Direct Booking API.
Cotlet provides a hosted MCP server and REST API for SiteMinder: 12 tools (8 read, 4 write).
Access       Request access at https://cotlet.dev/app/signup?app=siteminder; we email the API key.

MCP server   https://cotlet.dev/mcp/v1
REST base    https://cotlet.dev/api/v1/siteminder
Auth         Authorization: Bearer <COTLET_API_KEY>. Listing endpoints and schemas needs no key; calling an endpoint needs one.
Tools        list_room_rates, list_channels, get_inventory, list_reservations, get_reservation, get_booking_performance, get_pace_report, get_rate_parity, update_rates, update_availability, update_restrictions, close_dates
Confirm      update_rates, update_availability, update_restrictions, close_dates (by default the user approves each call; the user can switch this off per tool, e.g. for scheduled automations)
Markdown     https://cotlet.dev/integrations/siteminder-api-mcp-server.md

How access works:
1. The user requests access at https://cotlet.dev/app/signup?app=siteminder (SiteMinder is pre-selected). Each request is reviewed and the API key is sent by email.
2. The user signs in to SiteMinder once in a browser. An agent cannot do this step.
3. The API key goes into the MCP client or the REST call as a bearer token.

Fits: people who want a hosted SiteMinder server that someone else maintains, including non-developers.

Policy: Cotlet never stores passwords, never solves CAPTCHAs, never bypasses MFA.
Company: legal details in the Terms of service at https://cotlet.dev/terms. Contact contact@cotlet.dev.
Session: the user signs in to SiteMinder in a browser; Cotlet keeps only the session, AES-256 encrypted, revocable in the dashboard at any time.
Terms: the user stays responsible for following SiteMinder's terms; Cotlet is not affiliated with SiteMinder.
Full page as Markdown

Automations

Can SiteMinder automations run on a schedule in n8n, Make or Zapier?

Yes. Cotlet does not replace your automation platform: it gives it a SiteMinder connection it does not have, with the same API key as your agent. Write actions ask for your OK by default; switch that off in your dashboard for the tools you choose, for example to fill gap nights between bookings, and the schedule runs on its own. Cotlet runs in the cloud, so it keeps going while your computer is off.

Where to run SiteMinder automations through Cotlet, and how to schedule them
Where How to connect How to schedule
Your AI agent Add https://cotlet.dev/mcp/v1 with your API key. A scheduled agent run, for example a Claude Code routine.
n8n MCP Client node with https://cotlet.dev/mcp/v1, or an HTTP Request node to https://cotlet.dev/api/v1/siteminder/{tool}. Schedule Trigger node.
Make HTTP module: POST https://cotlet.dev/api/v1/siteminder/{tool} with an Authorization: Bearer header and a JSON body. Scenario schedule.
Zapier Webhooks by Zapier: POST https://cotlet.dev/api/v1/siteminder/{tool} with the same header and body. Schedule by Zapier trigger.
Your own script POST https://cotlet.dev/api/v1/siteminder/{tool} with your API key. cron or GitHub Actions.

Pricing & limits

How much does the SiteMinder API cost?

Free 7-day trial with 5,000 credits, no card needed. After that, the SiteMinder API comes with the Cotlet plan, from $29 a month for 3,000 credits, with no limit on apps. Each month's credits stay valid for 3 months, so unused credits add up.

Cotlet plan sizes: price, monthly credits and price per credit
Size Price Credits / month Per credit
Solo $29/mo 3,000 about $0.0097
Pro $99/mo 12,000 about $0.0083
Agency $299/mo 40,000 $0.0075

Each successful call uses credits for the work it takes; failed calls and timeouts cost nothing. A hard spend cap is on by default. Authenticate with the Authorization: Bearer header.

About Cotlet

How Cotlet holds your access

Cotlet hosts MCP servers and REST APIs for apps with no usable API. Your agent works in your own SiteMinder account.

Company details
The legal name, address and registration numbers of the company behind Cotlet are in the Terms of service. Terms
Your session
You sign in to SiteMinder yourself, in your browser. We keep only the session, never your password: encrypted with AES-256 in an EU vault, isolated to your account and used only when your agent calls a SiteMinder tool you allowed. When it expires, your agent gives you a link to sign in again. Security
Revoking access
Disconnect SiteMinder in your dashboard: the session is deleted and access ends at once. Actions that reach other people wait for your OK unless you switch that off per tool.
What we never do
Store passwords, solve CAPTCHAs or bypass MFA.
SiteMinder's terms
You use your own SiteMinder account and stay responsible for following SiteMinder's terms. Cotlet is independent and not affiliated with SiteMinder. Terms
Contact
Questions about the company, security or an app: contact@cotlet.dev
About Cotlet

Frequently asked questions

How do I get access?

Request access and pick SiteMinder. Cotlet reviews each request and emails you your API key.

Do I need to be technical?

No. You sign in to SiteMinder once in your browser and paste one command into your agent, or one URL into n8n. Your agent can walk you through it. There is no server to install, update or fix.

Is a hosted server safe? My SiteMinder session would leave my computer.

Cotlet keeps your SiteMinder session encrypted with AES-256 in an EU vault, isolated to your account and used only for the tools you allow: read only, or read and write. The AI model never sees it, and you revoke it in one click. A local server keeps the same session in a file on your computer, readable by any program you run, and needs a fresh sign-in whenever it expires.

Does it work if my hotel has a connected PMS or RMS?

Reads work either way. For changes, SiteMinder says a two-way PMS, RMS or CRS overwrites manual updates in the inventory grid, so rates, availability and restrictions are changed in that system. Cotlet changes the same grid you do, so use the write tools only for data your PMS does not sync.

Can it cancel or change a channel reservation?

No. SiteMinder says channel bookings from Booking.com, Expedia and other OTAs cannot be cancelled in the platform; the guest or you must cancel at the channel. Cotlet reads reservations and does not change them.

Does it return guest emails, phone numbers or card details?

No. Since 22 Sep 2026 SiteMinder shows guest contact and card details, and allows reservation downloads, only on a trusted device (SiteMinder Help: Trusted devices). get_reservation leaves those fields out.

Can my agent post or send messages in SiteMinder without asking me?

No. Every call to update_rates, update_availability, update_restrictions or close_dates waits for your OK by default. For scheduled automations you can switch confirmation off per tool in your dashboard, for example only for approvals.

Can I use the SiteMinder API in n8n?

Yes. Add https://cotlet.dev/mcp/v1 with your API key in n8n's MCP Client node, or call https://cotlet.dev/api/v1/siteminder/{tool} from the HTTP Request node.

Give your agent access to SiteMinder.

Request access and pick it. We review each request and email you your API key. Free 7-day trial with 5,000 credits, no card needed.