Tapfiliate Customers API
Manage customers and their metadata
Operations 11
Documentation
Documentation
https://tapfiliate.com/docs/rest/
Authentication
https://tapfiliate.com/docs/rest/#authentication
Manage customers and their metadata
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/tapfiliate-customers-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
openapi: 3.2.0
info:
title: Tapfiliate REST Affiliate Groups Customers API
description: Tapfiliate is an affiliate tracking and management platform. This REST API allows you to create and manage affiliate programs, track conversions, manage affiliates, handle commission payouts, and record clicks. The API is versioned at V1.6 and uses API key authentication via the X-Api-Key header.
version: '1.6'
contact:
name: Tapfiliate Support
url: https://tapfiliate.com/docs/rest/
termsOfService: https://tapfiliate.com/terms/
servers:
- url: https://api.tapfiliate.com/1.6
description: Tapfiliate REST API v1.6
security:
- ApiKeyAuth: []
tags:
- name: Customers
description: Manage customers and their metadata
paths:
/customers/{id}/:
get:
operationId: getCustomer
summary: Retrieve a Customer
description: Retrieve a single customer by their ID.
tags:
- Customers
parameters:
- $ref: '#/components/parameters/customerId'
responses:
'200':
description: Customer retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Customer'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
patch:
operationId: updateCustomer
summary: Update a Customer
description: Update an existing customer's data.
tags:
- Customers
parameters:
- $ref: '#/components/parameters/customerId'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
customer_id:
type: string
description: The external customer identifier
meta_data:
type: object
additionalProperties: true
description: Arbitrary metadata for this customer
responses:
'200':
description: Customer updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Customer'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteCustomer
summary: Delete a Customer
description: Delete a customer record.
tags:
- Customers
parameters:
- $ref: '#/components/parameters/customerId'
responses:
'204':
description: Customer deleted successfully
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/customers/:
get:
operationId: listCustomers
summary: List all Customers
description: Retrieve a paginated list of all customers.
tags:
- Customers
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: List of customers
headers:
Link:
$ref: '#/components/headers/PaginationLink'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Customer'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createCustomer
summary: Create a Customer
description: Create a new customer record.
tags:
- Customers
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- customer_id
properties:
customer_id:
type: string
description: Your unique external identifier for this customer
meta_data:
type: object
additionalProperties: true
responses:
'201':
description: Customer created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Customer'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
/customers/{id}/status/:
put:
operationId: cancelCustomer
summary: Cancel or Uncancel a customer
description: Set or update the status of a customer. Use to cancel or uncancel.
tags:
- Customers
parameters:
- $ref: '#/components/parameters/customerId'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- status
properties:
status:
type: string
enum:
- trial
- paid
- cancelled
responses:
'200':
description: Customer status updated
content:
application/json:
schema:
$ref: '#/components/schemas/Customer'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/customers/{id}/meta-data/:
get:
operationId: getCustomerMetaData
summary: Retrieve meta data for a Customer
description: Retrieve all metadata for a given customer.
tags:
- Customers
parameters:
- $ref: '#/components/parameters/customerId'
responses:
'200':
description: Customer metadata
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: replaceCustomerMetaData
summary: Update (replace) meta data for a Customer
description: Replace all metadata for a customer.
tags:
- Customers
parameters:
- $ref: '#/components/parameters/customerId'
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Metadata replaced
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/customers/{id}/meta-data/{key}/:
get:
operationId: getCustomerMetaDataByKey
summary: Retrieve meta data by key for a Customer
description: Retrieve a specific metadata key for a customer.
tags:
- Customers
parameters:
- $ref: '#/components/parameters/customerId'
- $ref: '#/components/parameters/metaDataKey'
responses:
'200':
description: Metadata value
content:
application/json:
schema:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: setCustomerMetaDataByKey
summary: Set meta data by key for a Customer
description: Set a specific metadata key for a customer.
tags:
- Customers
parameters:
- $ref: '#/components/parameters/customerId'
- $ref: '#/components/parameters/metaDataKey'
requestBody:
required: true
content:
application/json:
schema:
type: object
responses:
'200':
description: Metadata set
content:
application/json:
schema:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteCustomerMetaDataByKey
summary: Delete meta data by key for a Customer
description: Delete a specific metadata key for a customer.
tags:
- Customers
parameters:
- $ref: '#/components/parameters/customerId'
- $ref: '#/components/parameters/metaDataKey'
responses:
'204':
description: Metadata deleted
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
parameters:
limit:
name: limit
in: query
schema:
type: integer
default: 50
minimum: 1
maximum: 100
description: Number of results per page
page:
name: page
in: query
schema:
type: integer
default: 1
minimum: 1
description: Page number for pagination
customerId:
name: id
in: path
required: true
schema:
type: string
description: Customer ID
metaDataKey:
name: key
in: path
required: true
schema:
type: string
description: Metadata key
responses:
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
UnprocessableEntity:
description: Validation error — request body is invalid
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Authentication failed — missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Customer:
type: object
properties:
id:
type: string
description: Tapfiliate's internal customer ID
example: cu_eXampl3
customer_id:
type: string
description: Your external customer identifier
example: USER123
status:
type: string
enum:
- trial
- paid
- cancelled
description: Customer billing status
example: trial
created_at:
type: string
format: date-time
example: '2021-07-02T09:55:20+00:00'
click:
type:
- object
- 'null'
properties:
created_at:
type: string
format: date-time
referrer:
type: string
format: uri
landing_page:
type: string
format: uri
meta_data:
type: object
additionalProperties: true
description: Arbitrary key-value metadata
Error:
type: object
properties:
message:
type: string
description: Human-readable error message
headers:
PaginationLink:
description: Links to navigate between pages. Contains rel="next", rel="prev", rel="first", and rel="last" links as per RFC 5988.
schema:
type: string
example: <https://api.tapfiliate.com/1.6/conversions/?page=3>; rel="next", <https://api.tapfiliate.com/1.6/conversions/?page=51>; rel="last"
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-Api-Key