OpenAPI Specification
openapi: 3.1.0
info:
title: Tano Public Brand Signups Contact API
version: 1.0.0
summary: Public HTTP API for Tano — the AI-native influencer marketing agency.
description: 'Tano is an AI-native influencer marketing agency that manages end-to-end creator partnership ad campaigns on TikTok and Instagram (creator sourcing, contracts, payments, content rights, whitelisting, and ad-ready asset delivery).
This OpenAPI document describes the public-facing HTTP endpoints available on https://tano.ai. These endpoints are unauthenticated form-submission endpoints intended for marketing site signups, contact requests, content-gate signups (e.g., playbook downloads), creator onboarding, and webinar registrations.
There is no authenticated/programmatic API for managing live creator campaigns — campaign management is delivered as a managed service via a dedicated account manager. To build a campaign integration, contact team@tano.ai or book a call at https://tano.ai.
All endpoints accept and return JSON, and CORS is enabled for browser-based and agent-driven submissions.'
contact:
name: Tano
url: https://tano.ai
email: team@tano.ai
license:
name: Proprietary
url: https://tano.ai/privacy-policy
termsOfService: https://tano.ai/privacy-policy
servers:
- url: https://tano.ai
description: Production
tags:
- name: Contact
description: Contact form submissions and updates.
paths:
/api/contact:
post:
tags:
- Contact
summary: Submit a contact request
description: Submit a contact request to start a conversation with Tano about creator partnership ads, gifting, affiliate management, or general enquiries. Used by AI agents and humans to introduce a brand and request a follow-up.
operationId: submitContact
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ContactRequest'
examples:
brand_enquiry:
summary: Brand enquiry for creator partnership ads
value:
name: Jane Doe
email: jane@brand.com
userType: brand
message: Interested in running a 50-creator TikTok campaign next quarter.
responses:
'200':
description: Contact recorded
content:
application/json:
schema:
$ref: '#/components/schemas/ContactResponse'
'400':
$ref: '#/components/responses/BadRequest'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'500':
$ref: '#/components/responses/ServerError'
/api/contact-update:
patch:
tags:
- Contact
summary: Update an existing contact (or create if missing)
description: Upsert contact details by email. Used by the pricing calculator and onboarding flows to enrich a contact record with budget, plan, and influencer-program metadata.
operationId: updateContact
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ContactUpdateRequest'
responses:
'200':
description: Contact updated or created
content:
application/json:
schema:
$ref: '#/components/schemas/ContactUpdateResponse'
'400':
$ref: '#/components/responses/BadRequest'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'500':
$ref: '#/components/responses/ServerError'
components:
schemas:
ContactUpdateRequest:
type: object
required:
- email
properties:
name:
type: string
email:
type: string
format: email
phoneNumber:
type: string
message:
type: string
usingInfluencers:
oneOf:
- type: boolean
- type: string
influencersPerMonth:
oneOf:
- type: integer
- type: string
monthlyBudget:
type: string
planOnUsingInfluencers:
oneOf:
- type: boolean
- type: string
pricingTier:
type: string
description: Tier the brand selected in the pricing calculator (e.g., nano, micro, mid, macro).
sourcePage:
type: string
calculatorSummary:
type: string
ContactRequest:
type: object
required:
- email
properties:
name:
type: string
description: Full name of the person submitting the form.
email:
type: string
format: email
description: Email address. Required.
phoneNumber:
type: string
userType:
type: string
description: Type of user submitting the form (e.g., brand, creator, agency).
message:
type: string
affiliatesPerMonth:
type: string
ContactUpdateResponse:
type: object
properties:
success:
type: boolean
message:
type: string
recordId:
type: string
updated:
type: boolean
Error:
type: object
description: Structured JSON error response. All Tano endpoints return JSON for errors, never HTML.
properties:
error:
type: string
description: Short error code or message.
code:
type: string
description: Machine-readable error code (e.g., 'API_ENDPOINT_NOT_FOUND', 'INVALID_EMAIL').
message:
type: string
description: Human-readable error message with resolution hints.
documentation:
type: string
format: uri
description: Link to documentation that explains how to fix the error.
ContactResponse:
type: object
properties:
success:
type: boolean
message:
type: string
recordId:
type: string
isWorkEmail:
type: boolean
responses:
ServerError:
description: Server error. Retry with exponential backoff. Returned as JSON.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: Validation error (missing required field, invalid email, or non-work email). Returned as JSON.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
MethodNotAllowed:
description: HTTP method not supported for this endpoint. Returned as JSON.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
externalDocs:
description: Tano product documentation for AI agents (llms-full.txt)
url: https://tano.ai/llms-full.txt
x-agent-instructions:
primary_use_cases:
- Submit a brand enquiry on behalf of a user via /api/contact.
- Sign up for a downloadable playbook via /api/caf-signup, /api/cdg-signup, or /api/cpa-signup.
- Discover Tano's services, pricing, and proof points via /llms.txt and /llms-full.txt.
- Resolve agent integration questions via /agents.md (auth guide for AI agents).
auth: All endpoints documented here are unauthenticated public endpoints. There is no API key or OAuth flow. See /agents.md for the full agent authentication policy.
rate_limits: No documented rate limits, but agents should retry 5xx with exponential backoff and avoid duplicate submissions for the same email.
contact: For programmatic/managed-service integrations beyond these public endpoints, contact team@tano.ai.