Habu · OpenAPI Overlay 1.0.0
API Evangelist enhancements — Habu Clean Room API
7 actions
7 updates
update
extends
openapi/habu-clean-room-api-openapi.yml
Derived by API Evangelist
Built from the contracts Habu publishes. Habu did not publish this file.
What the actions change
x-apievangelistx-rate-limitx-undeclared-responsesx-token-requestx-observed-envelopex-stabilityx-agent-guidancex-enrichment-gaps
Targets 6
$.info
$.servers
$.paths['/cleanroom-questions/{cleanroomQuestionId}/cleanroom-question-runs'].post
$.components.securitySchemes.application
$.components.schemas.ReturnObject
$.tags[?(@.name=="Internal")]
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enhancements — Habu Clean Room API
version: 1.0.0
x-description: Overlay of the API Evangelist enrichment findings onto the published Habu Clean Room OpenAPI.
It adds provenance, the runtime semantics the contract omits (rate limits on run creation, the token-issuance
ceiling, the request-id header, the richer live error envelope) and stability annotations on the Internal
tag. Applies to openapi/habu-clean-room-api-openapi.yml; the original is never mutated.
extends: openapi/habu-clean-room-api-openapi.yml
actions:
- target: $.info
description: Stamp provenance and the acquisition context.
update:
x-apievangelist:
profile: https://apis.io/provider/habu
generated: '2026-08-12'
method: searched
spec_source: https://storage.googleapis.com/lr-tech-docs-resources/Files/clean-room/api/liveramp-clean-room-api-specification.yml
docs: https://developers.liveramp.com/clean-room-api
note: Habu was acquired by LiveRamp in January 2024. The API is still served from Habu infrastructure
(api.habu.com) and the console is still console.habu.com, while the documentation moved to developers.liveramp.com.
- target: $.servers
description: Record that the declared server was verified live.
update:
- url: https://api.habu.com/v1/
description: External APIs for Customer Integration
x-verified:
date: '2026-08-12'
evidence: GET https://api.habu.com/v1/health → 200 {"status":"UP","statusCode":200,"description":"External
API is available","version":"v1.0.0"}
- target: $.paths['/cleanroom-questions/{cleanroomQuestionId}/cleanroom-question-runs'].post
description: Document the published 20-per-hour rate limit and the undeclared 429 on question-run creation.
update:
x-rate-limit:
limit: 20
window: hour
scope: per API user, organization and IP address
enforcement: token bucket
docs: https://developers.liveramp.com/clean-room-api/reference/api-limits
x-undeclared-responses:
- 429 Too Many Requests — documented at https://developers.liveramp.com/clean-room-api/reference/api-limits
but absent from this operation's responses block.
- target: $.components.securitySchemes.application
description: Add the token-request mechanics the securityScheme cannot express.
update:
x-token-request:
method: POST
content_type: application/x-www-form-urlencoded
body: grant_type=client_credentials
authorization: Basic base64(client_id:client_secret)
response_fields:
- accessToken
- tokenType
- expiresIn
- expiresAt
token_lifetime_seconds: 43200
issuance_limit: 2 tokens per 24-hour period per API user
docs: https://developers.liveramp.com/clean-room-api/reference/request-an-access-token
- target: $.components.schemas.ReturnObject
description: Record the richer error envelope observed live, which the declared schema understates.
update:
x-observed-envelope:
fields:
- status
- code
- timestamp
- message
- details
example: '{"status":"UNAUTHORIZED","code":401,"timestamp":"12-08-2026 05:17:12","message":"Full
authentication is required to access this resource","details":"uri=/v1/cleanrooms"}'
observed: '2026-08-12'
note: The spec declares only {code, message}; the live API returns five fields and code is an integer,
not a string.
- target: $.tags[?(@.name=="Internal")]
description: Flag the Internal tag as outside the supported external contract.
update:
x-stability: internal
x-agent-guidance: Do not call operations tagged Internal from an agent — LiveRamp states they are
not part of the supported external customer contract and may change without notice.
- target: $.info
description: Record the cross-cutting gaps found during enrichment.
update:
x-enrichment-gaps:
- No Idempotency-Key on any of the 151 operations — retried run creation can duplicate work.
- No rate-limit response headers; the 429 is the only runtime signal.
- No request or response examples anywhere in the spec.
- Only 11 of 151 operations accept limit/offset; the rest are unpaginated.
- No operation declares 429 despite a documented rate limit.
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/habu-clean-room-api-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
A second provider on the same verified email joins the account you already have.