CircleCI Connector
Prerequisites
- A CircleCI account (Free or any paid plan)
- Access to the projects you want to sync
Getting Your Credentials
CircleCI uses a Personal API Token for authentication.
Step 1: Create a Personal API Token
- Log into CircleCI
- Click your user icon in the bottom-left
- Go to User Settings > Personal API Tokens
- Click Create New Token
- Name it (e.g.,
Landed sync) - Copy the token (starts with
CCIPAT_)
Step 2: Find Your Project Slug
The project slug identifies which project's pipelines to sync. The format is <vcs>/<org>/<repo>:
gh/acme/backend-- GitHub org "acme", repo "backend"bb/acme/api-- Bitbucket org "acme", repo "api"
You can find this in the CircleCI project URL.
Step 3: Find Your Organization ID (Optional)
The organization ID is only required if you want to sync the contexts stream.
- In CircleCI, go to Organization Settings
- Copy the Organization ID (UUID format)
Configuration in Landed
| Field | Value |
|---|---|
| API Token | Your CircleCI personal API token (starts with CCIPAT_) |
| Project Slug | VCS provider/org/repo (e.g., gh/acme/backend) |
| Organization ID (optional) | CircleCI organization UUID (for contexts stream) |
| Base URL (optional) | Override for self-hosted CircleCI Server (default: https://circleci.com) |
Available Streams
| Stream | Description | Sync Mode |
|---|---|---|
projects | Project definitions with VCS info | Full refresh |
pipelines | Pipeline runs with trigger info and VCS details | Incremental |
workflows | Workflows within pipelines with status and timing | Incremental |
workflow_jobs | Individual jobs within workflows | Incremental |
job_details | Detailed job information including executor and steps | Incremental |
contexts | Organization contexts (requires org_id) | Full refresh |
Common Issues
| Symptom | Cause | Fix |
|---|---|---|
401 Unauthorized | Invalid API token | Generate a new token in CircleCI > User Settings > Personal API Tokens |
404 Not Found | Wrong project slug | Verify the project slug format: gh/org/repo or bb/org/repo |
| Empty contexts | Missing organization ID | Set the Organization ID field to sync contexts |
Rate limit exceeded | Too many API calls | Landed handles rate limiting automatically |
| Missing pipelines | Pipelines older than backfill window | Landed fetches pipelines incrementally with a 6-hour overlap to catch in-flight jobs |
Self-Hosted CircleCI Server
If you run a self-hosted CircleCI Server instance, set the Base URL field to your instance URL (e.g., https://circleci.yourcompany.com).
Static IPs for Allowlisting
If your CircleCI instance requires IP allowlisting:
- Production:
34.170.185.84,35.192.90.94 - Staging:
34.171.93.34