TwentyCi · OpenAPI Overlay 1.0.0
API Evangelist enhancements for TwentyAPI (TwentyCi) v2
11 actions
11 updates
update
extends
openapi/twentyci-twentyapi-openapi.json
Derived by API Evangelist
Built from the contracts TwentyCi publishes. TwentyCi did not publish this file.
What the actions change
x-provider-documentation-defectx-apievangelist-providerx-apievangelist-provider-published-specx-apievangelist-advertised-specx-apievangelist-advertised-spec-statusx-apievangelist-harvest-sourcex-apievangelist-artifactsx-access
Targets 7
$.info
$
$.tags
$.paths['/propertiesavm2/{property}'].post
$.paths['/{uprn}/likely-to-sell'].get
$.paths['/this-is-now/search-national'].get
$.paths['/trigger/{trigger}'].get
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enhancements for TwentyAPI (TwentyCi) v2
version: 1.0.0
x-provenance:
generated: '2026-07-26'
method: generated
source: openapi/twentyci-twentyapi-openapi.json
note: >-
Captures API Evangelist's enrichment of the harvested TwentyAPI contract without mutating the
harvested document. Every value asserted here is sourced from TwentyCi's own public documentation
corpus (https://api.twentyci.co.uk/api/documentation/markdocs) or from a live probe recorded in
this repo. Nothing is invented; no response schema is fabricated, because TwentyCi publishes none.
extends: openapi/twentyci-twentyapi-openapi.json
actions:
- target: $.info
description: Record the provenance of the contract itself and the artifacts derived from it.
update:
x-apievangelist-provider: twentyci
x-apievangelist-provider-published-spec: false
x-apievangelist-advertised-spec: https://api.twentyci.co.uk/docs/v2/spec.json
x-apievangelist-advertised-spec-status: 404
x-apievangelist-harvest-source: https://api.twentyci.co.uk/api/documentation/markdocs
x-apievangelist-artifacts:
conventions: conventions/twentyci-conventions.yml
errors: errors/twentyci-problem-types.yml
examples: examples/twentyci-examples.yml
vocabulary: vocabulary/twentyci-vocabulary.yml
data_model: data-model/twentyci-data-model.yml
lifecycle: lifecycle/twentyci-lifecycle.yml
conformance: conformance/twentyci-conformance.yml
authentication: authentication/twentyci-authentication.yml
scopes: scopes/twentyci-scopes.yml
security: security/twentyci-domain-security.yml
mcp: mcp/twentyci-mcp.yml
skills: skills/_index.yml
- target: $.info
description: Record the access gate, which is the single most important integration fact.
update:
x-access:
gate: partner-only
self_serve_signup: false
free_tier: false
sandbox: false
published_pricing: false
anonymous_response: 401 Unauthenticated.
credential_issuance: >-
TwentyCi issues client_id, client_secret, username and password under a commercial data
agreement. There is no registration route.
- target: $
description: Record the cross-cutting conventions TwentyCi documents globally rather than per operation.
update:
x-conventions:
pagination:
style: page-number
request_params: [page, per_page, limit]
response_block: meta.pagination
response_fields: [total, last_page, per_page, current_page]
error_envelopes:
- '{ message, error: { status, messages } }'
- '{ message, success, errors }'
error_envelope_note: TwentyCi publishes two competing error envelopes and reconciles neither.
rfc9457: false
idempotency: false
request_id_header: null
rate_limit_headers: null
date_format: epoch-seconds
required_headers:
Content-Type: application/json
Accept: application/json
- target: $
description: >-
Record the API-wide HTTP statuses TwentyCi publishes on its status-code page but does not declare
per operation. The harvested spec declares only 200/401/404/422 because that is all TwentyCi
declares per endpoint.
update:
x-http-status-catalog:
documented_by_provider: [200, 400, 401, 403, 404, 406, 422, 500, 502, 503, 504]
declared_per_operation: [200, 401, 404, 422]
source: https://api.twentyci.co.uk/documentation#http-status-response-codes
detail: errors/twentyci-problem-types.yml
- target: $.info
description: Record the identity model - UPRN rather than any MLS/RESO identifier.
update:
x-identity:
primary_key: uprn
primary_key_name: Unique Property Reference Number
issuer: Ordnance Survey / GeoPlace
reso_applicable: false
reso_note: >-
The United Kingdom has no MLS and no RESO regime. Zero word-boundary matches for RESO, MLS,
IDX, VOW, OData, Data Dictionary, Universal Property Identifier or UPI across TwentyCi's full
247,074-byte documentation corpus.
- target: $.info
description: Record the absent surfaces so a consumer does not go looking for them.
update:
x-absent-surfaces:
webhooks: false
asyncapi: false
graphql: false
grpc: false
sdks: false
cli: false
postman_collection: false
sandbox: false
status_page: false
changelog: false
deprecation_policy: false
rate_limits_documented: false
mcp_server: false
well_known_documents: false
- target: $.tags
description: Point each product family at the documentation section that defines it.
update:
x-tag-docs:
Properties: https://api.twentyci.co.uk/documentation#properties
Categories: https://api.twentyci.co.uk/documentation#categories
Trigger Information: https://api.twentyci.co.uk/documentation#trigger-information
Agent Performance: https://api.twentyci.co.uk/documentation#agent-performance
Address Match: https://api.twentyci.co.uk/documentation#address-match
Schools: https://api.twentyci.co.uk/documentation#schools
UK Housing Market Metrics: https://api.twentyci.co.uk/documentation#uk-housing-market-metrics
This is Now | Retail Propensity To Buy Goods: https://api.twentyci.co.uk/documentation#this-is-now-retail-propensity-to-buy-goods
- target: $.paths['/propertiesavm2/{property}'].post
description: Flag the published route defect rather than silently correcting it.
update:
x-provider-documentation-defect: >-
TwentyCi publishes this route as "api/v2/propertiesavm2/{property}" - a missing slash between
the collection and the AVM segment. Transcribed verbatim from the provider's documentation; not
corrected, because the live behaviour cannot be verified without credentials.
- target: $.paths['/{uprn}/likely-to-sell'].get
description: Flag the published route defect rather than silently correcting it.
update:
x-provider-documentation-defect: >-
TwentyCi publishes this route as "api/v2/{uprn}/likely-to-sell" with no resource segment.
Transcribed verbatim; not corrected.
- target: $.paths['/this-is-now/search-national'].get
description: Flag that the provider's own page for this operation declares a different route.
update:
x-provider-documentation-defect: >-
TwentyCi's "National Search" page declares the Local Search route (/api/v2/this-is-now/search).
The path here comes from the section index. Example bodies bound to this operation are marked
medium confidence in examples/twentyci-examples.yml.
- target: $.paths['/trigger/{trigger}'].get
description: Flag that the provider's own page for this operation declares a different route.
update:
x-provider-documentation-defect: >-
TwentyCi's "Obtain a Specific Trigger" page declares GET /categories, contradicting its own
section index route /trigger/{trigger} - a copy-paste defect in the corpus.
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/twentyci-twentyapi-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
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.
A second provider on the same verified email joins the account you already have.