Urza’s Wallet / Engineering

API reference

Costa Rica personal finance comparison platform.

conventions

API conventions

The private FastAPI service exposes versioned routes under /api/v1/. Requests and responses use JSON unless a media type below says otherwise. Download the generated OpenAPI 3.1 contract.

Error envelope

{"error":{"code":"VALIDATION_ERROR","message":"…","request_id":"…"}}

Validation errors return 400 for invalid values and 422 for missing required fields. X-Request-Id correlates requests.

Rate limiting

FastAPI applies a per-process, per-client-IP sliding window of 60 requests per 60 seconds. Responses carry X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset. Excess requests return 429. Separate user/admin tiers and Redis counters are deferred.

Same-origin boundary

Browsers call Next.js route handlers at relative /api/… paths. The handlers and server components call the private API using INTERNAL_API_URL. Public web pages never expose that internal hostname to client components.

Editor access

/api/v1/admin/** requires HTTP Basic authentication with ADMIN_USERNAME and ADMIN_PASSWORD. Missing configuration returns 503; absent or incorrect credentials return 401 with a Basic challenge. The web middleware independently protects editor pages and proxies.

Draft Users, Alerts, Saved Comparisons and Documents are deferred. Account mutations return 401 stubs. Document routes describe the intended surface, but the production product repository does not implement document reads. These routes do not imply a working document service.

76 operations · 58 paths · OpenAPI 3.1
API group

Admin — Articles

PATCH/api/v1/admin/articles/{article_id}Update Article

Parameters

Name (* required)LocationTypeDescription
article_id *pathstring

Request body *

application/json

ArticleUpdateBody: object

Field (* required)TypeDescription
titlestring | null
slugstring | null
body_mdstring | null
excerptstring | null
summarystring | null
image_urlstring | null
authorstring | null
published_atstring | null
tagsarray<string> | null
related_product_idsarray<string> | null

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
PATCH/api/v1/admin/articles/{article_id}/statusUpdate Article Status

Parameters

Name (* required)LocationTypeDescription
article_id *pathstring

Request body *

application/json

ArticleStatusBody: object

Field (* required)TypeDescription
status *string

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/admin/articlesList Articles Admin

Responses

200 Successful Response
application/json

unknown

POST/api/v1/admin/articlesCreate Article

Request body *

application/json

ArticleCreateBody: object

Field (* required)TypeDescription
title *string
slugstring | null
verticalstring
body_mdstring | null
excerptstring | null
summarystring | null
image_urlstring | null
authorstring
published_atstring | null
statusstring
tagsarray<string>
related_product_idsarray<string>

Responses

201 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
API group

Admin — Guides

PATCH/api/v1/admin/guides/{guide_id}Update Guide

Parameters

Name (* required)LocationTypeDescription
guide_id *pathstring

Request body *

application/json

GuideUpdateBody: object

Field (* required)TypeDescription
titlestring | null
cluster_idstring | null
slugstring | null
summarystring | null
body_mdstring | null
authorstring | null
published_atstring | null
order_in_clusterinteger | null

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
PATCH/api/v1/admin/guides/{guide_id}/statusUpdate Guide Status

Parameters

Name (* required)LocationTypeDescription
guide_id *pathstring

Request body *

application/json

GuideStatusBody: object

Field (* required)TypeDescription
status *string

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
POST/api/v1/admin/guides/clusters/{cluster_id}/deactivateDeactivate Cluster Not Implemented

guide_clusters has no is_active column — deactivation is not implementable.

Parameters

Name (* required)LocationTypeDescription
cluster_id *pathstring

Responses

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
501 Successful Response
application/json

unknown

PUT/api/v1/admin/guides/clusters/{cluster_id}Update Cluster

Parameters

Name (* required)LocationTypeDescription
cluster_id *pathstring

Request body *

application/json

ClusterUpdateBody: object

Field (* required)TypeDescription
titlestring | null
descriptionstring | null

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/admin/guides/clustersList Clusters Admin

Responses

200 Successful Response
application/json

unknown

POST/api/v1/admin/guides/clustersCreate Cluster Not Implemented

Creating clusters requires a DDL migration — not available at runtime.

Responses

501 Successful Response
application/json

unknown

GET/api/v1/admin/guidesList Guides Admin

Responses

200 Successful Response
application/json

unknown

DELETE/api/v1/admin/guides/journeys/{journey_id}Delete Journey

Parameters

Name (* required)LocationTypeDescription
journey_id *pathstring

Responses

204 Successful Response
422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/admin/guides/journeys/{journey_id}Get Journey Admin

Parameters

Name (* required)LocationTypeDescription
journey_id *pathstring

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
PATCH/api/v1/admin/guides/journeys/{journey_id}Update Journey

Parameters

Name (* required)LocationTypeDescription
journey_id *pathstring

Request body *

application/json

JourneyUpdateBody: object

Field (* required)TypeDescription
titlestring | null
descriptionstring | null
end_cta_kindstring | null
end_cta_labelstring | null

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
PUT/api/v1/admin/guides/journeys/{journey_id}/stepsReplace Journey Steps

Parameters

Name (* required)LocationTypeDescription
journey_id *pathstring

Request body *

application/json

array<JourneyStepEntry: object>

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/admin/guides/journeysList Journeys Admin

Responses

200 Successful Response
application/json

unknown

POST/api/v1/admin/guides/journeysCreate Journey

Request body *

application/json

JourneyCreateBody: object

Field (* required)TypeDescription
title *string
slug *string
end_cta_kind *string
end_cta_label *string
descriptionstring | null

Responses

201 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
POST/api/v1/admin/guidesCreate Guide

Request body *

application/json

GuideCreateBody: object

Field (* required)TypeDescription
title *string
cluster_id *string
slugstring | null
summarystring | null
body_mdstring | null
authorstring
statusstring
published_atstring | null
order_in_clusterinteger

Responses

201 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
API group

Admin — Issuers

POST/api/v1/admin/issuers/{issuer_id}/deactivateDeactivate Issuer

Parameters

Name (* required)LocationTypeDescription
issuer_id *pathstring

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/admin/issuers/{issuer_id}Get Issuer

Parameters

Name (* required)LocationTypeDescription
issuer_id *pathstring

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
PATCH/api/v1/admin/issuers/{issuer_id}Update Issuer

Parameters

Name (* required)LocationTypeDescription
issuer_id *pathstring

Request body *

application/json

IssuerUpdateBody: object

Field (* required)TypeDescription
namestring | null
short_namestring | null
verticalstring | null
logo_urlstring | null
website_urlstring | null
is_activeboolean | null

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/admin/issuersList Issuers

Responses

200 Successful Response
application/json

unknown

POST/api/v1/admin/issuersCreate Issuer

Request body *

application/json

IssuerCreateBody: object

Field (* required)TypeDescription
id *string
name *string
short_name *string
verticalstring | null
logo_urlstring | null
website_urlstring | null

Responses

201 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
API group

Admin — Offers

POST/api/v1/admin/offers/{offer_id}/deactivateDeactivate Offer

Parameters

Name (* required)LocationTypeDescription
offer_id *pathstring

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
PATCH/api/v1/admin/offers/{offer_id}Update Offer

Parameters

Name (* required)LocationTypeDescription
offer_id *pathstring

Request body *

application/json

OfferUpdateBody: object

Field (* required)TypeDescription
headlinestring | null
terms_snippetstring | null
bonus_crcnumber | null
intro_apr_pctnumber | null
intro_period_monthsinteger | null
active_fromstring | null
active_untilstring | null

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/admin/offersList Offers Admin

Responses

200 Successful Response
application/json

unknown

POST/api/v1/admin/offersCreate Offer

Request body *

application/json

OfferCreateBody: object

Field (* required)TypeDescription
product_id *string
headline *string
terms_snippetstring | null
bonus_crcnumber | null
intro_apr_pctnumber | null
intro_period_monthsinteger | null
active_fromstring | null
active_untilstring | null

Responses

201 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
API group

Admin — Products

GET/api/v1/admin/products/tarjetas/{product_id}Get Credit Card

Parameters

Name (* required)LocationTypeDescription
product_id *pathstring

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
PATCH/api/v1/admin/products/tarjetas/{product_id}Update Credit Card

Parameters

Name (* required)LocationTypeDescription
product_id *pathstring

Request body *

application/json

CreditCardUpdateBody: object

Field (* required)TypeDescription
product_namestring | null
issuer_idstring | null
networkstring | null
annual_fee_crcnumber | null
annual_fee_waivableboolean | null
interest_rate_annual_pctnumber | null
min_income_crcnumber | null
reward_typestring | null
cashback_rate_pctnumber | null
currencystring | null
benefits_summarystring | null
editorial_scoreinteger | null
editorial_summarystring | null

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
PATCH/api/v1/admin/products/tarjetas/{product_id}/statusUpdate Product Status

Parameters

Name (* required)LocationTypeDescription
product_id *pathstring

Request body *

application/json

StatusUpdateBody: object

Field (* required)TypeDescription
status *string

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/admin/products/tarjetasList Credit Cards

Responses

200 Successful Response
application/json

unknown

POST/api/v1/admin/products/tarjetasCreate Credit Card

Request body *

application/json

CreditCardCreateBody: object

Field (* required)TypeDescription
product_name *string
issuer_id *string
network *string
statusstring | null
annual_fee_crcnumber | null
annual_fee_waivableboolean
interest_rate_annual_pctnumber | null
min_income_crcnumber | null
reward_typestring
cashback_rate_pctnumber | null
currencystring
benefits_summarystring | null
editorial_scoreinteger | null
editorial_summarystring | null

Responses

201 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
API group

Admin — Reviews

GET/api/v1/admin/products/tarjetas/{product_id}/reviewGet Review For Admin

Parameters

Name (* required)LocationTypeDescription
product_id *pathstring

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
PATCH/api/v1/admin/products/tarjetas/{product_id}/reviewUpdate Review

Parameters

Name (* required)LocationTypeDescription
product_id *pathstring

Request body *

application/json

ReviewUpdateBody: object

Field (* required)TypeDescription
prosarray<string> | null
consarray<string> | null
best_use_casestring | null
review_body_mdstring | null
authorstring | null
published_atstring | null

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
POST/api/v1/admin/products/tarjetas/{product_id}/reviewUpsert Review

Parameters

Name (* required)LocationTypeDescription
product_id *pathstring

Request body *

application/json

ReviewUpsertBody: object

Field (* required)TypeDescription
prosarray<string> | null
consarray<string> | null
best_use_casestring | null
review_body_mdstring | null
authorstring | null
published_atstring | null

Responses

201 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
PATCH/api/v1/admin/products/tarjetas/{product_id}/review/statusUpdate Review Status

Parameters

Name (* required)LocationTypeDescription
product_id *pathstring

Request body *

application/json

ReviewStatusBody: object

Field (* required)TypeDescription
status *string

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
API group

Alerts Draft

DELETE/api/v1/alerts/{alert_id}Delete Alert

Parameters

Name (* required)LocationTypeDescription
alert_id *pathstring

Responses

204 Successful Response
422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/alertsList Alerts

Responses

200 Successful Response
application/json

unknown

POST/api/v1/alertsCreate Alert

Responses

201 Successful Response
application/json

unknown

API group

Articles

GET/api/v1/articles/{vertical}/{slug}Get Article By Slug

Parameters

Name (* required)LocationTypeDescription
vertical *pathVerticalSlug: "tarjetas" | "fondos-pension" | "credito-hipotecario"
slug *pathstring

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/articles/for-product/{product_id}List Articles For Product

Parameters

Name (* required)LocationTypeDescription
product_id *pathstring
limitqueryinteger

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/articlesList Articles

Parameters

Name (* required)LocationTypeDescription
vertical *queryVerticalSlug: "tarjetas" | "fondos-pension" | "credito-hipotecario"
tagqueryArticleTag: "promociones" | "guias" | "noticias" | "comparativas" | "tips" | null
pagequeryinteger
page_sizequeryinteger

Responses

200 Successful Response
application/json

ArticleListResponse: object

Field (* required)TypeDescription
data *array<Article: object>
meta *ArticleListMeta: object
422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/articles/latestList Latest Articles

Parameters

Name (* required)LocationTypeDescription
vertical *queryVerticalSlug: "tarjetas" | "fondos-pension" | "credito-hipotecario"
limitqueryinteger

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
API group

Comparisons

POST/api/v1/compareCompare Products

Request body *

application/json

CompareBody: object

Field (* required)TypeDescription
vertical *VerticalSlug: "tarjetas" | "fondos-pension" | "credito-hipotecario"
ids *array<string>

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
API group

Documents Draft

GET/api/v1/documents/{document_id}/downloadDownload Document

Parameters

Name (* required)LocationTypeDescription
document_id *pathstring

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/documents/{document_id}Get Document

Parameters

Name (* required)LocationTypeDescription
document_id *pathstring

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/documentsList Documents

Parameters

Name (* required)LocationTypeDescription
verticalquerystring | null
issuer_idquerystring | null
document_typequerystring | null
access_levelquerystring | null
is_current_versionqueryboolean | null
pagequeryinteger
page_sizequeryinteger

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
POST/api/v1/documentsCreate Document

Upload a new document. Requires editor role (Clerk auth — stubbed 401).

Responses

201 Successful Response
application/json

unknown

API group

FX

GET/api/v1/fx/bcrGet Bcr Rate

Return the platform BCR reference exchange rate (CRC per USD). Used by the FEAT-007 calculator's cross-currency annotation only. Sourced from BCR (Banco Central de Costa Rica). For v1 the rate is a static constant; a daily rate-sync job replaces it in a follow-up.

Responses

200 Successful Response
application/json

BcrRateOut: object

Field (* required)TypeDescription
rate_crc_per_usd *number
effective_date *string
API group

Guides

GET/api/v1/guides/{slug}Get Guide By Slug

Parameters

Name (* required)LocationTypeDescription
slug *pathstring

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/guides/clustersList Clusters

Responses

200 Successful Response
application/json

unknown

GET/api/v1/guidesList Guides

Parameters

Name (* required)LocationTypeDescription
clusterqueryGuideClusterId: "empezando" | "eligiendo" | "usando" | "resolviendo-problemas" | null

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/guides/journeys/{slug}Get Journey By Slug

Parameters

Name (* required)LocationTypeDescription
slug *pathstring

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/guides/journeysList Journeys

Responses

200 Successful Response
application/json

unknown

API group

Health

GET/api/v1/health Health Handler

Responses

200 Successful Response
application/json

unknown

GET/health Health Handler

Responses

200 Successful Response
application/json

unknown

API group

Leads

POST/api/v1/admin/deletion-requests/{request_id}/processAdmin Process Deletion Request

Parameters

Name (* required)LocationTypeDescription
request_id *pathstring

Request body *

application/json

object

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/admin/deletion-requestsAdmin List Deletion Requests

Responses

200 Successful Response
application/json

unknown

POST/api/v1/admin/leads/{lead_id}/anonymizeAdmin Anonymize Lead

Parameters

Name (* required)LocationTypeDescription
lead_id *pathstring

Responses

204 Successful Response
422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/admin/leads/{lead_id}Admin Get Lead

Parameters

Name (* required)LocationTypeDescription
lead_id *pathstring

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
PATCH/api/v1/admin/leads/{lead_id}Admin Patch Lead

Parameters

Name (* required)LocationTypeDescription
lead_id *pathstring

Request body *

application/json

LeadPatchPayload: object

Field (* required)TypeDescription
statusLeadStatus: "new" | "contacted" | "converted" | "discarded" | null
notesstring | null

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/admin/leadsAdmin List Leads

Parameters

Name (* required)LocationTypeDescription
statusqueryLeadStatus: "new" | "contacted" | "converted" | "discarded" | null
verticalquerystring | null
pagequeryinteger
page_sizequeryinteger

Responses

200 Successful Response
application/json

LeadListResponse: object

Field (* required)TypeDescription
data *array<Lead: object>
meta *LeadListMeta: object
422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
POST/api/v1/leads/deletion-requestSubmit Deletion Request

Anti-enumeration: response is always 202 with the same generic message regardless of whether the email matches any lead. Email shape validation (the 400/422 path) is handled by Pydantic — only a syntactically-bad email returns an error to the submitter.

Request body *

application/json

DeletionRequestPayload: object

Field (* required)TypeDescription
email *string

Responses

202 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
POST/api/v1/leadsSubmit Lead

Persist the lead + consent record. PII safety: nothing about payload.name / payload.email is ever logged.

Parameters

Name (* required)LocationTypeDescription
urza_session_idcookiestring | null

Request body *

application/json

LeadSubmissionPayload: object

Field (* required)TypeDescription
name *string
email *string
vertical *"tarjetas" | "fondos-pension" | "credito-hipotecario"
product_id *string
product_name *string
source_surface *"dashboard" | "catalogo" | "comparacion" | "detalle" | "finder" | "wizard" | "articulo" | "guia"
consent_granted *boolean
policy_version *string

Responses

201 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
API group

Offers

POST/api/v1/cta-eventsPost Cta Event

Parameters

Name (* required)LocationTypeDescription
urza_session_idcookiestring | null

Request body *

application/json

CtaEventSubmitPayload: object

Field (* required)TypeDescription
product_id *string
vertical *string
source_surface *CtaSourceSurface: "dashboard" | "catalogo" | "comparacion" | "detalle" | "finder" | "wizard" | "articulo" | "guia"
event_type *CtaEventType: "impression" | "click" | "form_open" | "form_open_failed"
metadataobject | null

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/offers/{product_id}Get Offer For Product

Parameters

Name (* required)LocationTypeDescription
product_id *pathstring

Responses

200 Successful Response
application/json

unknown

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
API group

Products

GET/api/v1/products/{vertical}/{id}Get Product

Parameters

Name (* required)LocationTypeDescription
vertical *pathstring
id *pathstring

Responses

200 Successful Response
application/json

object

422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/products/{vertical}List Products

Parameters

Name (* required)LocationTypeDescription
vertical *pathstring
cursorquerystring | null
limitqueryinteger
issuerqueryarray<string> | null
statusquerystring | null
currencyquerystring | null
max_fee_crcquerynumber | null
networkqueryarray<string> | null
reward_typequeryarray<string> | null
has_travel_benefitsqueryboolean | null
qquerystring | null
fund_typequerystring | null
rate_typequerystring | null
sortquerystring | null
sort_dirquerystring | null

Responses

200 Successful Response
application/json

ProductListResponse: object

Field (* required)TypeDescription
data *array<unknown>
meta *ProductListMeta: object
422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/products/{vertical}/issuersList Issuers

Parameters

Name (* required)LocationTypeDescription
vertical *pathstring

Responses

200 Successful Response
application/json

IssuerListResponse: object

Field (* required)TypeDescription
data *array<Issuer: object>
422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
API group

Saved Comparisons Draft

DELETE/api/v1/comparisons/{comparison_id}Delete Saved Comparison

Parameters

Name (* required)LocationTypeDescription
comparison_id *pathstring

Responses

204 Successful Response
422 Validation Error
application/json

HTTPValidationError: object

Field (* required)TypeDescription
detailarray<ValidationError: object>
GET/api/v1/comparisonsList Saved Comparisons

Responses

200 Successful Response
application/json

unknown

POST/api/v1/comparisonsSave Comparison

Responses

201 Successful Response
application/json

unknown

API group

Users Draft

DELETE/api/v1/users/accountDelete Account

Responses

200 Successful Response
application/json

unknown

GET/api/v1/users/exportExport Data

Responses

200 Successful Response
application/json

unknown

GET/api/v1/users/profileGet Profile

Responses

200 Successful Response
application/json

unknown

PATCH/api/v1/users/profilePatch Profile

Responses

200 Successful Response
application/json

unknown