overlay: 1.0.0
info:
title: API Evangelist enhancements for Portfolio API (v2)
version: 1.0.0
extends: ../openapi/_original/outsystems-portfolio-api-v2-openapi.json
x-generated: '2026-08-02'
x-method: generated
x-source: openapi/outsystems-portfolio-api-v2-openapi.json
x-note: >-
Non-destructive Overlay 1.0.0 recording API Evangelist enrichment findings against the
OutSystems-published spec. The original document under openapi/ is never mutated.
actions:
- target: $.info
update:
x-apievangelist-provider: outsystems
x-apievangelist-api-domain: portfolios
x-apievangelist-operations: 7
x-apievangelist-harvested-from: https://github.com/OutSystems/docs-odc/tree/main/src/eap/reference/apis/resources
x-apievangelist-auth-model: >-
OAuth 2.0 client-credentials against the tenant OIDC discovery document at
/identity/.well-known/openid-configuration; the resulting JWT is presented as a
bearer token. Authorization is portal-assigned permissions, not requested scopes.
x-apievangelist-artifacts:
authentication: authentication/outsystems-authentication.yml
permissions: scopes/outsystems-scopes.yml
conventions: conventions/outsystems-conventions.yml
errors: errors/outsystems-problem-types.yml
rate_limits: rate-limits/outsystems-rate-limits.yml
lifecycle: lifecycle/outsystems-lifecycle.yml
data_model: data-model/outsystems-data-model.yml
- target: $.servers
description: >-
Both published server entries are templated on the tenant portal domain
(ODC_PORTAL_DOMAIN / {odc-portal-domain}). There is no shared public host; every
call is tenant-scoped.
- target: $.components.schemas.ProblemDetails
description: >-
Error bodies carry the RFC 7807/9457 member set plus a traceId extension, but are
served as application/json rather than application/problem+json, so clients cannot
content-negotiate or detect them as problem documents.
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.