Portada Live Events API

This is the developer reference for the public read API at joinevent.portada-online.com. It lists Portada Live and Portada Next conferences. The machine-readable contract is the OpenAPI document, and every operation has an operationId, a description, typed parameters, and a response schema so an agent can call it as a function.

The OpenAPI specification is at /openapi.json.

Authentication

No API key, login, or Authorization header is required. The API only reads the public conference schedule. It cannot create a registration, charge a card, or change event content. Write methods return a JSON error.

Endpoints

GET /api/v1/events lists published conferences. The operationId is listEvents. GET /api/v1/events/{slug} returns one conference. The operationId is getEvent. The slug is the same path segment as the event page, for example portada-miami-2027. Both operations accept GET and HEAD.


            curl -sS https://joinevent.portada-online.com/api/v1/events
curl -sS https://joinevent.portada-online.com/api/v1/events/portada-miami-2027
          

Errors

Errors are JSON, never an HTML page. The body is an object with error.code, error.message, and error.hint. code is a stable token such as not_found, method_not_allowed, rate_limited, or catalog_unavailable. hint tells the caller what to do next, usually to list events or to wait for Retry-After.


            {
  "error": {
    "code": "not_found",
    "message": "No published Portada conference matches that slug.",
    "hint": "Call GET /api/v1/events to list current slugs."
  }
}
          

Rate limits

Each client IP may send 60 requests per 60 seconds. Every API response includes RateLimit-Policy, RateLimit, RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset. RateLimit-Policy uses the IETF RateLimit header fields, for example "events";q=60;w=60. RateLimit reports the remaining quota and the seconds until reset. RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset repeat those numbers as integers. A 429 response also includes Retry-After, set to the seconds to wait before the same request is sent again.

The counters live with the application instance that handled the request. A client should still honor the headers on the response it just received and back off when remaining reaches zero.

Markdown

The homepage also negotiates content. A request to / with Accept: text/markdown receives a Markdown body, Content-Type: text/markdown, and Vary: Accept. A request with Accept: text/html still receives the HTML page. The same negotiation is available on /about, /contact, /privacy, and /docs.


            curl -sS -L -D - -o /dev/null -H 'Accept: text/markdown' https://joinevent.portada-online.com/
curl -sS -L -D - -o /dev/null -H 'Accept: text/html' https://joinevent.portada-online.com/
          

Related pages

Contact us