# Feature parity for pipeline creation between GraphQL and REST APIs

**URL:** <https://forum.buildkite.community/t/feature-parity-for-pipeline-creation-between-graphql-and-rest-apis/600>\
**Category:** Features Requests\
**Created:** [July 9, 2019, 9:40pm UTC](https://forum.buildkite.community/t/feature-parity-for-pipeline-creation-between-graphql-and-rest-apis/600 "2019-07-09T21:40:55Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![tom](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.buildkite.community/tom/32/30_2.png) [@tom](https://forum.buildkite.community/u/tom)\
**Post date:** [July 9, 2019, 9:40pm UTC](https://forum.buildkite.community/t/feature-parity-for-pipeline-creation-between-graphql-and-rest-apis/600/1 "2019-07-09T21:40:56Z")

</div>

As it currently stands, if you wish to create a new pipeline programmatically you must make two calls: one to the REST API and another to the GraphQL API. The reason for this is that there is no feature parity between the two.

In previous conversations, it sounded like the intent was to push more towards using the GraphQL API (which I support). In that case, I wanted to enumerate here the request to add support to the `PipelineCreateInput` and `PipelineUpdateInput` types the following REST API options:

```auto
{
  branch_configuration: "",
  skip_queued_branch_builds: true,
  skip_queued_branch_builds_filter: "",
  cancel_running_branch_builds: true,
  cancel_running_branch_builds_filter: "",
  provider_settings: {
    trigger_mode: "",
    build_pull_requests: true,
    build_pull_request_forks: true,
    pull_request_branch_filter_enabled: false,
    skip_pull_request_builds_for_existing_commits: true,
    publish_commit_status: true,
    build_tags: false,
    repository: "",
    filter_enabled: true,
    filter_condition: "",
  }
}

```

If these these capabilities do exist, I have not been able to find them in the Schema as outlined on [https://graphql.buildkite.com/explorer](https://graphql.buildkite.com/explorer).

---

<div class="post-metadata">

**Author:** ![anon18197598](https://avatars.discourse-cdn.com/v4/letter/a/9d8465/32.png) [@anon18197598](https://forum.buildkite.community/u/anon18197598)\
**Post date:** [July 9, 2019, 10:18pm UTC](https://forum.buildkite.community/t/feature-parity-for-pipeline-creation-between-graphql-and-rest-apis/600/2 "2019-07-09T22:18:43Z")

</div>

Much appreciated, we’ll see what we can do!

---

<div class="post-metadata">

**Author:** ![anon85971592](https://avatars.discourse-cdn.com/v4/letter/a/dfb087/32.png) [@anon85971592](https://forum.buildkite.community/u/anon85971592)\
**Post date:** [August 2, 2019, 12:04pm UTC](https://forum.buildkite.community/t/feature-parity-for-pipeline-creation-between-graphql-and-rest-apis/600/3 "2019-08-02T12:04:33Z")

</div>

@tom 👋 I’m keen to get this sorted out for you. I spent some time today adding support for some of the fields.

This is now live:

```auto
query {
  pipeline(slug: "mars-investigations/the-bus-mystery") {
    # skip_queued_branch_builds
    skipIntermediateBuilds

    # skip_queued_branch_builds_filter
    skipIntermediateBuildsBranchFilter

    # cancel_running_branch_builds
    cancelIntermediateBuilds

    # cancel_running_branch_builds_filter
    cancelIntermediateBuildsBranchFilter
  }
}

```

And `PipelineCreate/UpdateInput` has gained those fields for use in mutations. I renamed them to align with what they’re called in the UI here:

 ![image](https://us1.discourse-cdn.com/flex016/uploads/buildkite1/original/1X/1cac43fd1a666bcabcbcf76bbdc725d09ca033f1.png)

Some of the other provider settings are a little more complex (since GraphQL types system is more strict than the REST API).

What are the minimum ones you need added so you can drop usage of the REST API entirely?

---

<div class="post-metadata">

**Author:** ![tom](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.buildkite.community/tom/32/30_2.png) [@tom](https://forum.buildkite.community/u/tom)\
**Post date:** [August 2, 2019, 1:21pm UTC](https://forum.buildkite.community/t/feature-parity-for-pipeline-creation-between-graphql-and-rest-apis/600/4 "2019-08-02T13:21:35Z")

</div>

Unfortunately we use all of the provider settings I mentioned in my first message.
