{
    "openapi": "3.0.3",
    "info": {
        "description": "Search USPTO trademarks by keyword with filing-status and class filters.",
        "version": "1.0.0",
        "title": "Atom Trademark Search API",
        "contact": {
            "email": "service@atom.com"
        },
        "termsOfService": "https://www.atom.com/terms"
    },
    "servers": [
        {
            "url": "https://www.atom.com/api/marketplace",
            "description": "Production"
        }
    ],
    "tags": [
        {
            "name": "Trademark Apis",
            "description": "APIs for trademark search and analysis functionality"
        }
    ],
    "externalDocs": {
        "description": "Atom API docs",
        "url": "https://www.atom.com/api-docs"
    },
    "paths": {
        "/trademark-search": {
            "get": {
                "tags": [
                    "Trademark Apis"
                ],
                "summary": "Search Trademarks",
                "description": "Search for trademarks in the USPTO database based on keyword and various filters. Requires dedicated Trademark API token.",
                "operationId": "trademarkSearch",
                "parameters": [
                    {
                        "name": "api_token",
                        "in": "query",
                        "required": true,
                        "description": "Trademark API token (dedicated for trademark functionality)",
                        "schema": {
                            "type": "string",
                            "default": ""
                        }
                    },
                    {
                        "name": "user_id",
                        "in": "query",
                        "required": true,
                        "description": "UserId of the API Token",
                        "schema": {
                            "type": "string",
                            "default": ""
                        }
                    },
                    {
                        "name": "keyword",
                        "in": "query",
                        "required": true,
                        "description": "Keyword to search for in trademark names",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search_type",
                        "in": "query",
                        "required": false,
                        "description": "Type of search to perform",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "exact",
                                "phrase",
                                "broad"
                            ],
                            "default": "phrase"
                        }
                    },
                    {
                        "name": "filing_status",
                        "in": "query",
                        "required": false,
                        "description": "Filter by trademark filing status",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "active",
                                "pending",
                                "dead",
                                "all"
                            ],
                            "default": "all"
                        }
                    },
                    {
                        "name": "class",
                        "in": "query",
                        "required": false,
                        "description": "International class filter (e.g., '009' for computer software)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "description": "Page number for pagination",
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "page_size",
                        "in": "query",
                        "required": false,
                        "description": "Number of results per page (max 100)",
                        "schema": {
                            "type": "integer",
                            "default": 20
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/TrademarkSearchResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Invalid API token or insufficient permissions",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Wrong API Token"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Rate limit exceeded",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Daily rate limit exceeded. You have used 10 of 10 daily trademark search requests."
                                        },
                                        "daily_limit": {
                                            "type": "integer",
                                            "example": 10
                                        },
                                        "used_today": {
                                            "type": "integer",
                                            "example": 10
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "apiToken": {
                "type": "apiKey",
                "in": "query",
                "name": "api_token",
                "description": "Seller / partner / appraisal / trademark API token from https://www.atom.com/dashboard/seller/api-access"
            }
        },
        "schemas": []
    }
}