openapi: 3.0.3 info: title: Snov.io Authentication API description: 'Snov.io sales engagement REST API. Authentication uses the OAuth2 client_credentials grant to exchange an API User ID (client_id) and API Secret (client_secret) for a one-hour Bearer access token. Email finder, domain search, and email verification use an asynchronous pattern: a POST to a `/start` endpoint returns a `task_hash`, then a GET to the matching `/result` endpoint retrieves the outcome. Most request bodies are application/x-www-form-urlencoded; a few v2 endpoints accept JSON. The API is rate limited to 60 requests per minute.' termsOfService: https://snov.io/terms-and-conditions contact: name: Snov.io Support url: https://snov.io/api version: '1.0' servers: - url: https://api.snov.io description: Snov.io production API security: - OAuth2: [] tags: - name: Authentication paths: /v1/oauth/access_token: post: operationId: getAccessToken tags: - Authentication summary: Get an OAuth2 access token description: Exchanges client_id (API User ID) and client_secret (API Secret) for a Bearer access token using the client_credentials grant. The token is valid for 3600 seconds. security: [] requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - grant_type - client_id - client_secret properties: grant_type: type: string enum: - client_credentials client_id: type: string client_secret: type: string responses: '200': description: Access token issued. content: application/json: schema: $ref: '#/components/schemas/AccessToken' components: schemas: AccessToken: type: object properties: access_token: type: string token_type: type: string example: Bearer expires_in: type: integer example: 3600 securitySchemes: OAuth2: type: oauth2 description: OAuth2 client_credentials flow. POST client_id and client_secret to /v1/oauth/access_token to obtain a Bearer token, then send it in the Authorization header. flows: clientCredentials: tokenUrl: https://api.snov.io/v1/oauth/access_token scopes: {}