Connecting to CircleCI
Using API Key Authentication
CircleCI uses personal API tokens to authenticate API requests. To generate a personal API token, log in to your CircleCI account, navigate to User Settings > Personal API Tokens, and click Create New Token. Copy the token value immediately as it is only shown once.
After setting the following connection properties, you are ready to connect:
- AuthScheme: Set this to APIKey.
- APIKey: Set this to your CircleCI personal API token.
Example connection string:
Profile=C:\profiles\CircleCI.apip;AuthScheme=APIKey;ProfileSettings='APIKey=your_personal_api_token';
Available Tables
The CircleCI API Profile provides access to the following tables:
- Me: Returns profile information for the authenticated CircleCI user.
- Collaborations: Returns the list of organizations the authenticated user collaborates with.
- Users: Returns profile information for a specific CircleCI user by ID.
- Organizations: Returns information about a specific CircleCI organization by ID.
- Contexts: Returns the list of contexts for an organization. Requires OrgSlug or OrgId filter.
- ContextDetails: Returns details for a specific context by ID.
- ContextEnvVars: Returns the environment variables stored within a context.
- ContextRestrictions: Returns the access restrictions on a context.
- Pipelines: Returns a list of pipelines across an organization. Filter by OrgSlug.
- PipelineDetails: Returns detailed information about a specific pipeline by ID.
- PipelineWorkflows: Returns the workflows associated with a specific pipeline.
- Projects: Returns information about a specific project by project slug.
- ProjectPipelines: Returns recent pipelines for a specific project.
- CheckoutKeys: Returns the SSH checkout keys configured for a project.
- ProjectEnvVars: Returns the environment variables set for a project.
- Workflows: Returns detailed information about a specific workflow by ID.
- WorkflowJobs: Returns the jobs within a specific workflow.
- Jobs: Returns detailed information about a specific job by project slug and job number.
- Artifacts: Returns the artifacts produced by a specific job.
- TestResults: Returns the test metadata for a specific job.
- Schedules: Returns the pipeline schedules configured for a project.
- ScheduleDetails: Returns detailed information about a specific pipeline schedule.
- OrgInsights: Returns aggregated workflow metrics for an organization. Requires OrgSlug.
- WorkflowInsights: Returns per-workflow metrics for a project. Requires ProjectSlug.
- WorkflowRuns: Returns workflow run history for a specific workflow. Requires ProjectSlug and WorkflowName.
- WorkflowJobInsights: Returns per-job metrics for a specific workflow. Requires ProjectSlug and WorkflowName.
- FlakyTests: Returns tests detected as flaky within a project. Requires ProjectSlug.
- ProjectBranches: Returns the list of branches for a project. Requires ProjectSlug.
Usage Examples
Artifacts:
SELECT * FROM Artifacts WHERE ProjectSlug = 'github/MyOrg/my-repo' AND JobNumber = 1
CheckoutKeys:
SELECT * FROM CheckoutKeys WHERE ProjectSlug = 'github/MyOrg/my-repo'
Collaborations:
SELECT * FROM Collaborations
ContextDetails:
SELECT * FROM ContextDetails WHERE Id = 'context-uuid'
ContextEnvVars:
SELECT * FROM ContextEnvVars WHERE ContextId = 'context-uuid'
ContextRestrictions:
SELECT * FROM ContextRestrictions WHERE ContextId = 'context-uuid'
Contexts:
SELECT * FROM Contexts
FlakyTests:
SELECT * FROM FlakyTests WHERE ProjectSlug = 'github/MyOrg/my-repo'
Jobs:
SELECT * FROM Jobs WHERE ProjectSlug = 'github/MyOrg/my-repo' AND JobNumber = 1
Me:
SELECT * FROM Me
OrgInsights:
SELECT * FROM OrgInsights WHERE OrgSlug = 'circleci/MyOrg'
Organizations:
SELECT * FROM Organizations WHERE Id = 'org-uuid'
PipelineDetails:
SELECT * FROM PipelineDetails WHERE Id = 'pipeline-uuid'
PipelineWorkflows:
SELECT * FROM PipelineWorkflows WHERE PipelineId = 'pipeline-uuid'
Pipelines:
SELECT * FROM Pipelines
ProjectBranches:
SELECT * FROM ProjectBranches WHERE ProjectSlug = 'github/MyOrg/my-repo'
ProjectEnvVars:
SELECT * FROM ProjectEnvVars WHERE ProjectSlug = 'github/MyOrg/my-repo'
ProjectPipelines:
SELECT * FROM ProjectPipelines WHERE ProjectSlug = 'github/MyOrg/my-repo'
Projects:
SELECT * FROM Projects WHERE Slug = 'github/MyOrg/my-repo'
ScheduleDetails:
SELECT * FROM ScheduleDetails WHERE Id = 'schedule-uuid'
Schedules:
SELECT * FROM Schedules WHERE ProjectSlug = 'github/MyOrg/my-repo'
TestResults:
SELECT * FROM TestResults WHERE ProjectSlug = 'github/MyOrg/my-repo' AND JobNumber = 1
Users:
SELECT * FROM Users WHERE Id = 'user-uuid'
WorkflowInsights:
SELECT * FROM WorkflowInsights WHERE ProjectSlug = 'github/MyOrg/my-repo'
WorkflowJobInsights:
SELECT * FROM WorkflowJobInsights WHERE ProjectSlug = 'github/MyOrg/my-repo' AND WorkflowName = 'build-and-test'
WorkflowJobs:
SELECT * FROM WorkflowJobs WHERE WorkflowId = 'workflow-uuid'
WorkflowRuns:
SELECT * FROM WorkflowRuns WHERE ProjectSlug = 'github/MyOrg/my-repo' AND WorkflowName = 'build-and-test'
Workflows:
SELECT * FROM Workflows WHERE Id = 'workflow-uuid'
Connection Properties
The connection string properties are the various options that can be used to establish a connection. This section provides a complete list of the options you can configure in the connection string for this provider.
| Property | Description |
| APIKey | Your CircleCI personal API token. |
| AuthScheme | The scheme used for authentication. Accepted entry is APIKey. Allowed values are: BASIC, NONE, NTLM, OAUTH, APIKEY, OAUTH_CLIENT |