Configuring Olist as a Source
In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Olist option from the list of connectors. Click Next and you’ll be prompted to add your access.1. Add account access
Olist Tiny API v3 uses OAuth 2.0. Unlike most connectors, Olist applications are private to each account: you create your own application inside your Olist Tiny account and generate the credentials yourself. No developer knowledge is required — the guide below covers every click. The following configurations are required:- Client ID: From the application you create in your Olist Tiny account (guide below).
- Client Secret: From the same application.
- Refresh token: Generated with the Google OAuth Playground (guide below).
- Start Date: (Optional) Lower bound for extraction. Products and Contacts sync incrementally from this date (
dataAlteracao/dataAtualizacao); Orders, Invoices, and Accounts payable/receivable use it as an emission-date floor. If omitted, the full history available in the API is synced.
How to create your Olist application and generate the Refresh token
How to create your Olist application and generate the Refresh token
1
Create an application in your Olist Tiny account
- In the Olist ERP, open erp.olist.com/aplicativos_api (menu Configurações → Aplicativos API)
- Click + novo aplicativo
- Fill in the application details:
- Nome: e.g.,
Nekt - URL de Redirecionamento:
https://developers.google.com/oauthplayground
- Nome: e.g.,
- Under Permissões do aplicativo, check Leitura (read) for every module you plan to sync — for example Contatos, Produtos, Notas Fiscais, Pedidos, and Contas a pagar/receber. Leave Incluir e editar and Excluir unchecked: Nekt only reads your data.
- Click salvar
- Copy the Client ID and Client Secret shown under Chaves de acesso
Each Olist account can have up to 5 applications. Keep your Client Secret secure — never share it publicly.
2
Open the Google OAuth Playground
The Google OAuth Playground is a free tool that generates your Refresh token in the browser — no coding involved. Click the link below to open it pre-configured for Olist Tiny:Open Olist Tiny OAuth Playground →
3
Configure the OAuth Playground
In the OAuth Playground, click the gear icon (⚙️) on the right side to open “OAuth 2.0 configuration” and update these values:
- Replace
TINY_CLIENT_IDwith your Client ID - Replace
TINY_CLIENT_SECRETwith your Client Secret - Verify the endpoints:
- OAuth authorization endpoint:
https://accounts.tiny.com.br/realms/tiny/protocol/openid-connect/auth - OAuth token endpoint:
https://accounts.tiny.com.br/realms/tiny/protocol/openid-connect/token
- OAuth authorization endpoint:
- Click Close
4
Authorize and get your Refresh token
If your browser is signed in to more than one Olist Tiny account (or to someone else’s account), Olist may skip the login screen and authorize the wrong account without asking. When in doubt, do this step in a private/incognito window so you are prompted to log in.
- In Step 1 of the playground (left side), the scope
openidis already filled in — click Authorize APIs - You’ll be redirected to Olist Tiny — log in with the same account that owns the application and approve the requested permissions
- After returning to the playground, click Exchange authorization code for tokens (Step 2)
- Your refresh_token appears in the response on the right side
5
Paste your credentials in Nekt
Back in Nekt, fill in the three fields:
- Client ID: From your Olist application
- Client Secret: From your Olist application
- Refresh token: The
refresh_tokenvalue you just copied
The application belongs to the Olist account that created it, which is why each account uses its own Client ID and Client Secret. If you change the application’s permissions later, generate a new refresh token (repeat the OAuth Playground steps) for the changes to take effect. Authorize with an account that can view the data you intend to sync — some modules depend on your Olist Tiny plan.
2. Select streams
Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.Tip: The stream can be found more easily by typing its name.Select the streams and click Next.
3. Configure data streams
Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.- Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
- Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
- Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
- Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
- Incremental: every time the extraction happens, we’ll get only the new data - which is good if, for example, you want to keep every record ever fetched.
- Full table: every time the extraction happens, we’ll get the current state of the data - which is good if, for example, you don’t want to have deleted data in your catalog.
4. Configure data source
Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can define some additional settings:- Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
- Determine when to execute an Additional Full Sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.
5. Check your new source
You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.Streams and Fields
Below you’ll find all available data streams from Olist Tiny and their fields, as returned by the API v3 list endpoints. Every record is keyed byid. Nested entities (such as cliente, endereco, and vendedor) are delivered as JSON strings — extract their fields with SQL JSON functions, for example JSON_VALUE(cliente, '$.nome').
Pedidos (Orders)
Pedidos (Orders)
Sales orders with customer, seller, shipping, and total.Key Fields:
Produtos (Products)
Produtos (Products)
Product catalog with pricing and stock. Synced incrementally by
dataAlteracao.Key Fields:Contatos (Contacts)
Contatos (Contacts)
Contacts / customers registry. Synced incrementally by
dataAtualizacao.Key Fields:Notas (Invoices / NF-e)
Notas (Invoices / NF-e)
Fiscal invoices (Nota Fiscal eletrônica) with customer, delivery, shipping, and totals.Key Fields:
Contas a pagar (Accounts payable)
Contas a pagar (Accounts payable)
Accounts payable entries. Accepts a Start Date lower bound on the emission date.Key Fields:
Contas a receber (Accounts receivable)
Contas a receber (Accounts receivable)
Accounts receivable entries. Accepts a Start Date lower bound on the emission date.Key Fields:
Vendedores (Sellers)
Vendedores (Sellers)
Sellers / sales representatives registry.Key Fields:
Marcas (Brands)
Marcas (Brands)
Product brands registry.Key Fields:
Formas de pagamento (Payment methods)
Formas de pagamento (Payment methods)
Payment methods registry.Key Fields:
Depósitos (Warehouses)
Depósitos (Warehouses)
Warehouses / stock deposits registry.Key Fields:
Data Model
The following diagram illustrates the relationships between the core data streams in Olist Tiny. Orders and invoices embed the customer and seller as JSON strings, and reference the seller through theid inside the vendedor field.
Implementation Notes
Sync mode
- Incremental: Products (
dataAlteracao) and Contacts (dataAtualizacao). - Full table with an emission-date floor from the optional Start Date: Orders and Invoices (
dataInicial), Accounts payable and Accounts receivable (dataInicialEmissao). - Full table: Sellers, Brands, Payment methods, and Warehouses.
Authentication and token lifetime
Authentication is OAuth 2.0 with a per-account application (your own Client ID and Client Secret). The refresh token rotates on every run and expires in about a day, so schedule this source to run at least once daily; if it stays idle longer, generate a new refresh token with the OAuth Playground (see the setup guide above) and update the source.Nested objects and types
Nested entities (cliente, endereco, vendedor, transportador, ecommerce, precos, estoque, …) are delivered as JSON strings. Extract individual fields with SQL JSON functions:
id values are integers; most monetary and weight fields (valor, saldo, pesoBruto) are numbers, while a few (such as pedidos.valor) come back as strings — cast as needed. Dates use ISO format (YYYY-MM-DD; incremental keys use YYYY-MM-DD HH:MM:SS).
Rate limits
The Olist Tiny v3 API allows 60, 120, or 240 requests per minute depending on your plan, and the limit is shared across every application on the account. The connector watches the rate-limit headers and automatically pauses until the window resets, so large syncs complete — they just take longer on lower plans or on accounts with other integrations running.Brazilian context
This connector is designed for the Brazilian market:- Currency: Values are in BRL (Brazilian Real).
- Documents: Counterparties are identified by CPF (individuals) or CNPJ (companies) in the
cpfCnpjfield. - Addresses: Brazilian address format with CEP (postal code) and state abbreviation (
uf).
Skills for agents
Download Olist skills file
Olist connector documentation as plain markdown, for use in AI agent contexts.