Graphed IG Outreach

API-first Instagram DM outreach platform — HeyReach for Instagram

API checking... Fleet checking... DB checking...

Demo API Key

Include this header in all requests:

Authorization: Bearer igr_ojwY0604jzNjRKcRT2D1hb0-kZdl1QLKTmEs016Ea8w

Core Endpoints

POST /icop/api/v1/campaigns — Create campaign with IG targets

GET /icop/api/v1/campaigns/{id} — Campaign status + target breakdown

GET /icop/api/v1/campaigns/{id}/export — CSV export

POST /icop/api/v1/campaigns/{id}/pause — Pause campaign

POST /icop/api/v1/campaigns/{id}/resume — Resume campaign

Monitoring

GET /icop/api/health — Basic liveness (no auth)

GET /icop/api/v1/health/fleet — Fleet health (senders, campaigns, webhooks)

GET /icop/api/v1/health/readiness — Readiness probe

Try It — cURL

# Create a campaign
curl -X POST https://dev.tanmaychoudhary.com/icop/api/v1/campaigns \
  -H "Authorization: Bearer igr_ojwY0604jzNjRKcRT2D1hb0-kZdl1QLKTmEs016Ea8w" \
  -H "Content-Type: application/json" \
  -d '{"name":"demo","targets":[{"ig_username":"creator1"}],"message_template":"Hey {{name}}, collab?"}'

# Check campaign status
curl https://dev.tanmaychoudhary.com/icop/api/v1/campaigns/{id} \
  -H "Authorization: Bearer igr_ojwY0604jzNjRKcRT2D1hb0-kZdl1QLKTmEs016Ea8w"

# Pause / Resume (POST, not PATCH)
curl -X POST https://dev.tanmaychoudhary.com/icop/api/v1/campaigns/{id}/pause \
  -H "Authorization: Bearer igr_ojwY0604jzNjRKcRT2D1hb0-kZdl1QLKTmEs016Ea8w"
curl -X POST https://dev.tanmaychoudhary.com/icop/api/v1/campaigns/{id}/resume \
  -H "Authorization: Bearer igr_ojwY0604jzNjRKcRT2D1hb0-kZdl1QLKTmEs016Ea8w"

# Export CSV
curl https://dev.tanmaychoudhary.com/icop/api/v1/campaigns/{id}/export \
  -H "Authorization: Bearer igr_ojwY0604jzNjRKcRT2D1hb0-kZdl1QLKTmEs016Ea8w"

# Fleet health
curl https://dev.tanmaychoudhary.com/icop/api/v1/health/fleet \
  -H "Authorization: Bearer igr_ojwY0604jzNjRKcRT2D1hb0-kZdl1QLKTmEs016Ea8w"

API Documentation

Interactive Swagger UI: /icop/api/docs

OpenAPI spec: /icop/api/openapi.json