openapi: 3.0.3 info: title: CipherOwl Onchain Service Private Data API API description: CipherOwl blockchain compliance and risk assessment APIs (Screening, Risk & Reporting; Onchain; Private Data). version: 2.1.0 servers: - url: https://svc.cipherowl.ai security: - BearerAuth: [] tags: - name: Private Data API description: Manage organization-scoped screening overrides (allowlists and denylists) for blockchain addresses. paths: /api/private-data/v1/overrides/chains/{chain}/addresses/{address}: delete: summary: Delete override operationId: PrivateDataService_DeleteEntry responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1DeleteEntryResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' parameters: - name: chain in: path required: true schema: type: string - name: address in: path required: true schema: type: string tags: - Private Data API get: summary: Get override operationId: PrivateDataService_GetEntry responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1GetEntryResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' parameters: - name: chain in: path required: true schema: type: string - name: address in: path required: true schema: type: string tags: - Private Data API /api/private-data/v1/overrides/chains/{chain}/addresses: get: summary: List overrides operationId: PrivateDataService_ListEntriesForChain responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1ListEntriesResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' parameters: - name: chain in: path required: true schema: type: string example: bitcoin - name: listType description: 'Optional: filter by list type (if unspecified, returns all types)' in: query required: false schema: type: string enum: - LIST_TYPE_UNSPECIFIED - LIST_TYPE_ALLOWLIST - LIST_TYPE_DENYLIST default: LIST_TYPE_UNSPECIFIED - name: pageSize in: query required: false schema: type: integer format: int32 - name: pageToken in: query required: false schema: type: string - name: includeDeleted in: query required: false schema: type: boolean - name: sinceTimestamp description: 'Optional: if provided, only return entries modified since this timestamp' in: query required: false schema: type: string format: date-time tags: - Private Data API post: summary: Upsert override operationId: PrivateDataService_UpsertEntry responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v1UpsertEntryResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' parameters: - name: chain in: path required: true schema: type: string example: bitcoin tags: - Private Data API requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PrivateDataServiceUpsertEntryBody' components: schemas: v1OverrideEntry: type: object properties: orgId: type: string listType: $ref: '#/components/schemas/v1ListType' chain: type: string chainFamily: type: string address: type: string addLabels: type: array items: type: string removeLabels: type: array items: type: string notes: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time createdBy: type: string version: type: string format: int64 deletedAt: type: string format: date-time title: null if not deleted updatedBy: type: string title: Override entry protobufAny: type: object properties: '@type': type: string additionalProperties: {} v1ListType: type: string enum: - LIST_TYPE_UNSPECIFIED - LIST_TYPE_ALLOWLIST - LIST_TYPE_DENYLIST default: LIST_TYPE_UNSPECIFIED title: ListType enum for override entries v1GetEntryResponse: type: object properties: entry: $ref: '#/components/schemas/v1OverrideEntry' title: Response with a specific entry v1UpsertEntryResponse: type: object properties: entry: $ref: '#/components/schemas/v1OverrideEntry' created: type: boolean title: true if new entry, false if updated existing title: Response from upsert operation rpcStatus: type: object properties: code: type: integer format: int32 message: type: string details: type: array items: type: object $ref: '#/components/schemas/protobufAny' PrivateDataServiceUpsertEntryBody: type: object properties: listType: $ref: '#/components/schemas/v1ListType' address: type: string addLabels: type: array items: type: string removeLabels: type: array items: type: string notes: type: string expectedVersion: type: string format: int64 title: 0 for new entries, current version for updates title: Request to create or update an entry v1ListEntriesResponse: type: object properties: entries: type: array items: type: object $ref: '#/components/schemas/v1OverrideEntry' nextPageToken: type: string title: Response with list of entries v1DeleteEntryResponse: type: object properties: success: type: boolean title: Response from delete operation securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: JWT description: OAuth 2.0 access token obtained from /oauth/token using client credentials.