Instagram API
A Instagram API permite consultar perfis de usuários, listar postagens, reels e mídias marcadas, ler stories, obter detalhes de postagens, ler comentários e respostas, pesquisar usuários e hashtags, e percorrer o grafo social (seguidores / seguindo). Doze endpoints, todos a 2 créditos por requisição.
Endpoints
| Endpoint | Descrição |
|---|---|
POST /api/v1/instagram/profile | Obter um perfil de usuário pelo username ou user_id |
POST /api/v1/instagram/user/posts | Listar as postagens de um usuário (paginadas) |
POST /api/v1/instagram/user/reels | Listar os reels de um usuário (paginadas) |
POST /api/v1/instagram/user/tagged | Listar postagens em que um usuário foi marcado (paginadas) |
POST /api/v1/instagram/user/stories | Obter os stories ativos de um usuário |
POST /api/v1/instagram/post | Obter detalhes completos de uma única postagem |
POST /api/v1/instagram/post/comments | Listar comentários em uma postagem |
POST /api/v1/instagram/post/comments/replies | Listar respostas a um comentário específico |
POST /api/v1/instagram/search/users | Pesquisar usuários do Instagram por palavra-chave |
POST /api/v1/instagram/search/hashtags | Pesquisar hashtags do Instagram por palavra-chave |
POST /api/v1/instagram/user/followers | Listar os seguidores de um usuário |
POST /api/v1/instagram/user/followings | Listar contas que um usuário segue |
Autenticação
| Cabeçalho | Valor | Obrigatório |
|---|---|---|
Authorization | Bearer YOUR_API_KEY | Sim |
Content-Type | application/json | Sim |
Toda resposta bem-sucedida inclui campos de rastreamento de crédito: credits_used, credits_remaining e response_time (ms).
Identificando um usuário
Os endpoints de usuário aceitam ou um username ou um user_id numérico. Passar username é a opção mais simples; ele é resolvido para um user_id automaticamente. Para chamadas repetidas, leia data.user.id da resposta do perfil e passe-o como user_id para pular a consulta.
Perfil do Usuário
POST https://api.scavio.dev/api/v1/instagram/profileObter um perfil de usuário do Instagram. Passe ou username ou user_id.
Corpo da Requisição
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
username | string | -- | Nome de usuário do Instagram (sem @). Um dos campos username ou user_id é obrigatório. |
user_id | string | -- | ID numérico do usuário. Um dos campos username ou user_id é obrigatório. |
Exemplo
curl -X POST 'https://api.scavio.dev/api/v1/instagram/profile' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"username": "instagram"}'Campos da Resposta (data.user)
| Campo | Tipo | Descrição |
|---|---|---|
id | string | ID numérico do usuário (use como user_id) |
username | string | Nome de usuário (handle) |
full_name | string | Nome de exibição |
biography | string | Texto da bio |
external_url | string | Link na bio |
profile_pic_url_hd | string | URL do avatar em HD |
is_verified | boolean | Distintivo verificado |
is_private | boolean | Conta privada |
edge_followed_by.count | number | Seguidores |
edge_follow.count | number | Seguindo |
edge_owner_to_timeline_media.count | number | Total de postagens |
Exemplo de Resposta
{
"data": {
"user": {
"id": "25025320",
"username": "instagram",
"full_name": "Instagram",
"biography": "Discover what's next on Instagram",
"is_verified": true,
"is_private": false,
"edge_followed_by": { "count": 672000000 },
"edge_follow": { "count": 250 },
"edge_owner_to_timeline_media": { "count": 7600 }
}
},
"response_time": 845,
"credits_used": 2,
"credits_remaining": 11750
}Postagens do Usuário
POST https://api.scavio.dev/api/v1/instagram/user/postsListar as postagens de um usuário (mídia da linha do tempo). Passe username ou user_id.
Corpo da Requisição
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
username | string | -- | Handle (sem @). Um dos campos username ou user_id é obrigatório. |
user_id | string | -- | ID numérico do usuário. Um dos campos username ou user_id é obrigatório. |
count | number | 12 | Resultados por página (1-50). |
cursor | string | -- | Cursor de paginação. Use data.page_info.end_cursor da resposta anterior. |
Paginação
Use data.page_info.end_cursor como cursor na próxima requisição. Pare quando data.page_info.has_next_page for false.
Reels do Usuário (/api/v1/instagram/user/reels) e Postagens Marcadas (/api/v1/instagram/user/tagged) usam os mesmos parâmetros e paginação que Postagens do Usuário, retornando reels e mídias marcadas respectivamente.
Stories do Usuário
POST https://api.scavio.dev/api/v1/instagram/user/storiesObter os stories ativos de um usuário. Passe username ou user_id. Retorna as URLs de mídia de cada story, tipo (imagem/vídeo) e timestamp.
Detalhes da Postagem
POST https://api.scavio.dev/api/v1/instagram/postObter detalhes completos de uma única postagem ou reel. Passe um dos url, media_id, ou shortcode.
Corpo da Requisição
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
url | string | -- | URL da postagem. Suporta caminhos /p/, /reel/, /reels/, /tv/. |
media_id | string | -- | ID numérico da mídia. |
shortcode | string | -- | Shortcode da postagem, ex.: DUajw4YkorV. |
Exemplo
curl -X POST 'https://api.scavio.dev/api/v1/instagram/post' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"shortcode": "DUajw4YkorV"}'Comentários da Postagem
POST https://api.scavio.dev/api/v1/instagram/post/commentsObter comentários em uma postagem. Passe ou um shortcode ou uma url da postagem.
Corpo da Requisição
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
shortcode | string | -- | Shortcode da postagem. Um dos campos shortcode ou url é obrigatório. |
url | string | -- | URL da postagem; o shortcode é extraído dela. |
cursor | string | -- | Cursor de paginação. Use data.next_min_id da resposta anterior. |
sort_order | string | "popular" | "popular" ou "newest". |
Paginação
Use data.next_min_id como o próximo cursor. Pare quando estiver ausente. Cada comentário expõe um campo pk; use-o como comment_id para o endpoint de respostas.
Respostas a Comentários
POST https://api.scavio.dev/api/v1/instagram/post/comments/repliesObter respostas a um comentário específico.
Corpo da Requisição
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
media_id | string | -- | Obrigatório. ID numérico da mídia da postagem. |
comment_id | string | -- | Obrigatório. ID do comentário pai (pk do endpoint de comentários). |
cursor | string | -- | Cursor de paginação. Use data.next_min_child_cursor da resposta anterior. |
Pesquisar Usuários
POST https://api.scavio.dev/api/v1/instagram/search/usersPesquisar usuários do Instagram por palavra-chave.
Corpo da Requisição
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
keyword | string | -- | Obrigatório. Consulta de pesquisa (1-500 caracteres). |
cursor | string | -- | Token de classificação de uma resposta anterior para paginação. |
Pesquisar Hashtags (/api/v1/instagram/search/hashtags) usa os mesmos parâmetros e retorna hashtags correspondentes com suas contagens de mídia.
Seguidores do Usuário
POST https://api.scavio.dev/api/v1/instagram/user/followersObter a lista de seguidores de um usuário. Passe username ou user_id.
Corpo da Requisição
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
username | string | -- | Handle (sem @). Um dos campos username ou user_id é obrigatório. |
user_id | string | -- | ID numérico do usuário. Um dos campos username ou user_id é obrigatório. |
count | number | 12 | Resultados por página (1-100). |
cursor | string | -- | Cursor de paginação. Use data.next_max_id da resposta anterior. |
Seguindo do Usuário
POST https://api.scavio.dev/api/v1/instagram/user/followingsObter contas que um usuário segue. Mesma estrutura de requisição e parâmetros que seguidores.
Referência de Paginação
| Campo do cursor | Endpoints | Condição de parada |
|---|---|---|
data.page_info.end_cursor | user/posts, user/reels, user/tagged | has_next_page === false |
data.next_min_id | post/comments | cursor ausente |
data.next_min_child_cursor | post/comments/replies | cursor ausente |
data.next_max_id | user/followers, user/followings | cursor ausente |
| rank token | search/users, search/hashtags | sem mais resultados |
Notas
- Cada endpoint custa 2 créditos por requisição.
- Os endpoints de usuário aceitam um
usernameou umuser_idnumérico; o endpoint de postagem aceita umaurl,media_idoushortcode. - As listas de seguidores e seguindo são pagináveis apenas para contas que o Instagram permite. Contas grandes ou verificadas retornam
should_limit_list_of_followers: true,has_more: falsee semnext_max_id— isso é uma restrição do Instagram, não um erro. Teste a paginação com uma conta menor e não verificada. - Veja Erros para tratamento de
401,429e502.