openapi: 3.2.0 info: title: Oto Data Nps API description: 'A Data API do Oto permite que você faça cargas de dados de forma segura e confiável, utilizando padrões REST e corpos das mensagens em formato JSON. Os registros são inseridos na modalidade _upsert_, isto é, caso um registro com a mesma chave primária exista na base de dados, ele será integralmente substituído pelo registro enviado. Caso contrário, um novo registro será criado na base de dados. # Limites Dois limites são aplicados em todos os endpoints desta API: requisições por minuto e quantidade máxima de registros por requisição. ## Limite de requisições Para garantir a estabilidade e segurança da plataforma, esta API aceita um número máximo de **200** requisições por minuto por IP de origem. As requisições que excederem este limite terão suas respostas atrasadas para que se mantenha o ritmo estipulado, até que eventualmente podem ser barradas com a resposta `HTTP/1.1 429 Too many requests`. ## Limite de registros por requisição São aceitos até **10.000** registros por requisição. Caso a propriedade `data` contenha um número superior de entradas, a requisição será recusada com a resposta `HTTP/1.1 413 Payload Too Large`.' version: 1.3.5 x-logo: url: https://pmweblabs.s3.amazonaws.com/assets/oto-logo.png href: https://suporte.otocrm.com.br/ altText: Oto. Quem conhece, vende. servers: - url: https://data-api.otocrm.com.br description: Production - url: https://data-api-hmg.otocrm.com.br description: Test - url: http://localhost:8000 description: Test tags: - name: Nps paths: /v1/nps: post: summary: Post Nps description: 'Criar ou editar avaliações de _net promoter score_. Os registros são deduplicados pela coluna `id`. A nota do cliente deve ser entre 1 e 10. Além do _score_, o cliente pode avaliar até 10 items adicionais, com notas que variam de 1 a 5. Valores nulos ou fora destes intervalos não serão considerados nos cálculos das avaliações.' operationId: post_nps_v1_nps_post requestBody: content: application/json: schema: $ref: '#/components/schemas/NpsPostRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] tags: - Nps components: schemas: NetPromoterScore: properties: id: type: integer minimum: 1.0 title: Id description: Identificador único da resposta NPS event_ts: type: string format: date-time title: Event Ts description: Data e hora da resposta customer_id: type: string title: Customer Id description: Identificador único do cliente mkt_cloud_id: anyOf: - type: string - type: 'null' title: Mkt Cloud Id description: Identificador do usuário na marketing cloud order_date: type: string format: date title: Order Date description: Data da compra (yyyy-mm-dd) order_id: type: string title: Order Id description: Código do pedido order_store: type: string title: Order Store description: Código da loja da compra order_store_type: anyOf: - $ref: '#/components/schemas/StoreType' - type: 'null' description: 'Tipo de loja: E = E-commerce, L = Loja física' order_delivery_type: anyOf: - type: string - type: 'null' title: Order Delivery Type description: Tipo de entrega / frete do pedido score: anyOf: - type: integer maximum: 10.0 minimum: 1.0 - type: 'null' title: Score description: Nota do NPS rating_01: anyOf: - type: integer maximum: 5.0 minimum: 1.0 - type: 'null' title: Rating 01 description: Avaliação do item 1 rating_02: anyOf: - type: integer maximum: 5.0 minimum: 1.0 - type: 'null' title: Rating 02 description: Avaliação do item 2 rating_03: anyOf: - type: integer maximum: 5.0 minimum: 1.0 - type: 'null' title: Rating 03 description: Avaliação do item 3 rating_04: anyOf: - type: integer maximum: 5.0 minimum: 1.0 - type: 'null' title: Rating 04 description: Avaliação do item 4 rating_05: anyOf: - type: integer maximum: 5.0 minimum: 1.0 - type: 'null' title: Rating 05 description: Avaliação do item 5 rating_06: anyOf: - type: integer maximum: 5.0 minimum: 1.0 - type: 'null' title: Rating 06 description: Avaliação do item 6 rating_07: anyOf: - type: integer maximum: 5.0 minimum: 1.0 - type: 'null' title: Rating 07 description: Avaliação do item 7 rating_08: anyOf: - type: integer maximum: 5.0 minimum: 1.0 - type: 'null' title: Rating 08 description: Avaliação do item 8 rating_09: anyOf: - type: integer maximum: 5.0 minimum: 1.0 - type: 'null' title: Rating 09 description: Avaliação do item 9 rating_10: anyOf: - type: integer maximum: 5.0 minimum: 1.0 - type: 'null' title: Rating 10 description: Avaliação do item 10 comment: anyOf: - type: string - type: 'null' title: Comment description: Comentário por escrito do cliente type: object required: - id - event_ts - customer_id - order_date - order_id - order_store title: NetPromoterScore HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError NpsPostRequest: properties: data: items: $ref: '#/components/schemas/NetPromoterScore' type: array title: Data type: object required: - data title: NpsPostRequest ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type type: object required: - loc - msg - type title: ValidationError SuccessResponse: properties: success: anyOf: - type: boolean - type: 'null' title: Success requestId: anyOf: - type: string format: uuid - type: 'null' title: Requestid type: object title: SuccessResponse StoreType: type: string enum: - E - L title: StoreType securitySchemes: HTTPBearer: type: http scheme: bearer description: "Você deverá enviar sua chave privada\nno cabeçalho HTTP `Authorization`, com o padrão `Bearer `. Exemplo:\n\n```\nGET / HTTP/1.1\nHost: data-api.otocrm.com.br\nAuthorization: Bearer abcdef123456\n```\n "